Ver Fonte

MeshSpray config: edit, delete presets

Tom SPIRA há 5 anos atrás
pai
commit
d31639bd13
1 ficheiros alterados com 35 adições e 3 exclusões
  1. 35 3
      hrt/prefab/l3d/MeshSpray.hx

+ 35 - 3
hrt/prefab/l3d/MeshSpray.hx

@@ -76,7 +76,8 @@ class MeshSpray extends Object3D {
 	}
 	}
 
 
 	override function save() {
 	override function save() {
-		var obj : Dynamic = super.save();
+		var obj : Dynamic = {};
+		obj.x = obj.y = obj.z = 0;
 		obj.meshes = meshes;
 		obj.meshes = meshes;
 		obj.dontRepeatMesh = dontRepeatMesh;
 		obj.dontRepeatMesh = dontRepeatMesh;
 		obj.currentPresetName = currentPresetName;
 		obj.currentPresetName = currentPresetName;
@@ -93,7 +94,7 @@ class MeshSpray extends Object3D {
 	}
 	}
 
 
 	override function load( obj : Dynamic ) {
 	override function load( obj : Dynamic ) {
-		super.load(obj);
+		x = y = z = 0;
 		if (obj.meshes != null)
 		if (obj.meshes != null)
 			meshes = obj.meshes;
 			meshes = obj.meshes;
 		if (obj.density != null)
 		if (obj.density != null)
@@ -232,7 +233,9 @@ class MeshSpray extends Object3D {
 		
 		
 		var preset = new hide.Element('<div class="btn-list" align="center" ></div>').appendTo(props);
 		var preset = new hide.Element('<div class="btn-list" align="center" ></div>').appendTo(props);
 
 
-		var selectPresetElt = new hide.Element('<select style="width: 150px" ></select>').appendTo(preset);
+		var presetChoice = new hide.Element('<div align="center" ></div>').appendTo(preset);
+
+		var selectPresetElt = new hide.Element('<select style="width: 150px" ></select>').appendTo(presetChoice);
 
 
 		function updateSelectPreset() {
 		function updateSelectPreset() {
 			selectPresetElt.empty();
 			selectPresetElt.empty();
@@ -247,6 +250,9 @@ class MeshSpray extends Object3D {
 		}
 		}
 		updateSelectPreset();
 		updateSelectPreset();
 
 
+		var editPresetName = new hide.Element('<button>Edit</button>').appendTo(presetChoice);
+		var deletePreset = new hide.Element('<button>Del.</button>').appendTo(presetChoice);
+
 		var setsList = new hide.Element('<div align="center" ></div>').appendTo(preset);
 		var setsList = new hide.Element('<div align="center" ></div>').appendTo(preset);
 
 
 		var selectElement = new hide.Element('<select multiple size="6" style="width: 300px" ></select>').appendTo(props);
 		var selectElement = new hide.Element('<select multiple size="6" style="width: 300px" ></select>').appendTo(props);
@@ -346,6 +352,32 @@ class MeshSpray extends Object3D {
 			currentPresetName = value;
 			currentPresetName = value;
 			onChangePreset();
 			onChangePreset();
 		});
 		});
+
+		editPresetName.on("click", function() {
+			if (currentPresetName == null) return;
+			var preset = allSetGroups.filter(s -> s.name == currentPresetName);
+			if (preset.length == 0) return;
+			var name = hide.Ide.inst.ask("New name preset:");
+			if (name == null || name.length == 0) return;
+			preset[0].name = name;
+			currentPresetName = name;
+			saveConfigMeshBatch();
+			updateSelectPreset();
+			onChangePreset();
+		});
+		
+		deletePreset.on("click", function() {
+			if (currentPresetName == null) return;
+			var preset = allSetGroups.filter(s -> s.name == currentPresetName);
+			if (preset.length == 0) return;
+			allSetGroups.remove(preset[0]);
+			currentPresetName = null;
+			currentSetName = null;
+			saveConfigMeshBatch();
+			updateSelectPreset();
+			onChangePreset();
+		});
+
 		onChangePreset();
 		onChangePreset();
 
 
 		var options = new hide.Element('<div class="btn-list" align="center" ></div>').appendTo(props);
 		var options = new hide.Element('<div class="btn-list" align="center" ></div>').appendTo(props);