Also load material to doc mats when setting material

This commit is contained in:
SiboVG 2024-08-08 18:47:55 +02:00
parent e5f0ff9322
commit de61ffe174
5 changed files with 18 additions and 6 deletions

View File

@ -527,7 +527,7 @@ public class ComponentPreset implements Comparable<ComponentPreset>, Serializabl
if (value instanceof MaterialSerializationProxy) {
MaterialSerializationProxy m = (MaterialSerializationProxy) value;
value = Material.newMaterial(Material.Type.valueOf(m.type), m.name, m.density,
MaterialGroup.loadFromDatabaseString(m.group), m.userDefined);
MaterialGroup.loadFromDatabaseString(m.group), m.userDefined, true);
}
if (TYPE.getName().equals(keyName)) {
this.properties.put(TYPE, (ComponentPreset.Type) value);

View File

@ -152,6 +152,9 @@ public abstract class ExternalComponent extends RocketComponent {
if (material.equals(mat))
return;
material = mat;
if (material.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(mat);
}
clearPreset();
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}
@ -193,7 +196,7 @@ 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) {
if (material.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(mat);
}
} /*

View File

@ -133,6 +133,9 @@ public class Parachute extends RecoveryDevice {
if (mat.equals(lineMaterial))
return;
this.lineMaterial = mat;
if (lineMaterial.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(this.lineMaterial);
}
if (getLineCount() != 0) {
clearPreset();
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
@ -224,7 +227,7 @@ 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) {
if (lineMaterial.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(this.lineMaterial);
}
} else {

View File

@ -103,6 +103,9 @@ public abstract class RecoveryDevice extends MassObject implements FlightConfigu
if (mat.equals(material))
return;
this.material = (Material.Surface) mat;
if (material.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(this.material);
}
clearPreset();
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}
@ -144,8 +147,8 @@ 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);
if (material.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(this.material);
}
} else {
this.material = defaultMaterial;

View File

@ -23,7 +23,7 @@ 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) {
if (material.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(mat);
}
} /*
@ -62,6 +62,9 @@ public abstract class StructuralComponent extends InternalComponent {
if (mat.equals(material))
return;
this.material = mat;
if (material.isDocumentMaterial() && getRoot() instanceof Rocket rocket && rocket.getDocument() != null) {
rocket.getDocument().getDocumentPreferences().addMaterial(mat);
}
clearPreset();
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
}