From 377fbf02f8c7cd5c57c1cd2195fc73a8d417dba2 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sun, 12 Feb 2023 09:27:36 +0000 Subject: [PATCH 1/2] [#2035] Add instances setting in launch lug config --- .../net/sf/openrocket/rocketcomponent/LaunchLug.java | 10 ++++++++-- .../net/sf/openrocket/rocketcomponent/RailButton.java | 8 ++++++-- .../openrocket/gui/configdialog/LaunchLugConfig.java | 5 ++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java index 48804f2b8..aeda57cb3 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java +++ b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java @@ -274,7 +274,11 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li } } + if (MathUtil.equals(this.instanceSeparation, _separation)) { + return; + } this.instanceSeparation = _separation; + fireComponentChangeEvent(ComponentChangeEvent.AERODYNAMIC_CHANGE); } @Override @@ -285,9 +289,11 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li } } - if( 0 < newCount ){ - this.instanceCount = newCount; + if (newCount == this.instanceCount || newCount <= 0) { + return; } + this.instanceCount = newCount; + fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } @Override diff --git a/core/src/net/sf/openrocket/rocketcomponent/RailButton.java b/core/src/net/sf/openrocket/rocketcomponent/RailButton.java index a25e616a0..499795fc0 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/RailButton.java +++ b/core/src/net/sf/openrocket/rocketcomponent/RailButton.java @@ -320,6 +320,9 @@ public class RailButton extends ExternalComponent implements AnglePositionable, } } + if (MathUtil.equals(this.instanceSeparation, _separation)) { + return; + } this.instanceSeparation = _separation; fireComponentChangeEvent(ComponentChangeEvent.AERODYNAMIC_CHANGE); } @@ -332,9 +335,10 @@ public class RailButton extends ExternalComponent implements AnglePositionable, } } - if( 0 < newCount ){ - this.instanceCount = newCount; + if (newCount == this.instanceCount || newCount <= 0) { + return; } + this.instanceCount = newCount; fireComponentChangeEvent(ComponentChangeEvent.BOTH_CHANGE); } diff --git a/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java b/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java index bb19fa015..423256ebe 100644 --- a/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java +++ b/swing/src/net/sf/openrocket/gui/configdialog/LaunchLugConfig.java @@ -92,7 +92,10 @@ public class LaunchLugConfig extends RocketComponentConfig { order.add(((SpinnerEditor) spin.getEditor()).getTextField()); panel.add(new UnitSelector(m), "growx"); - panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap"); + panel.add(new BasicSlider(m.getSliderModel(0, 0.01)), "w 100lp, wrap 30lp"); + + // -------- Instances ------ + panel.add(new InstancesPanel(component, order), "span, grow, wrap para"); primary.add(panel, "grow, gapright 40lp"); From b3e4d8997375f4ce2bb780fc38aaa9dcd5c3d2f1 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sun, 12 Feb 2023 18:29:27 +0000 Subject: [PATCH 2/2] Set default launch lug instance separation --- core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java index aeda57cb3..de2285dc4 100644 --- a/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java +++ b/core/src/net/sf/openrocket/rocketcomponent/LaunchLug.java @@ -33,6 +33,7 @@ public class LaunchLug extends Tube implements AnglePositionable, BoxBounded, Li radius = 0.01 / 2; thickness = 0.001; length = 0.03; + this.setInstanceSeparation(this.length * 2); super.displayOrder_side = 15; // Order for displaying the component in the 2D side view super.displayOrder_back = 12; // Order for displaying the component in the 2D back view }