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