import net.sf.openrocket.l10n.Translator;
import net.sf.openrocket.material.Material;
import net.sf.openrocket.material.Material.Type;
-import net.sf.openrocket.preset.ExternalComponentPreset;
-import net.sf.openrocket.preset.RocketComponentPreset;
import net.sf.openrocket.startup.Application;
import net.sf.openrocket.unit.UnitGroup;
import net.sf.openrocket.util.Prefs;
material = mat;
clearPreset();
fireComponentChangeEvent(ComponentChangeEvent.MASS_CHANGE);
+ clearPreset();
}
public Finish getFinish() {
@Override
- protected void loadFromPreset(RocketComponentPreset preset) {
+ protected void loadFromPreset(RocketComponent preset) {
super.loadFromPreset(preset);
- ExternalComponentPreset p = (ExternalComponentPreset) preset;
- String materialName = p.getMaterialName();
- double mass = p.getMass();
+ // Surface finish is left unchanged
+
+ ExternalComponent c = (ExternalComponent) preset;
- double volume = getComponentVolume();
- double density;
- if (volume > 0.00001) {
- density = mass / volume;
- } else {
- density = 1000;
+ Material mat = c.getMaterial();
+ if (c.isMassOverridden()) {
+ double mass = c.getOverrideMass();
+ double volume = getComponentVolume();
+ double density;
+ if (volume > 0.00001) {
+ density = mass / volume;
+ } else {
+ density = 1000;
+ }
+ mat = Material.newMaterial(Type.BULK, mat.getName(), density, true);
}
- Material mat = Material.newMaterial(Type.BULK, materialName, density, true);
setMaterial(mat);
}