Support material group loading from preset
This commit is contained in:
parent
e3ce3ac7dd
commit
65116fcb58
@ -18,6 +18,7 @@ import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import info.openrocket.core.material.Material;
|
||||
import info.openrocket.core.material.MaterialGroup;
|
||||
import info.openrocket.core.motor.Manufacturer;
|
||||
import info.openrocket.core.rocketcomponent.ExternalComponent.Finish;
|
||||
import info.openrocket.core.rocketcomponent.Transition.Shape;
|
||||
@ -452,6 +453,9 @@ public class ComponentPreset implements Comparable<ComponentPreset>, Serializabl
|
||||
} else if (key.getType() == Material.class) {
|
||||
double d = ((Material) value).getDensity();
|
||||
os.writeDouble(d);
|
||||
} else if (key.getType() == MaterialGroup.class) {
|
||||
String s = ((MaterialGroup) value).getDatabaseString();
|
||||
os.writeBytes(s);
|
||||
} else if (key.getType() == Shape.class) {
|
||||
// this is ugly to use the ordinal but what else?
|
||||
int i = ((Shape) value).ordinal();
|
||||
@ -478,6 +482,7 @@ public class ComponentPreset implements Comparable<ComponentPreset>, Serializabl
|
||||
String type;
|
||||
boolean userDefined;
|
||||
Double density;
|
||||
String group;
|
||||
}
|
||||
|
||||
private void writeObject(ObjectOutputStream oos) throws IOException {
|
||||
@ -496,6 +501,7 @@ public class ComponentPreset implements Comparable<ComponentPreset>, Serializabl
|
||||
m.type = material.getType().name();
|
||||
m.density = material.getDensity();
|
||||
m.userDefined = material.isUserDefined();
|
||||
m.group = material.getGroup().getDatabaseString();
|
||||
value = m;
|
||||
}
|
||||
|
||||
@ -520,7 +526,8 @@ 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, m.userDefined);
|
||||
value = Material.newMaterial(Material.Type.valueOf(m.type), m.name, m.density,
|
||||
MaterialGroup.loadFromDatabaseString(m.group), m.userDefined);
|
||||
}
|
||||
if (TYPE.getName().equals(keyName)) {
|
||||
this.properties.put(TYPE, (ComponentPreset.Type) value);
|
||||
|
Loading…
x
Reference in New Issue
Block a user