diff --git a/core/src/net/sf/openrocket/preset/ComponentPreset.java b/core/src/net/sf/openrocket/preset/ComponentPreset.java index c99833504..75568d696 100644 --- a/core/src/net/sf/openrocket/preset/ComponentPreset.java +++ b/core/src/net/sf/openrocket/preset/ComponentPreset.java @@ -47,6 +47,7 @@ public class ComponentPreset implements Comparable, Serializabl public enum Type { BODY_TUBE(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -55,6 +56,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), NOSE_CONE(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -65,6 +67,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), TRANSITION(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -78,6 +81,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), TUBE_COUPLER(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -86,6 +90,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), BULK_HEAD(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -93,6 +98,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), CENTERING_RING(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -101,6 +107,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), ENGINE_BLOCK(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -109,6 +116,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), LAUNCH_LUG(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -117,6 +125,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.LENGTH }), RAIL_BUTTON(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -128,6 +137,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.HEIGHT }), STREAMER(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -137,6 +147,7 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset.MATERIAL }), PARACHUTE(new TypedKey[] { + ComponentPreset.LEGACY, ComponentPreset.MANUFACTURER, ComponentPreset.PARTNO, ComponentPreset.DESCRIPTION, @@ -173,6 +184,7 @@ public class ComponentPreset implements Comparable, Serializabl } + public final static TypedKey LEGACY = new TypedKey("Legacy", Boolean.class); public final static TypedKey MANUFACTURER = new TypedKey("Manufacturer", Manufacturer.class); public final static TypedKey PARTNO = new TypedKey("PartNo", String.class); public final static TypedKey DESCRIPTION = new TypedKey("Description", String.class); @@ -204,6 +216,7 @@ public class ComponentPreset implements Comparable, Serializabl public final static TypedKey FLANGE_HEIGHT = new TypedKey("FlangeHeight", Double.class, UnitGroup.UNITS_LENGTH); public final static List> ORDERED_KEY_LIST = Collections.unmodifiableList(Arrays.asList( + LEGACY, MANUFACTURER, PARTNO, DESCRIPTION, @@ -237,6 +250,15 @@ public class ComponentPreset implements Comparable, Serializabl ComponentPreset() { } + /** + * Convenience method to determine whether this is from the legacy database + * + * @return + */ + public Boolean getLegacy() { + return properties.get(LEGACY); + } + /** * Convenience method to retrieve the Type of this ComponentPreset. * diff --git a/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java b/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java index 8e3bcabb2..7fec283d5 100644 --- a/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BaseComponentDTO.java @@ -156,7 +156,7 @@ public abstract class BaseComponentDTO { } } - public abstract ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException; + public abstract ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException; void addProps(TypedPropertyMap props, List materialList) { props.put(ComponentPreset.MANUFACTURER, Manufacturer.getManufacturer(manufacturer)); diff --git a/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java b/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java index 536944f2a..ef60f328c 100644 --- a/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BodyTubeDTO.java @@ -83,12 +83,13 @@ public class BodyTubeDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.BODY_TUBE, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.BODY_TUBE, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.INNER_DIAMETER, this.getInsideDiameter()); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java b/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java index 1db3dd7d0..7e81622c8 100644 --- a/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/BulkHeadDTO.java @@ -65,8 +65,9 @@ public class BulkHeadDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); props.put(ComponentPreset.LENGTH, this.getLength()); diff --git a/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java b/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java index 9866a15a9..bdada1c53 100644 --- a/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/CenteringRingDTO.java @@ -35,7 +35,7 @@ public class CenteringRingDTO extends BodyTubeDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { - return super.asComponentPreset(ComponentPreset.Type.CENTERING_RING, materials); + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { + return super.asComponentPreset(legacy, ComponentPreset.Type.CENTERING_RING, materials); } } diff --git a/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java b/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java index 6c3f61fa8..730b339b4 100644 --- a/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/EngineBlockDTO.java @@ -34,7 +34,7 @@ public class EngineBlockDTO extends BodyTubeDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { - return super.asComponentPreset(ComponentPreset.Type.ENGINE_BLOCK, materials); + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { + return super.asComponentPreset(legacy, ComponentPreset.Type.ENGINE_BLOCK, materials); } } diff --git a/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java b/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java index e723861b7..da1feb255 100644 --- a/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/LaunchLugDTO.java @@ -83,12 +83,13 @@ public class LaunchLugDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.LAUNCH_LUG, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.LAUNCH_LUG, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.INNER_DIAMETER, this.getInsideDiameter()); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java b/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java index 0a071d6cb..3dc475821 100644 --- a/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/NoseConeDTO.java @@ -131,8 +131,9 @@ public class NoseConeDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.SHAPE, shape.getORShape()); props.put(ComponentPreset.AFT_OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java index 7294019c0..0759e6a3f 100644 --- a/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/OpenRocketComponentDTO.java @@ -10,6 +10,7 @@ import javax.xml.bind.annotation.XmlElementRef; import javax.xml.bind.annotation.XmlElementRefs; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlValue; import net.sf.openrocket.material.Material; import net.sf.openrocket.preset.ComponentPreset; @@ -25,6 +26,9 @@ public class OpenRocketComponentDTO { @XmlElement(name = "Version") private final String version = "0.1"; + @XmlElement(name = "Legacy", required = false) + private String legacy; + @XmlElementWrapper(name = "Materials") @XmlElement(name = "Material") List materials = new ArrayList(); @@ -47,11 +51,27 @@ public class OpenRocketComponentDTO { public OpenRocketComponentDTO() { } - public OpenRocketComponentDTO(final List theMaterials, final List theComponents) { + public OpenRocketComponentDTO(boolean isLegacy, final List theMaterials, final List theComponents) { + setLegacy(isLegacy); materials = theMaterials; components = theComponents; } + public Boolean getLegacy() { + if (null == legacy) { + return false; + } + return true; + } + + public void setLegacy(Boolean isLegacy) { + if (isLegacy) { + legacy = ""; + } else { + legacy = null; + } + } + public List getMaterials() { return materials; } @@ -79,7 +99,7 @@ public class OpenRocketComponentDTO { public List asComponentPresets() throws InvalidComponentPresetException { List result = new ArrayList(components.size()); for (int i = 0; i < components.size(); i++) { - result.add(components.get(i).asComponentPreset(materials)); + result.add(components.get(i).asComponentPreset(getLegacy(), materials)); } return result; } diff --git a/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java b/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java index f325b32a9..1bf861570 100644 --- a/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/ParachuteDTO.java @@ -108,12 +108,13 @@ public class ParachuteDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.PARACHUTE, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.PARACHUTE, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); // TODO - seems some vendors use a bulk material for the sheet along with a Thickness. // need to fix the MATERIAL packed into the componentpreset. diff --git a/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java b/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java index ab42e38df..aa4f37bdc 100644 --- a/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/RailButtonDTO.java @@ -113,12 +113,13 @@ public class RailButtonDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.RAIL_BUTTON, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.RAIL_BUTTON, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.INNER_DIAMETER, this.getInsideDiameter()); props.put(ComponentPreset.OUTER_DIAMETER, this.getOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java b/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java index 7ed0dd84b..490cfc499 100644 --- a/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/StreamerDTO.java @@ -83,13 +83,14 @@ public class StreamerDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(java.util.List materials) throws InvalidComponentPresetException { - return asComponentPreset(ComponentPreset.Type.STREAMER, materials); + public ComponentPreset asComponentPreset(Boolean legacy, java.util.List materials) throws InvalidComponentPresetException { + return asComponentPreset(legacy, ComponentPreset.Type.STREAMER, materials); } - public ComponentPreset asComponentPreset(ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, ComponentPreset.Type type, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); addProps(props, materials); + props.put(ComponentPreset.LEGACY, legacy); // TODO - seems some vendors use a bulk material for the sheet along with a Thickness. // need to fix the MATERIAL packed into the componentpreset. props.put(ComponentPreset.WIDTH, this.getWidth()); diff --git a/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java b/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java index 1aaaac651..caf01e5ea 100644 --- a/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/TransitionDTO.java @@ -176,8 +176,9 @@ public class TransitionDTO extends BaseComponentDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { TypedPropertyMap props = new TypedPropertyMap(); + props.put(ComponentPreset.LEGACY, legacy); addProps(props, materials); props.put(ComponentPreset.SHAPE, shape.getORShape()); props.put(ComponentPreset.FORE_OUTER_DIAMETER, this.getForeOutsideDiameter()); diff --git a/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java b/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java index 3cc096589..c6e5ad833 100644 --- a/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java +++ b/core/src/net/sf/openrocket/preset/xml/TubeCouplerDTO.java @@ -34,7 +34,7 @@ public class TubeCouplerDTO extends BodyTubeDTO { } @Override - public ComponentPreset asComponentPreset(List materials) throws InvalidComponentPresetException { - return super.asComponentPreset(ComponentPreset.Type.TUBE_COUPLER, materials); + public ComponentPreset asComponentPreset(Boolean legacy, List materials) throws InvalidComponentPresetException { + return super.asComponentPreset(legacy, ComponentPreset.Type.TUBE_COUPLER, materials); } } diff --git a/swing/resources-src/datafiles/legacy_components/Estes.orc b/swing/resources-src/datafiles/legacy_components/Estes.orc index 839719b71..f5f987563 100644 --- a/swing/resources-src/datafiles/legacy_components/Estes.orc +++ b/swing/resources-src/datafiles/legacy_components/Estes.orc @@ -1,6 +1,7 @@ 0.1 + diff --git a/swing/resources-src/datafiles/legacy_components/LocPrecision.orc b/swing/resources-src/datafiles/legacy_components/LocPrecision.orc index 039a4877b..ebfcdfbe6 100644 --- a/swing/resources-src/datafiles/legacy_components/LocPrecision.orc +++ b/swing/resources-src/datafiles/legacy_components/LocPrecision.orc @@ -1,6 +1,7 @@ 0.1 + [material:.060 Carbon Fiber] diff --git a/swing/resources-src/datafiles/legacy_components/Quest.orc b/swing/resources-src/datafiles/legacy_components/Quest.orc index 849a889c7..f5dc587a3 100644 --- a/swing/resources-src/datafiles/legacy_components/Quest.orc +++ b/swing/resources-src/datafiles/legacy_components/Quest.orc @@ -1,6 +1,7 @@ 0.1 + diff --git a/swing/resources-src/datafiles/legacy_components/bluetube.orc b/swing/resources-src/datafiles/legacy_components/bluetube.orc index e5ca86caf..c54ccca16 100644 --- a/swing/resources-src/datafiles/legacy_components/bluetube.orc +++ b/swing/resources-src/datafiles/legacy_components/bluetube.orc @@ -1,6 +1,7 @@ 0.1 + Vulcanized Fiber diff --git a/swing/resources-src/datafiles/legacy_components/bms.orc b/swing/resources-src/datafiles/legacy_components/bms.orc index 5d233a3bf..116b87954 100644 --- a/swing/resources-src/datafiles/legacy_components/bms.orc +++ b/swing/resources-src/datafiles/legacy_components/bms.orc @@ -1,6 +1,7 @@ 0.1 + Balsa diff --git a/swing/resources-src/datafiles/legacy_components/fliskits.orc b/swing/resources-src/datafiles/legacy_components/fliskits.orc index 3d85d4816..111b204ad 100644 --- a/swing/resources-src/datafiles/legacy_components/fliskits.orc +++ b/swing/resources-src/datafiles/legacy_components/fliskits.orc @@ -1,6 +1,7 @@ 0.1 + Balsa diff --git a/swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc b/swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc index 3fe782dd2..cf363ba7f 100644 --- a/swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc +++ b/swing/resources-src/datafiles/legacy_components/giantleaprocketry.orc @@ -1,6 +1,7 @@ 0.1 + Birch diff --git a/swing/resources-src/datafiles/legacy_components/publicmissiles.orc b/swing/resources-src/datafiles/legacy_components/publicmissiles.orc index 2a9a79e8b..0acf3a329 100644 --- a/swing/resources-src/datafiles/legacy_components/publicmissiles.orc +++ b/swing/resources-src/datafiles/legacy_components/publicmissiles.orc @@ -1,6 +1,7 @@ 0.1 + 1/16 In. braided nylon diff --git a/swing/resources-src/datafiles/legacy_components/semroc.orc b/swing/resources-src/datafiles/legacy_components/semroc.orc index 378754d6d..cdeee9b6e 100644 --- a/swing/resources-src/datafiles/legacy_components/semroc.orc +++ b/swing/resources-src/datafiles/legacy_components/semroc.orc @@ -1,6 +1,7 @@ 0.1 + 1/16 In. braided nylon @@ -107,7 +108,7 @@ SEMROC Astronautics BC-08542 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -136,7 +137,7 @@ SEMROC Astronautics BC-1016 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.0034019427719999998 true @@ -165,7 +166,7 @@ SEMROC Astronautics BC-1019 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.003685438003 true @@ -194,7 +195,7 @@ SEMROC Astronautics BC-1020E [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.003685438003 true @@ -223,7 +224,7 @@ SEMROC Astronautics BC-1022 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -252,7 +253,7 @@ SEMROC Astronautics BC-1024 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -281,7 +282,7 @@ SEMROC Astronautics BC-1031 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -310,7 +311,7 @@ SEMROC Astronautics BC-1032 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004252428464999999 true @@ -339,7 +340,7 @@ SEMROC Astronautics BC-1037 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004535923696 true @@ -368,7 +369,7 @@ SEMROC Astronautics BC-1039 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.004819418927 true @@ -397,7 +398,7 @@ SEMROC Astronautics BC-1041 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005102914157999999 true @@ -426,7 +427,7 @@ SEMROC Astronautics BC-1041G [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005102914157999999 true @@ -455,7 +456,7 @@ SEMROC Astronautics BC-1041P [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005102914157999999 true @@ -484,7 +485,7 @@ SEMROC Astronautics BC-1045 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005386409389 true @@ -513,7 +514,7 @@ SEMROC Astronautics BC-1045P [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005386409389 true @@ -542,7 +543,7 @@ SEMROC Astronautics BC-1048 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.005386409389 true @@ -571,7 +572,7 @@ SEMROC Astronautics BC-1050 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.030900980179 true @@ -600,7 +601,7 @@ SEMROC Astronautics BC-1051 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.00566990462 true @@ -629,7 +630,7 @@ SEMROC Astronautics BC-1052 [R] - Balsa Nose Cone – Reversed + Balsa Nose Cone - Reversed Balsa 0.006236895082 true @@ -3989,7 +3990,7 @@ SEMROC Astronautics BR-085225 [R] - Balsa Reducer 085 to 225 – Reversed + Balsa Reducer 085 to 225 - Reversed Balsa 0.022112628018 true @@ -4021,7 +4022,7 @@ SEMROC Astronautics BR-1013 [R] - Balsa Reducer 10 to 13 – Reversed + Balsa Reducer 10 to 13 - Reversed Balsa 0.005102914157999999 true @@ -4053,7 +4054,7 @@ SEMROC Astronautics BR-1016 [R] - Balsa Reducer 10 to 16 – Reversed + Balsa Reducer 10 to 16 - Reversed Balsa 0.009071847392 true @@ -4085,7 +4086,7 @@ SEMROC Astronautics BR-1016S [R] - Balsa Reducer 10 to 16 – Reversed + Balsa Reducer 10 to 16 - Reversed Balsa 0.008221361698999998 true @@ -4117,7 +4118,7 @@ SEMROC Astronautics BR-1116 [R] - Balsa Reducer 11 to 16 – Reversed + Balsa Reducer 11 to 16 - Reversed Balsa 0.009355342623 true @@ -4149,7 +4150,7 @@ SEMROC Astronautics BR-1118 [R] - Balsa Reducer 11 to 18 – Reversed + Balsa Reducer 11 to 18 - Reversed Balsa 0.010205828315999999 true @@ -4181,7 +4182,7 @@ SEMROC Astronautics BR-11516 [R] - Balsa Reducer 115 to 16 – Reversed + Balsa Reducer 115 to 16 - Reversed Balsa 0.029766999255 true @@ -4213,7 +4214,7 @@ SEMROC Astronautics BR-11518 [R] - Balsa Reducer 115 to 18 – Reversed + Balsa Reducer 115 to 18 - Reversed Balsa 0.031184475410000002 true @@ -4245,7 +4246,7 @@ SEMROC Astronautics BR-125-175 [R] - Balsa Reducer 125 to 175 – Reversed + Balsa Reducer 125 to 175 - Reversed Balsa 0.01417476155 true @@ -4277,7 +4278,7 @@ SEMROC Astronautics BR-125-175L [R] - Balsa Reducer 125 to 175 – Reversed + Balsa Reducer 125 to 175 - Reversed Balsa 0.018427190015 true @@ -4309,7 +4310,7 @@ SEMROC Astronautics BR-125-225 [R] - Balsa Reducer 125 to 225 – Reversed + Balsa Reducer 125 to 225 - Reversed Balsa 0.017009713859999998 true @@ -4341,7 +4342,7 @@ SEMROC Astronautics BR-1316 [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.0068038855439999995 true @@ -4373,7 +4374,7 @@ SEMROC Astronautics BR-1316F [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.010205828315999999 true @@ -4405,7 +4406,7 @@ SEMROC Astronautics BR-1316L [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.008504856929999999 true @@ -4437,7 +4438,7 @@ SEMROC Astronautics BR-1316M [R] - Balsa Reducer 13 to 16 – Reversed + Balsa Reducer 13 to 16 - Reversed Balsa 0.007937866468 true @@ -4469,7 +4470,7 @@ SEMROC Astronautics BR-1320 [R] - Balsa Reducer 13 to 20 – Reversed + Balsa Reducer 13 to 20 - Reversed Balsa 0.007937866468 true @@ -4501,7 +4502,7 @@ SEMROC Astronautics BR-1320L [R] - Balsa Reducer 13 to 20 – Reversed + Balsa Reducer 13 to 20 - Reversed Balsa 0.015875732936 true @@ -4533,7 +4534,7 @@ SEMROC Astronautics BR-150-225 [R] - Balsa Reducer 150 to 225 – Reversed + Balsa Reducer 150 to 225 - Reversed Balsa 0.029766999255 true @@ -4565,7 +4566,7 @@ SEMROC Astronautics BR-150-275 [R] - Balsa Reducer 150 to 275 – Reversed + Balsa Reducer 150 to 275 - Reversed Balsa 0.041106808495 true @@ -4597,7 +4598,7 @@ SEMROC Astronautics BR-1618 [R] - Balsa Reducer 16 to 18 – Reversed + Balsa Reducer 16 to 18 - Reversed Balsa 0.007937866468 true @@ -4629,7 +4630,7 @@ SEMROC Astronautics BR-1618F [R] - Balsa Reducer 16 to 18 – Reversed + Balsa Reducer 16 to 18 - Reversed Balsa 0.008504856929999999 true @@ -4661,7 +4662,7 @@ SEMROC Astronautics BR-1620 [R] - Balsa Reducer 16 to 20 – Reversed + Balsa Reducer 16 to 20 - Reversed Balsa 0.008504856929999999 true @@ -4693,7 +4694,7 @@ SEMROC Astronautics BR-1620F [R] - Balsa Reducer 16 to 20 – Reversed + Balsa Reducer 16 to 20 - Reversed Balsa 0.0076543712370000004 true @@ -4725,7 +4726,7 @@ SEMROC Astronautics BR-16225F [R] - Balsa Reducer 16 to 225 – Reversed + Balsa Reducer 16 to 225 - Reversed Balsa 0.009355342623 true @@ -4757,7 +4758,7 @@ SEMROC Astronautics BR-175-225 [R] - Balsa Reducer 175 to 225 – Reversed + Balsa Reducer 175 to 225 - Reversed Balsa 0.02267961848 true @@ -4789,7 +4790,7 @@ SEMROC Astronautics BR-1820 [R] - Balsa Reducer 18 to 20 – Reversed + Balsa Reducer 18 to 20 - Reversed Balsa 0.007087380775 true @@ -4821,7 +4822,7 @@ SEMROC Astronautics BR-18225 [R] - Balsa Reducer 18 to 225 – Reversed + Balsa Reducer 18 to 225 - Reversed Balsa 0.008788352160999999 true @@ -4853,7 +4854,7 @@ SEMROC Astronautics BR-225-80H [R] - Balsa Reducer 225 to BT-80H – Reversed + Balsa Reducer 225 to BT-80H - Reversed Balsa 0.03685438003 true @@ -4885,7 +4886,7 @@ SEMROC Astronautics BR-510 [R] - Balsa Reducer 5 to 10 – Reversed + Balsa Reducer 5 to 10 - Reversed Balsa 0.003118447541 true @@ -4917,7 +4918,7 @@ SEMROC Astronautics BR-511 [R] - Balsa Reducer 5 to 11 – Reversed + Balsa Reducer 5 to 11 - Reversed Balsa 0.0034019427719999998 true @@ -4949,7 +4950,7 @@ SEMROC Astronautics BR-513 [R] - Balsa Reducer 5 to 13 – Reversed + Balsa Reducer 5 to 13 - Reversed Balsa 0.004535923696 true @@ -4981,7 +4982,7 @@ SEMROC Astronautics BR-57 [R] - Balsa Reducer 5 to 7 – Reversed + Balsa Reducer 5 to 7 - Reversed Balsa 0.001984466617 true @@ -5013,7 +5014,7 @@ SEMROC Astronautics BR-58 [R] - Balsa Reducer 5 to 8 – Reversed + Balsa Reducer 5 to 8 - Reversed Balsa 0.00283495231 true @@ -5045,7 +5046,7 @@ SEMROC Astronautics BR-58F [R] - Balsa Reducer 5 to 8F – Reversed + Balsa Reducer 5 to 8F - Reversed Balsa 0.00283495231 true @@ -5077,7 +5078,7 @@ SEMROC Astronautics BR-59 [R] - Balsa Reducer 5 to 9 – Reversed + Balsa Reducer 5 to 9 - Reversed Balsa 0.005102914157999999 true @@ -5109,7 +5110,7 @@ SEMROC Astronautics BR-60-18 [R] - Balsa Reducer BT-60 to ST-18 – Reversed + Balsa Reducer BT-60 to ST-18 - Reversed Balsa 0.008221361698999998 true @@ -5141,7 +5142,7 @@ SEMROC Astronautics BR-710 [R] - Balsa Reducer 7 to 10 – Reversed + Balsa Reducer 7 to 10 - Reversed Balsa 0.0034019427719999998 true @@ -5173,7 +5174,7 @@ SEMROC Astronautics BR-711 [R] - Balsa Reducer 7 to 11 – Reversed + Balsa Reducer 7 to 11 - Reversed Balsa 0.003685438003 true @@ -5205,7 +5206,7 @@ SEMROC Astronautics BR-713 [R] - Balsa Reducer 7 to 13 – Reversed + Balsa Reducer 7 to 13 - Reversed Balsa 0.005102914157999999 true @@ -5237,7 +5238,7 @@ SEMROC Astronautics BR-716 [R] - Balsa Reducer 7 to 16 – Reversed + Balsa Reducer 7 to 16 - Reversed Balsa 0.010205828315999999 true @@ -5269,7 +5270,7 @@ SEMROC Astronautics BR-718 [R] - Balsa Reducer 7 to 18 – Reversed + Balsa Reducer 7 to 18 - Reversed Balsa 0.011906799701999999 true @@ -5301,7 +5302,7 @@ SEMROC Astronautics BR-78 [R] - Balsa Reducer 7 to 8 – Reversed + Balsa Reducer 7 to 8 - Reversed Balsa 0.003685438003 true @@ -5333,7 +5334,7 @@ SEMROC Astronautics BR-78F [R] - Balsa Reducer 7 to 8F – Reversed + Balsa Reducer 7 to 8F - Reversed Balsa 0.004819418927 true @@ -5365,7 +5366,7 @@ SEMROC Astronautics BR-78S [R] - Balsa Reducer 7 to 8 – Reversed + Balsa Reducer 7 to 8 - Reversed Balsa 0.00283495231 true @@ -5397,7 +5398,7 @@ SEMROC Astronautics BR-79 [R] - Balsa Reducer 7 to 9 – Reversed + Balsa Reducer 7 to 9 - Reversed Balsa 0.004819418927 true @@ -5429,7 +5430,7 @@ SEMROC Astronautics BR-79L [R] - Balsa Reducer 7 to 9 – Reversed + Balsa Reducer 7 to 9 - Reversed Balsa 0.006520390313 true @@ -5461,7 +5462,7 @@ SEMROC Astronautics BR-810 [R] - Balsa Reducer 8 to 10 – Reversed + Balsa Reducer 8 to 10 - Reversed Balsa 0.003968933234 true @@ -5493,7 +5494,7 @@ SEMROC Astronautics BR-813 [R] - Balsa Reducer 8 to 13 – Reversed + Balsa Reducer 8 to 13 - Reversed Balsa 0.007370876006 true @@ -5525,7 +5526,7 @@ SEMROC Astronautics BR-813P [R] - Balsa Reducer 8 to 13 – Reversed + Balsa Reducer 8 to 13 - Reversed Balsa 0.007370876006 true @@ -5557,7 +5558,7 @@ SEMROC Astronautics BR-816 [R] - Balsa Reducer 8 to 16 – Reversed + Balsa Reducer 8 to 16 - Reversed Balsa 0.008504856929999999 true @@ -5589,7 +5590,7 @@ SEMROC Astronautics BR-816NT [R] - Balsa Reducer 8 to 16 – Reversed + Balsa Reducer 8 to 16 - Reversed Balsa 0.010772818778 true @@ -5621,7 +5622,7 @@ SEMROC Astronautics BR-8F11 [R] - Balsa Reducer 8F to 11 – Reversed + Balsa Reducer 8F to 11 - Reversed Balsa 0.005102914157999999 true @@ -5653,7 +5654,7 @@ SEMROC Astronautics BR-8F11L [R] - Balsa Reducer 8F to 11 – Reversed + Balsa Reducer 8F to 11 - Reversed Balsa 0.006236895082 true @@ -5685,7 +5686,7 @@ SEMROC Astronautics BR-916 [R] - Balsa Reducer 9 to 16 – Reversed + Balsa Reducer 9 to 16 - Reversed Balsa 0.008504856929999999 true @@ -5717,7 +5718,7 @@ SEMROC Astronautics BR-918 [R] - Balsa Reducer 9 to 18 – Reversed + Balsa Reducer 9 to 18 - Reversed Balsa 0.009071847392 true @@ -5749,7 +5750,7 @@ SEMROC Astronautics BR-920 [R] - Balsa Reducer 9 to 20 – Reversed + Balsa Reducer 9 to 20 - Reversed Balsa 0.009638837854 true @@ -9836,7 +9837,7 @@ SEMROC Astronautics TA-2050 [R] - Balsa Reducer BT-20 to BT-50 – Reversed + Balsa Reducer BT-20 to BT-50 - Reversed Balsa 0.004819418927 true @@ -9868,7 +9869,7 @@ SEMROC Astronautics TA-2050A [R] - Balsa Reducer BT-20 to BT-50 – Reversed + Balsa Reducer BT-20 to BT-50 - Reversed Balsa 0.003118447541 true @@ -9900,7 +9901,7 @@ SEMROC Astronautics TA-2050B [R] - Balsa Reducer BT-20 to BT-50 – Reversed + Balsa Reducer BT-20 to BT-50 - Reversed Balsa 0.0059533998509999995 true @@ -9932,7 +9933,7 @@ SEMROC Astronautics TA-2055 [R] - Balsa Reducer BT-20 to BT-55 – Reversed + Balsa Reducer BT-20 to BT-55 - Reversed Balsa 0.006236895082 true @@ -9964,7 +9965,7 @@ SEMROC Astronautics TA-2060 [R] - Balsa Reducer BT-20 to BT-60 – Reversed + Balsa Reducer BT-20 to BT-60 - Reversed Balsa 0.00566990462 true @@ -9996,7 +9997,7 @@ SEMROC Astronautics TA-5055 [R] - Balsa Reducer BT-50 to BT-55 – Reversed + Balsa Reducer BT-50 to BT-55 - Reversed Balsa 0.017009713859999998 true @@ -10028,7 +10029,7 @@ SEMROC Astronautics TA-5055L [R] - Balsa Reducer BT-50 to BT-55 – Reversed + Balsa Reducer BT-50 to BT-55 - Reversed Balsa 0.020128161401 true @@ -10060,7 +10061,7 @@ SEMROC Astronautics TA-5060 [R] - Balsa Reducer BT-50 to BT-60 – Reversed + Balsa Reducer BT-50 to BT-60 - Reversed Balsa 0.006520390313 true @@ -10092,7 +10093,7 @@ SEMROC Astronautics TA-5060C [R] - Balsa Reducer BT-50 to BT-60 – Reversed + Balsa Reducer BT-50 to BT-60 - Reversed Balsa 0.003968933234 true @@ -10124,7 +10125,7 @@ SEMROC Astronautics TA-5060E [R] - Balsa Reducer BT-50 to BT-60 – Reversed + Balsa Reducer BT-50 to BT-60 - Reversed Balsa 0.0059533998509999995 true @@ -10156,7 +10157,7 @@ SEMROC Astronautics TA-5065 [R] - Balsa Reducer BT-50 to BT-65 – Reversed + Balsa Reducer BT-50 to BT-65 - Reversed Balsa 0.007370876006 true @@ -10188,7 +10189,7 @@ SEMROC Astronautics TA-520 [R] - Balsa Reducer BT-5 to BT-20 – Reversed + Balsa Reducer BT-5 to BT-20 - Reversed Balsa 0.001133980924 true @@ -10220,7 +10221,7 @@ SEMROC Astronautics TA-5260A [R] - Balsa Reducer BT-52 to BT-60 – Reversed + Balsa Reducer BT-52 to BT-60 - Reversed Balsa 0.006520390313 true @@ -10252,7 +10253,7 @@ SEMROC Astronautics TA-5260C [R] - Balsa Reducer BT-52 to BT-60 – Reversed + Balsa Reducer BT-52 to BT-60 - Reversed Balsa 0.009355342623 true @@ -10284,7 +10285,7 @@ SEMROC Astronautics TA-550 [R] - Balsa Reducer BT-5 to BT-50 – Reversed + Balsa Reducer BT-5 to BT-50 - Reversed Balsa 0.0017009713859999999 true @@ -10316,7 +10317,7 @@ SEMROC Astronautics TA-5560 [R] - Balsa Reducer BT-55 to BT-60 – Reversed + Balsa Reducer BT-55 to BT-60 - Reversed Balsa 0.007087380775 true @@ -10348,7 +10349,7 @@ SEMROC Astronautics TA-5560A [R] - Balsa Reducer BT-55 to BT-60 – Reversed + Balsa Reducer BT-55 to BT-60 - Reversed Balsa 0.008221361698999998 true @@ -10380,7 +10381,7 @@ SEMROC Astronautics TA-5565 [R] - Balsa Reducer BT-55 to BT-65 – Reversed + Balsa Reducer BT-55 to BT-65 - Reversed Balsa 0.010772818778 true @@ -10412,7 +10413,7 @@ SEMROC Astronautics TA-6065 [R] - Balsa Reducer BT-60 to BT-65 – Reversed + Balsa Reducer BT-60 to BT-65 - Reversed Balsa 0.006520390313 true @@ -10444,7 +10445,7 @@ SEMROC Astronautics TA-6070 [R] - Balsa Reducer BT-60 to BT-70 – Reversed + Balsa Reducer BT-60 to BT-70 - Reversed Balsa 0.018427190015 true @@ -10476,7 +10477,7 @@ SEMROC Astronautics TA-6080 [R] - Balsa Reducer BT-60 to BT-80 – Reversed + Balsa Reducer BT-60 to BT-80 - Reversed Balsa 0.018427190015 true @@ -10508,7 +10509,7 @@ SEMROC Astronautics TA-7080 [R] - Balsa Reducer BT-70 to BT-80 – Reversed + Balsa Reducer BT-70 to BT-80 - Reversed Balsa 0.018427190015 true diff --git a/swing/resources/datafiles/presets/system.ser b/swing/resources/datafiles/presets/system.ser index 8cc48cdf2..81ad624a3 100644 Binary files a/swing/resources/datafiles/presets/system.ser and b/swing/resources/datafiles/presets/system.ser differ