diff --git a/core/resources/pix/componenticons/altimeter_dark-small.png b/core/resources/pix/componenticons/altimeter_dark-small.png new file mode 100644 index 000000000..3506a26e5 Binary files /dev/null and b/core/resources/pix/componenticons/altimeter_dark-small.png differ diff --git a/core/resources/pix/componenticons/battery_dark-small.png b/core/resources/pix/componenticons/battery_dark-small.png new file mode 100644 index 000000000..72b498ebd Binary files /dev/null and b/core/resources/pix/componenticons/battery_dark-small.png differ diff --git a/core/resources/pix/componenticons/deployment-charge_dark-small.png b/core/resources/pix/componenticons/deployment-charge_dark-small.png new file mode 100644 index 000000000..cadf1807c Binary files /dev/null and b/core/resources/pix/componenticons/deployment-charge_dark-small.png differ diff --git a/core/resources/pix/componenticons/ellipticalfin_dark-large.png b/core/resources/pix/componenticons/ellipticalfin_dark-large.png new file mode 100644 index 000000000..cb186f3eb Binary files /dev/null and b/core/resources/pix/componenticons/ellipticalfin_dark-large.png differ diff --git a/core/resources/pix/componenticons/ellipticalfin_dark-small.png b/core/resources/pix/componenticons/ellipticalfin_dark-small.png new file mode 100644 index 000000000..ea25386e4 Binary files /dev/null and b/core/resources/pix/componenticons/ellipticalfin_dark-small.png differ diff --git a/core/resources/pix/componenticons/flight-comp_dark-small.png b/core/resources/pix/componenticons/flight-comp_dark-small.png new file mode 100644 index 000000000..658443a1f Binary files /dev/null and b/core/resources/pix/componenticons/flight-comp_dark-small.png differ diff --git a/core/resources/pix/componenticons/freeformfin_dark-large.png b/core/resources/pix/componenticons/freeformfin_dark-large.png new file mode 100644 index 000000000..a1f1e694d Binary files /dev/null and b/core/resources/pix/componenticons/freeformfin_dark-large.png differ diff --git a/core/resources/pix/componenticons/freeformfin_dark-small.png b/core/resources/pix/componenticons/freeformfin_dark-small.png new file mode 100644 index 000000000..ddcb3f2aa Binary files /dev/null and b/core/resources/pix/componenticons/freeformfin_dark-small.png differ diff --git a/core/resources/pix/componenticons/launchlug_dark-large.png b/core/resources/pix/componenticons/launchlug_dark-large.png new file mode 100644 index 000000000..faba92982 Binary files /dev/null and b/core/resources/pix/componenticons/launchlug_dark-large.png differ diff --git a/core/resources/pix/componenticons/launchlug_dark-small.png b/core/resources/pix/componenticons/launchlug_dark-small.png new file mode 100644 index 000000000..e3296b66b Binary files /dev/null and b/core/resources/pix/componenticons/launchlug_dark-small.png differ diff --git a/core/resources/pix/componenticons/mass_dark-large.png b/core/resources/pix/componenticons/mass_dark-large.png new file mode 100644 index 000000000..e41e1f590 Binary files /dev/null and b/core/resources/pix/componenticons/mass_dark-large.png differ diff --git a/core/resources/pix/componenticons/mass_dark-small.png b/core/resources/pix/componenticons/mass_dark-small.png new file mode 100644 index 000000000..192e767ea Binary files /dev/null and b/core/resources/pix/componenticons/mass_dark-small.png differ diff --git a/core/resources/pix/componenticons/parachute_dark-large.png b/core/resources/pix/componenticons/parachute_dark-large.png new file mode 100644 index 000000000..bcdc3b9d4 Binary files /dev/null and b/core/resources/pix/componenticons/parachute_dark-large.png differ diff --git a/core/resources/pix/componenticons/parachute_dark-small.png b/core/resources/pix/componenticons/parachute_dark-small.png new file mode 100644 index 000000000..b837e4ece Binary files /dev/null and b/core/resources/pix/componenticons/parachute_dark-small.png differ diff --git a/core/resources/pix/componenticons/pods_dark-large.png b/core/resources/pix/componenticons/pods_dark-large.png new file mode 100644 index 000000000..a88920e9a Binary files /dev/null and b/core/resources/pix/componenticons/pods_dark-large.png differ diff --git a/core/resources/pix/componenticons/pods_dark-small.png b/core/resources/pix/componenticons/pods_dark-small.png new file mode 100644 index 000000000..8f9ad6d22 Binary files /dev/null and b/core/resources/pix/componenticons/pods_dark-small.png differ diff --git a/core/resources/pix/componenticons/recovery-hardware_dark-small.png b/core/resources/pix/componenticons/recovery-hardware_dark-small.png new file mode 100644 index 000000000..b3eb482b9 Binary files /dev/null and b/core/resources/pix/componenticons/recovery-hardware_dark-small.png differ diff --git a/core/resources/pix/componenticons/shockcord_dark-large.png b/core/resources/pix/componenticons/shockcord_dark-large.png new file mode 100644 index 000000000..437f56a49 Binary files /dev/null and b/core/resources/pix/componenticons/shockcord_dark-large.png differ diff --git a/core/resources/pix/componenticons/shockcord_dark-small.png b/core/resources/pix/componenticons/shockcord_dark-small.png new file mode 100644 index 000000000..c673df524 Binary files /dev/null and b/core/resources/pix/componenticons/shockcord_dark-small.png differ diff --git a/core/resources/pix/componenticons/streamer_dark-large.png b/core/resources/pix/componenticons/streamer_dark-large.png new file mode 100644 index 000000000..734c726bc Binary files /dev/null and b/core/resources/pix/componenticons/streamer_dark-large.png differ diff --git a/core/resources/pix/componenticons/streamer_dark-small.png b/core/resources/pix/componenticons/streamer_dark-small.png new file mode 100644 index 000000000..a0ac436d2 Binary files /dev/null and b/core/resources/pix/componenticons/streamer_dark-small.png differ diff --git a/core/resources/pix/componenticons/tracker_dark-small.png b/core/resources/pix/componenticons/tracker_dark-small.png new file mode 100644 index 000000000..1af0e0588 Binary files /dev/null and b/core/resources/pix/componenticons/tracker_dark-small.png differ diff --git a/core/resources/pix/componenticons/tubefin-large.png b/core/resources/pix/componenticons/tubefin-large.png index 76120e258..5de7272a5 100644 Binary files a/core/resources/pix/componenticons/tubefin-large.png and b/core/resources/pix/componenticons/tubefin-large.png differ diff --git a/core/resources/pix/componenticons/tubefin-small.png b/core/resources/pix/componenticons/tubefin-small.png index 334bad233..addf83b3f 100644 Binary files a/core/resources/pix/componenticons/tubefin-small.png and b/core/resources/pix/componenticons/tubefin-small.png differ diff --git a/install4j/23.09/openrocket-23.09.install4j b/install4j/23.09/openrocket-23.09.install4j index e609e716c..fd9c9dcc8 100644 --- a/install4j/23.09/openrocket-23.09.install4j +++ b/install4j/23.09/openrocket-23.09.install4j @@ -29,7 +29,7 @@ - + diff --git a/swing/resources/datafiles/examples/A 3D printable model rocket.ork b/swing/resources/datafiles/examples/A 3D printable model rocket.ork index 4b3a2bbea..7c1ff65d8 100644 Binary files a/swing/resources/datafiles/examples/A 3D printable model rocket.ork and b/swing/resources/datafiles/examples/A 3D printable model rocket.ork differ diff --git a/swing/src/net/sf/openrocket/gui/main/ComponentIcons.java b/swing/src/net/sf/openrocket/gui/main/ComponentIcons.java index d5e9b3a28..39dd7ec91 100644 --- a/swing/src/net/sf/openrocket/gui/main/ComponentIcons.java +++ b/swing/src/net/sf/openrocket/gui/main/ComponentIcons.java @@ -9,6 +9,8 @@ import javax.imageio.ImageIO; import javax.swing.Icon; import javax.swing.ImageIcon; +import net.sf.openrocket.gui.util.GUIUtil; +import net.sf.openrocket.gui.util.UITheme; import net.sf.openrocket.l10n.Translator; import net.sf.openrocket.rocketcomponent.AxialStage; import net.sf.openrocket.rocketcomponent.BodyTube; @@ -41,77 +43,138 @@ public class ComponentIcons { private static final String SMALL_SUFFIX = "-small.png"; private static final String LARGE_SUFFIX = "-large.png"; + // Component image file keys + private static String noseCone; + private static String bodyTube; + private static String transition; + private static String trapezoidFinSet; + private static String ellipticalFinSet; + private static String freeformFinSet; + private static String tubeFinSet; + private static String launchLug; + private static String railButton; + private static String innerTube; + private static String tubeCoupler; + private static String centeringRing; + private static String bulkhead; + private static String engineBlock; + private static String parachute; + private static String streamer; + private static String shockCord; + private static String mass; + private static String stage; + private static String boosters; + private static String pods; + + private static String mass_altimeter; + private static String mass_battery; + private static String mass_deployment_charge; + private static String mass_payload; + private static String mass_flight_comp; + private static String mass_recovery_hardware; + private static String mass_tracker; + private static final HashMap, ImageIcon> SMALL_ICONS = new HashMap, ImageIcon>(); private static final HashMap, ImageIcon> LARGE_ICONS = new HashMap, ImageIcon>(); private static final HashMap, ImageIcon> DISABLED_ICONS = new HashMap, ImageIcon>(); private static final HashMap MASS_COMPONENT_SMALL_ICONS = new HashMap(); static { + initColors(); + // // Nose cone - load("nosecone", trans.get("ComponentIcons.Nosecone"), NoseCone.class); + load(noseCone, trans.get("ComponentIcons.Nosecone"), NoseCone.class); // // Body tube - load("bodytube", trans.get("ComponentIcons.Bodytube"), BodyTube.class); + load(bodyTube, trans.get("ComponentIcons.Bodytube"), BodyTube.class); //// Transition - load("transition", trans.get("ComponentIcons.Transition"), Transition.class); + load(transition, trans.get("ComponentIcons.Transition"), Transition.class); //// Trapezoidal fin set - load("trapezoidfin", trans.get("ComponentIcons.Trapezoidalfinset"), TrapezoidFinSet.class); + load(trapezoidFinSet, trans.get("ComponentIcons.Trapezoidalfinset"), TrapezoidFinSet.class); //// Elliptical fin set - load("ellipticalfin", trans.get("ComponentIcons.Ellipticalfinset"), EllipticalFinSet.class); + load(ellipticalFinSet, trans.get("ComponentIcons.Ellipticalfinset"), EllipticalFinSet.class); //// Freeform fin set - load("freeformfin", trans.get("ComponentIcons.Freeformfinset"), FreeformFinSet.class); + load(freeformFinSet, trans.get("ComponentIcons.Freeformfinset"), FreeformFinSet.class); //// Tube fin set - load("tubefin", trans.get("ComponentIcons.Tubefinset"), TubeFinSet.class); + load(tubeFinSet, trans.get("ComponentIcons.Tubefinset"), TubeFinSet.class); //// Launch lug - load("launchlug", trans.get("ComponentIcons.Launchlug"), LaunchLug.class); + load(launchLug, trans.get("ComponentIcons.Launchlug"), LaunchLug.class); //// Rail Button - load("railbutton", trans.get("ComponentIcons.RailButton"), RailButton.class); + load(railButton, trans.get("ComponentIcons.RailButton"), RailButton.class); //// Inner tube - load("innertube", trans.get("ComponentIcons.Innertube"), InnerTube.class); + load(innerTube, trans.get("ComponentIcons.Innertube"), InnerTube.class); //// Tube coupler - load("tubecoupler", trans.get("ComponentIcons.Tubecoupler"), TubeCoupler.class); + load(tubeCoupler, trans.get("ComponentIcons.Tubecoupler"), TubeCoupler.class); //// Centering ring - load("centeringring", trans.get("ComponentIcons.Centeringring"), CenteringRing.class); + load(centeringRing, trans.get("ComponentIcons.Centeringring"), CenteringRing.class); //// Bulkhead - load("bulkhead", trans.get("ComponentIcons.Bulkhead"), Bulkhead.class); + load(bulkhead, trans.get("ComponentIcons.Bulkhead"), Bulkhead.class); // // Engine block - load("engineblock", trans.get("ComponentIcons.Engineblock"), + load(engineBlock, trans.get("ComponentIcons.Engineblock"), EngineBlock.class); // // Parachute - load("parachute", trans.get("ComponentIcons.Parachute"), + load(parachute, trans.get("ComponentIcons.Parachute"), Parachute.class); // // Streamer - load("streamer", trans.get("ComponentIcons.Streamer"), Streamer.class); + load(streamer, trans.get("ComponentIcons.Streamer"), Streamer.class); // // Shock cord - load("shockcord", trans.get("ComponentIcons.Shockcord"), + load(shockCord, trans.get("ComponentIcons.Shockcord"), ShockCord.class); - load("mass", trans.get("ComponentIcons.Masscomponent"), + load(mass, trans.get("ComponentIcons.Masscomponent"), MassComponent.class); // // Component Assemblies - load("stage", trans.get("ComponentIcons.Stage"), + load(stage, trans.get("ComponentIcons.Stage"), AxialStage.class); - load("boosters", trans.get("ComponentIcons.Boosters"), + load(boosters, trans.get("ComponentIcons.Boosters"), ParallelStage.class); - load("pods", trans.get("ComponentIcons.Pods"), + load(pods, trans.get("ComponentIcons.Pods"), PodSet.class); // // Mass components - loadMassTypeIcon("mass", trans.get("ComponentIcons.Masscomponent"), - MassComponentType.MASSCOMPONENT); - loadMassTypeIcon("altimeter", trans.get("ComponentIcons.Altimeter"), - MassComponentType.ALTIMETER); - loadMassTypeIcon("battery", trans.get("ComponentIcons.Battery"), - MassComponentType.BATTERY); - loadMassTypeIcon("deployment-charge", - trans.get("ComponentIcons.Deploymentcharge"), + loadMassTypeIcon(mass, trans.get("ComponentIcons.Masscomponent"), MassComponentType.MASSCOMPONENT); + loadMassTypeIcon(mass_altimeter, trans.get("ComponentIcons.Altimeter"), MassComponentType.ALTIMETER); + loadMassTypeIcon(mass_battery, trans.get("ComponentIcons.Battery"), MassComponentType.BATTERY); + loadMassTypeIcon(mass_deployment_charge, trans.get("ComponentIcons.Deploymentcharge"), MassComponentType.DEPLOYMENTCHARGE); - loadMassTypeIcon("payload", trans.get("ComponentIcons.Payload"), - MassComponentType.PAYLOAD); - loadMassTypeIcon("flight-comp", - trans.get("ComponentIcons.Flightcomputer"), - MassComponentType.FLIGHTCOMPUTER); - loadMassTypeIcon("recovery-hardware", - trans.get("ComponentIcons.Recoveryhardware"), - MassComponentType.RECOVERYHARDWARE); - loadMassTypeIcon("tracker", trans.get("ComponentIcons.Tracker"), - MassComponentType.TRACKER); + loadMassTypeIcon(mass_payload, trans.get("ComponentIcons.Payload"), MassComponentType.PAYLOAD); + loadMassTypeIcon(mass_flight_comp, + trans.get("ComponentIcons.Flightcomputer"), MassComponentType.FLIGHTCOMPUTER); + loadMassTypeIcon(mass_recovery_hardware, + trans.get("ComponentIcons.Recoveryhardware"), MassComponentType.RECOVERYHARDWARE); + loadMassTypeIcon(mass_tracker, trans.get("ComponentIcons.Tracker"), MassComponentType.TRACKER); + } + + private static void initColors() { + updateColors(); + UITheme.Theme.addUIThemeChangeListener(ComponentIcons::updateColors); + } + + private static void updateColors() { + noseCone = GUIUtil.getUITheme().getComponentIconNoseCone(); + bodyTube = GUIUtil.getUITheme().getComponentIconBodyTube(); + transition = GUIUtil.getUITheme().getComponentIconTransition(); + trapezoidFinSet = GUIUtil.getUITheme().getComponentIconTrapezoidFinSet(); + ellipticalFinSet = GUIUtil.getUITheme().getComponentIconEllipticalFinSet(); + freeformFinSet = GUIUtil.getUITheme().getComponentIconFreeformFinSet(); + tubeFinSet = GUIUtil.getUITheme().getComponentIconTubeFinSet(); + launchLug = GUIUtil.getUITheme().getComponentIconLaunchLug(); + railButton = GUIUtil.getUITheme().getComponentIconRailButton(); + innerTube = GUIUtil.getUITheme().getComponentIconInnerTube(); + tubeCoupler = GUIUtil.getUITheme().getComponentIconTubeCoupler(); + centeringRing = GUIUtil.getUITheme().getComponentIconCenteringRing(); + bulkhead = GUIUtil.getUITheme().getComponentIconBulkhead(); + engineBlock = GUIUtil.getUITheme().getComponentIconEngineBlock(); + parachute = GUIUtil.getUITheme().getComponentIconParachute(); + streamer = GUIUtil.getUITheme().getComponentIconStreamer(); + shockCord = GUIUtil.getUITheme().getComponentIconShockCord(); + mass = GUIUtil.getUITheme().getComponentIconMass(); + stage = GUIUtil.getUITheme().getComponentIconStage(); + boosters = GUIUtil.getUITheme().getComponentIconBoosters(); + pods = GUIUtil.getUITheme().getComponentIconPods(); + mass_altimeter = GUIUtil.getUITheme().getComponentIconMassAltimeter(); + mass_battery = GUIUtil.getUITheme().getComponentIconMassBattery(); + mass_deployment_charge = GUIUtil.getUITheme().getComponentIconMassDeploymentCharge(); + mass_payload = GUIUtil.getUITheme().getComponentIconMassPayload(); + mass_flight_comp = GUIUtil.getUITheme().getComponentIconMassFlightComp(); + mass_recovery_hardware = GUIUtil.getUITheme().getComponentIconMassRecoveryHardware(); + mass_tracker = GUIUtil.getUITheme().getComponentIconMassTracker(); } private static void load(String filename, String name, diff --git a/swing/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java b/swing/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java index 7cf764261..72e2fff73 100644 --- a/swing/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java +++ b/swing/src/net/sf/openrocket/gui/scalefigure/RocketPanel.java @@ -790,6 +790,11 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change cgy = cg.y * Math.cos(rotation) + cg.z*Math.sin(rotation); } + // We need to flip the y coordinate if we are in top view + if (figure.getCurrentViewType() == RocketPanel.VIEW_TYPE.TopView) { + cgy = -cgy; + } + double length = curConfig.getLength(); double diameter = Double.NaN; diff --git a/swing/src/net/sf/openrocket/gui/util/UITheme.java b/swing/src/net/sf/openrocket/gui/util/UITheme.java index f733501d6..e672fdf4a 100644 --- a/swing/src/net/sf/openrocket/gui/util/UITheme.java +++ b/swing/src/net/sf/openrocket/gui/util/UITheme.java @@ -12,19 +12,16 @@ import org.slf4j.LoggerFactory; import javax.swing.BorderFactory; import javax.swing.Icon; -import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.border.Border; import java.awt.Color; import java.awt.Font; import java.io.IOException; -import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicReference; public class UITheme { private static final Translator trans = Application.getTranslator(); @@ -88,6 +85,36 @@ public class UITheme { void formatScriptTextArea(RSyntaxTextArea textArea); + // Rocket component icons + String getComponentIconNoseCone(); + String getComponentIconBodyTube(); + String getComponentIconTransition(); + String getComponentIconTrapezoidFinSet(); + String getComponentIconEllipticalFinSet(); + String getComponentIconFreeformFinSet(); + String getComponentIconTubeFinSet(); + String getComponentIconLaunchLug(); + String getComponentIconRailButton(); + String getComponentIconInnerTube(); + String getComponentIconTubeCoupler(); + String getComponentIconCenteringRing(); + String getComponentIconBulkhead(); + String getComponentIconEngineBlock(); + String getComponentIconParachute(); + String getComponentIconStreamer(); + String getComponentIconShockCord(); + String getComponentIconMass(); + String getComponentIconStage(); + String getComponentIconBoosters(); + String getComponentIconPods(); + String getComponentIconMassAltimeter(); + String getComponentIconMassBattery(); + String getComponentIconMassDeploymentCharge(); + String getComponentIconMassPayload(); + String getComponentIconMassFlightComp(); + String getComponentIconMassRecoveryHardware(); + String getComponentIconMassTracker(); + // Static list of listeners static List themeChangeListeners = new ArrayList<>(); @@ -365,6 +392,119 @@ public class UITheme { log.warn("Unable to load RSyntaxTextArea theme", ioe); } } + + @Override + public String getComponentIconNoseCone() { + return "nosecone"; + } + @Override + public String getComponentIconBodyTube() { + return "bodytube"; + } + @Override + public String getComponentIconTransition() { + return "transition"; + } + @Override + public String getComponentIconTrapezoidFinSet() { + return "trapezoidfin"; + } + @Override + public String getComponentIconEllipticalFinSet() { + return "ellipticalfin"; + } + @Override + public String getComponentIconFreeformFinSet() { + return "freeformfin"; + } + @Override + public String getComponentIconTubeFinSet() { + return "tubefin"; + } + @Override + public String getComponentIconLaunchLug() { + return "launchlug"; + } + @Override + public String getComponentIconRailButton() { + return "railbutton"; + } + @Override + public String getComponentIconInnerTube() { + return "innertube"; + } + @Override + public String getComponentIconTubeCoupler() { + return "tubecoupler"; + } + @Override + public String getComponentIconCenteringRing() { + return "centeringring"; + } + @Override + public String getComponentIconBulkhead() { + return "bulkhead"; + } + @Override + public String getComponentIconEngineBlock() { + return "engineblock"; + } + @Override + public String getComponentIconParachute() { + return "parachute"; + } + @Override + public String getComponentIconStreamer() { + return "streamer"; + } + @Override + public String getComponentIconShockCord() { + return "shockcord"; + } + @Override + public String getComponentIconMass() { + return "mass"; + } + @Override + public String getComponentIconStage() { + return "stage"; + } + @Override + public String getComponentIconBoosters() { + return "boosters"; + } + @Override + public String getComponentIconPods() { + return "pods"; + } + @Override + public String getComponentIconMassAltimeter() { + return "altimeter"; + } + @Override + public String getComponentIconMassBattery() { + return "battery"; + } + @Override + public String getComponentIconMassDeploymentCharge() { + return "deployment-charge"; + } + @Override + public String getComponentIconMassPayload() { + return "payload"; + } + @Override + public String getComponentIconMassFlightComp() { + return "flight-comp"; + } + @Override + public String getComponentIconMassRecoveryHardware() { + return "recovery-hardware"; + } + @Override + public String getComponentIconMassTracker() { + return "tracker"; + } }, /* Dark theme @@ -599,6 +739,119 @@ public class UITheme { log.warn("Unable to load RSyntaxTextArea theme", ioe); } } + + @Override + public String getComponentIconNoseCone() { + return "nosecone"; + } + @Override + public String getComponentIconBodyTube() { + return "bodytube"; + } + @Override + public String getComponentIconTransition() { + return "transition"; + } + @Override + public String getComponentIconTrapezoidFinSet() { + return "trapezoidfin"; + } + @Override + public String getComponentIconEllipticalFinSet() { + return "ellipticalfin_dark"; + } + @Override + public String getComponentIconFreeformFinSet() { + return "freeformfin_dark"; + } + @Override + public String getComponentIconTubeFinSet() { + return "tubefin"; + } + @Override + public String getComponentIconLaunchLug() { + return "launchlug_dark"; + } + @Override + public String getComponentIconRailButton() { + return "railbutton"; + } + @Override + public String getComponentIconInnerTube() { + return "innertube"; + } + @Override + public String getComponentIconTubeCoupler() { + return "tubecoupler"; + } + @Override + public String getComponentIconCenteringRing() { + return "centeringring"; + } + @Override + public String getComponentIconBulkhead() { + return "bulkhead"; + } + @Override + public String getComponentIconEngineBlock() { + return "engineblock"; + } + @Override + public String getComponentIconParachute() { + return "parachute_dark"; + } + @Override + public String getComponentIconStreamer() { + return "streamer_dark"; + } + @Override + public String getComponentIconShockCord() { + return "shockcord_dark"; + } + @Override + public String getComponentIconMass() { + return "mass_dark"; + } + @Override + public String getComponentIconStage() { + return "stage"; + } + @Override + public String getComponentIconBoosters() { + return "boosters"; + } + @Override + public String getComponentIconPods() { + return "pods_dark"; + } + @Override + public String getComponentIconMassAltimeter() { + return "altimeter_dark"; + } + @Override + public String getComponentIconMassBattery() { + return "battery_dark"; + } + @Override + public String getComponentIconMassDeploymentCharge() { + return "deployment-charge_dark"; + } + @Override + public String getComponentIconMassPayload() { + return "payload"; + } + @Override + public String getComponentIconMassFlightComp() { + return "flight-comp_dark"; + } + @Override + public String getComponentIconMassRecoveryHardware() { + return "recovery-hardware_dark"; + } + @Override + public String getComponentIconMassTracker() { + return "tracker_dark"; + } }, /* High-contrast dark theme @@ -1075,6 +1328,119 @@ public class UITheme { public void formatScriptTextArea(RSyntaxTextArea textArea) { getCurrentTheme().formatScriptTextArea(textArea); } + + @Override + public String getComponentIconNoseCone() { + return getCurrentTheme().getComponentIconNoseCone(); + } + @Override + public String getComponentIconBodyTube() { + return getCurrentTheme().getComponentIconBodyTube(); + } + @Override + public String getComponentIconTransition() { + return getCurrentTheme().getComponentIconTransition(); + } + @Override + public String getComponentIconTrapezoidFinSet() { + return getCurrentTheme().getComponentIconTrapezoidFinSet(); + } + @Override + public String getComponentIconEllipticalFinSet() { + return getCurrentTheme().getComponentIconEllipticalFinSet(); + } + @Override + public String getComponentIconFreeformFinSet() { + return getCurrentTheme().getComponentIconFreeformFinSet(); + } + @Override + public String getComponentIconTubeFinSet() { + return getCurrentTheme().getComponentIconTubeFinSet(); + } + @Override + public String getComponentIconLaunchLug() { + return getCurrentTheme().getComponentIconLaunchLug(); + } + @Override + public String getComponentIconRailButton() { + return getCurrentTheme().getComponentIconRailButton(); + } + @Override + public String getComponentIconInnerTube() { + return getCurrentTheme().getComponentIconInnerTube(); + } + @Override + public String getComponentIconTubeCoupler() { + return getCurrentTheme().getComponentIconTubeCoupler(); + } + @Override + public String getComponentIconCenteringRing() { + return getCurrentTheme().getComponentIconCenteringRing(); + } + @Override + public String getComponentIconBulkhead() { + return getCurrentTheme().getComponentIconBulkhead(); + } + @Override + public String getComponentIconEngineBlock() { + return getCurrentTheme().getComponentIconEngineBlock(); + } + @Override + public String getComponentIconParachute() { + return getCurrentTheme().getComponentIconParachute(); + } + @Override + public String getComponentIconStreamer() { + return getCurrentTheme().getComponentIconStreamer(); + } + @Override + public String getComponentIconShockCord() { + return getCurrentTheme().getComponentIconShockCord(); + } + @Override + public String getComponentIconMass() { + return getCurrentTheme().getComponentIconMass(); + } + @Override + public String getComponentIconStage() { + return getCurrentTheme().getComponentIconStage(); + } + @Override + public String getComponentIconBoosters() { + return getCurrentTheme().getComponentIconBoosters(); + } + @Override + public String getComponentIconPods() { + return getCurrentTheme().getComponentIconPods(); + } + @Override + public String getComponentIconMassAltimeter() { + return getCurrentTheme().getComponentIconMassAltimeter(); + } + @Override + public String getComponentIconMassBattery() { + return getCurrentTheme().getComponentIconMassBattery(); + } + @Override + public String getComponentIconMassDeploymentCharge() { + return getCurrentTheme().getComponentIconMassDeploymentCharge(); + } + @Override + public String getComponentIconMassPayload() { + return getCurrentTheme().getComponentIconMassPayload(); + } + @Override + public String getComponentIconMassFlightComp() { + return getCurrentTheme().getComponentIconMassFlightComp(); + } + @Override + public String getComponentIconMassRecoveryHardware() { + return getCurrentTheme().getComponentIconMassRecoveryHardware(); + } + @Override + public String getComponentIconMassTracker() { + return getCurrentTheme().getComponentIconMassTracker(); + } } }