Przeglądaj źródła

drag n drop for all prefab extensions

Nicolas Cannasse 5 lat temu
rodzic
commit
e0d564ba7b
4 zmienionych plików z 22 dodań i 52 usunięć
  1. 16 1
      hide/comp/SceneEditor.hx
  2. 4 19
      hide/view/FXEditor.hx
  3. 1 16
      hide/view/Prefab.hx
  4. 1 16
      hide/view/l3d/Level3D.hx

+ 16 - 1
hide/comp/SceneEditor.hx

@@ -1533,7 +1533,22 @@ class SceneEditor {
 		return localMat;
 		return localMat;
 	}
 	}
 
 
-	public function dropObjects(paths: Array<String>, parent: PrefabElement) {
+	public function onDragDrop( items : Array<String>, isDrop : Bool ) {
+		var supported = @:privateAccess hrt.prefab.Library.registeredExtensions;
+		var paths = [];
+		for(path in items) {
+			var ext = haxe.io.Path.extension(path).toLowerCase();
+			if( supported.exists(ext) )
+				paths.push(path);
+		}
+		if( paths.length == 0 )
+			return false;
+		if(isDrop)
+			dropObjects(paths, sceneData);
+		return true;
+	}
+
+	function dropObjects(paths: Array<String>, parent: PrefabElement) {
 		scene.setCurrent();
 		scene.setCurrent();
 		var localMat = getPickTransform(parent);
 		var localMat = getPickTransform(parent);
 		if(localMat == null) return;
 		if(localMat == null) return;

+ 4 - 19
hide/view/FXEditor.hx

@@ -546,22 +546,7 @@ class FXEditor extends FileView {
 	}
 	}
 
 
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
-		var supported = ["fbx"];
-		var models = [];
-		for(path in items) {
-			var ext = haxe.io.Path.extension(path).toLowerCase();
-			if(supported.indexOf(ext) >= 0) {
-				models.push(path);
-			}
-		}
-		if(models.length > 0) {
-			if(isDrop) {
-				var parent : PrefabElement = data;
-				sceneEditor.dropObjects(models, parent);
-			}
-			return true;
-		}
-		return false;
+		return sceneEditor.onDragDrop(items,isDrop);
 	}
 	}
 
 
 	function onSelect(elts : Array<PrefabElement>) {
 	function onSelect(elts : Array<PrefabElement>) {
@@ -1376,7 +1361,7 @@ class FXEditor extends FileView {
 						menu: [	trackItem("Color", hslTracks(), "color"),
 						menu: [	trackItem("Color", hslTracks(), "color"),
 								trackItem("Power",[{name: "power"}]),
 								trackItem("Power",[{name: "power"}]),
 								trackItem("Size", [{name: "size"}]),
 								trackItem("Size", [{name: "size"}]),
-								trackItem("Range", [{name: "range"}]), 
+								trackItem("Range", [{name: "range"}]),
 								]
 								]
 					});
 					});
 				case Directional:
 				case Directional:
@@ -1393,7 +1378,7 @@ class FXEditor extends FileView {
 								trackItem("Power",[{name: "power"}]),
 								trackItem("Power",[{name: "power"}]),
 								trackItem("Range", [{name: "range"}]),
 								trackItem("Range", [{name: "range"}]),
 								trackItem("Angle", [{name: "angle"}]),
 								trackItem("Angle", [{name: "angle"}]),
-								trackItem("FallOff", [{name: "fallOff"}]), 
+								trackItem("FallOff", [{name: "fallOff"}]),
 								]
 								]
 					});
 					});
 			}
 			}
@@ -1410,7 +1395,7 @@ class FXEditor extends FileView {
 			grid2d.remove();
 			grid2d.remove();
 			grid2d = null;
 			grid2d = null;
 		}
 		}
-		
+
 		if(!showGrid)
 		if(!showGrid)
 			return;
 			return;
 
 

+ 1 - 16
hide/view/Prefab.hx

@@ -130,22 +130,7 @@ class Prefab extends FileView {
 	}
 	}
 
 
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
-		var supported = ["fbx", "fx"];
-		var paths = [];
-		for(path in items) {
-			var ext = haxe.io.Path.extension(path).toLowerCase();
-			if(supported.indexOf(ext) >= 0) {
-				paths.push(path);
-			}
-		}
-		if(paths.length > 0) {
-			if(isDrop) {
-				var parent : PrefabElement = data;
-				sceneEditor.dropObjects(paths, parent);
-			}
-			return true;
-		}
-		return false;
+		return sceneEditor.onDragDrop(items,isDrop);
 	}
 	}
 
 
 	static var _ = FileTree.registerExtension(Prefab,["prefab"],{ icon : "sitemap", createNew : "Prefab" });
 	static var _ = FileTree.registerExtension(Prefab,["prefab"],{ icon : "sitemap", createNew : "Prefab" });

+ 1 - 16
hide/view/l3d/Level3D.hx

@@ -554,22 +554,7 @@ class Level3D extends FileView {
 	}
 	}
 
 
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
-		var supported = ["fbx", "fx", "l3d", "prefab"];
-		var paths = [];
-		for(path in items) {
-			var ext = haxe.io.Path.extension(path).toLowerCase();
-			if(supported.indexOf(ext) >= 0) {
-				paths.push(path);
-			}
-		}
-		if(paths.length > 0) {
-			if(isDrop) {
-				var parent : PrefabElement = data;
-				sceneEditor.dropObjects(paths, parent);
-			}
-			return true;
-		}
-		return false;
+		return sceneEditor.onDragDrop(items, isDrop);
 	}
 	}
 
 
 	function applySceneFilter(typeid: String, visible: Bool) {
 	function applySceneFilter(typeid: String, visible: Bool) {