瀏覽代碼

Merge branch 'master' into cdb-view

lviguier 1 年之前
父節點
當前提交
94a25d99f7
共有 5 個文件被更改,包括 27 次插入22 次删除
  1. 0 1
      hide/Ide.hx
  2. 8 17
      hide/comp/SceneEditor.hx
  3. 12 0
      hide/view/FileTree.hx
  4. 1 1
      hrt/prefab/Material.hx
  5. 6 3
      hrt/prefab/l3d/Spline.hx

+ 0 - 1
hide/Ide.hx

@@ -235,7 +235,6 @@ class Ide extends hide.tools.IdeData {
 		new Element(window.window.document).on("dnd_move.vakata.jstree", function(e, data:Dynamic) {
 			var el = (data.helper:hide.Element);
 			var drag = treeDragFun(data,false);
-			trace(drag);
 			var icon = el.find(new Element(".jstree-icon"));
 			el.css(drag ? { filter : "brightness(120%)", opacity : 1 } : { filter : "", opacity : 0.5 });
 			icon.toggleClass("jstree-er", !drag);

+ 8 - 17
hide/comp/SceneEditor.hx

@@ -1762,7 +1762,6 @@ class SceneEditor {
 
 			undo.change(Field(e, "name", oldName), function() {
 				tree.refresh(() -> refreshTree());
-				refreshScene();
 			});
 
 			// When renaming a material, we want to rename every references in .props files
@@ -1784,7 +1783,6 @@ class SceneEditor {
 					@:privateAccess prefabView.renameMatsHistory.push({ previousName: oldName, newName: name, prefab: e });
 			}
 
-			refreshScene();
 			return true;
 		};
 
@@ -3141,26 +3139,19 @@ class SceneEditor {
 				model.name = "";
 				autoName(model);
 				changedModels.push(model);
+				model.getLocal3d().remove();
+				model.make();
 			}
 		}
 		undo.change(Custom(function(u) {
-			if(u) {
-				for (model in changedModels) {
-					model.source = oldPath;
-					model.name = "";
-					autoName(model);
-				}
-			}
-			else {
-				for (model in changedModels) {
-					model.source = path;
-					model.name = "";
-					autoName(model);
-				}
+			for (model in changedModels) {
+				model.source = u ? oldPath : path;
+				model.name = "";
+				autoName(model);
+				model.getLocal3d().remove();
+				model.make();
 			}
-			refresh();
 		}));
-		refresh();
 	}
 
 	public dynamic function onSelectionChanged(elts : Array<PrefabElement>, ?mode : SelectMode = Default) {};

+ 12 - 0
hide/view/FileTree.hx

@@ -159,6 +159,8 @@ class FileTree extends FileView {
 			]);
 		});
 		tree.onDblClick = onOpenFile;
+		tree.onAllowMove = onAllowMove;
+		tree.onMove = doMove;
 		tree.init();
 	}
 
@@ -366,6 +368,16 @@ class FileTree extends FileView {
 		return true;
 	}
 
+	function onAllowMove(e: String, to : String) {
+		var destAbsPath = Ide.inst.getPath(to);
+		return sys.FileSystem.isDirectory(destAbsPath);
+	}
+
+	function doMove(e : String, to : String, index : Int) {
+		var dest = "/" + to + "/" + e.split("/").pop();
+		doRename(e, dest);
+	}
+
 	function onExploreFile( path : String ) {
 		Ide.showFileInExplorer(path);
 	}

+ 1 - 1
hrt/prefab/Material.hx

@@ -127,7 +127,7 @@ class Material extends Prefab {
 			var flat = getRoot().flatten(Prefab);
 			for (f in flat) {
 				var cl = Type.getClass(f);
-				if (cl != hrt.prefab.Object3D && cl != hrt.prefab.Prefab && Std.downcast(f, hrt.prefab.Material) == null) {
+				if (cl != hrt.prefab.Object3D && cl != hrt.prefab.Prefab && Std.downcast(f, hrt.prefab.Material) == null && Std.downcast(f, Shader) == null) {
 					isMatLib = false;
 					break;
 				}

+ 6 - 3
hrt/prefab/l3d/Spline.hx

@@ -225,6 +225,9 @@ class SplinePoint extends Object3D {
 	}
 
 	public function setViewerVisible(visible : Bool) {
+		if (pointViewer == null)
+			return;
+
 		pointViewer.visible = visible;
 		indexText.visible = visible;
 		controlPointsViewer.visible = visible;
@@ -360,7 +363,7 @@ class Spline extends Object3D {
 		var s1 = 0;
 		var sa = 0;
 		var sb = data.samples.length-1;
-		if( t >= 1 ) 
+		if( t >= 1 )
 			s1 = sb;
 		else {
 			do {
@@ -574,7 +577,7 @@ class Spline extends Object3D {
 			var b = s2.pos;
 
 			var d = inline new h3d.col.Point();
-			
+
 			var ab = inline b.sub(a);
 			var ca = inline c.sub(a);
 			var t = inline ca.dot(ab);
@@ -731,7 +734,7 @@ class Spline extends Object3D {
 	override function setSelected(b : Bool ) {
 		super.setSelected(b);
 
-		if( editor != null )
+		if( editor != null && this.enabled)
 			editor.setSelected(b);
 
 		return true;