From e5f0ff93229c97a6fa180fe99d7114e8b95599a9 Mon Sep 17 00:00:00 2001 From: SiboVG Date: Thu, 8 Aug 2024 12:06:55 +0200 Subject: [PATCH] Save component preset material in document preferences --- .../openrocket/core/rocketcomponent/ExternalComponent.java | 3 +++ .../java/info/openrocket/core/rocketcomponent/Parachute.java | 3 +++ .../info/openrocket/core/rocketcomponent/RecoveryDevice.java | 3 +++ .../openrocket/core/rocketcomponent/StructuralComponent.java | 3 +++ 4 files changed, 12 insertions(+) diff --git a/core/src/main/java/info/openrocket/core/rocketcomponent/ExternalComponent.java b/core/src/main/java/info/openrocket/core/rocketcomponent/ExternalComponent.java index 8ae9796e9..e223847c0 100644 --- a/core/src/main/java/info/openrocket/core/rocketcomponent/ExternalComponent.java +++ b/core/src/main/java/info/openrocket/core/rocketcomponent/ExternalComponent.java @@ -193,6 +193,9 @@ public abstract class ExternalComponent extends RocketComponent { Material mat = preset.get(ComponentPreset.MATERIAL); if (mat != null) { material = mat; + if (getRoot() instanceof Rocket rocket && rocket.getDocument() != null) { + rocket.getDocument().getDocumentPreferences().addMaterial(mat); + } } /* * TODO - * else if (c.isMassOverridden()) { diff --git a/core/src/main/java/info/openrocket/core/rocketcomponent/Parachute.java b/core/src/main/java/info/openrocket/core/rocketcomponent/Parachute.java index e5bc731f9..9a7d05920 100644 --- a/core/src/main/java/info/openrocket/core/rocketcomponent/Parachute.java +++ b/core/src/main/java/info/openrocket/core/rocketcomponent/Parachute.java @@ -224,6 +224,9 @@ public class Parachute extends RecoveryDevice { int count = lineMaterialEmpty.length(); if (count > 12 ) { this.lineMaterial = preset.get(ComponentPreset.LINE_MATERIAL); + if (getRoot() instanceof Rocket rocket && rocket.getDocument() != null) { + rocket.getDocument().getDocumentPreferences().addMaterial(this.lineMaterial); + } } else { this.lineMaterial = DEFAULT_LINE_MATERIAL; } diff --git a/core/src/main/java/info/openrocket/core/rocketcomponent/RecoveryDevice.java b/core/src/main/java/info/openrocket/core/rocketcomponent/RecoveryDevice.java index bf7201488..4375f90e7 100644 --- a/core/src/main/java/info/openrocket/core/rocketcomponent/RecoveryDevice.java +++ b/core/src/main/java/info/openrocket/core/rocketcomponent/RecoveryDevice.java @@ -144,6 +144,9 @@ public abstract class RecoveryDevice extends MassObject implements FlightConfigu if (count > 12 ) { Material m = preset.get(ComponentPreset.MATERIAL); this.material = (Material.Surface) m; + if (getRoot() instanceof Rocket rocket && rocket.getDocument() != null) { + rocket.getDocument().getDocumentPreferences().addMaterial(m); + } } else { this.material = defaultMaterial; } diff --git a/core/src/main/java/info/openrocket/core/rocketcomponent/StructuralComponent.java b/core/src/main/java/info/openrocket/core/rocketcomponent/StructuralComponent.java index 0b96458ce..a043d1a8a 100644 --- a/core/src/main/java/info/openrocket/core/rocketcomponent/StructuralComponent.java +++ b/core/src/main/java/info/openrocket/core/rocketcomponent/StructuralComponent.java @@ -23,6 +23,9 @@ public abstract class StructuralComponent extends InternalComponent { Material mat = preset.get(ComponentPreset.MATERIAL); if (mat != null) { this.material = mat; + if (getRoot() instanceof Rocket rocket && rocket.getDocument() != null) { + rocket.getDocument().getDocumentPreferences().addMaterial(mat); + } } /* * TODO - * else if (c.isMassOverridden()) {