浏览代码

Removed almost all remaining instance of refreshScene

Clément Espeute 1 年之前
父节点
当前提交
985e7e0e2f
共有 3 个文件被更改,包括 8 次插入24 次删除
  1. 7 10
      hide/comp/SceneEditor.hx
  2. 0 13
      hide/view/FXEditor.hx
  3. 1 1
      hrt/prefab/Model.hx

+ 7 - 10
hide/comp/SceneEditor.hx

@@ -2676,12 +2676,6 @@ class SceneEditor {
 	}
 
 	public function onPrefabChange(p: PrefabElement, ?pname: String) {
-		// TODO : implement
-		/*var model = p.to(hrt.prefab.Model);
-		if(model != null && pname == "source") {
-			refreshScene();
-			return;
-		}*/
 
 		if(p != sceneData) {
 			var el = tree.getElement(p);
@@ -3686,11 +3680,13 @@ class SceneEditor {
 	public function setEditorOnly(elements : Array<PrefabElement>, enable: Bool) {
 		var old = [for(e in elements) e.editorOnly];
 		function apply(on) {
+			beginRebuild();
 			for(i in 0...elements.length) {
 				elements[i].editorOnly = on ? enable : old[i];
 				onPrefabChange(elements[i]);
+				queueRebuild(elements[i]);
 			}
-			refreshScene();
+			endRebuild();
 		}
 		apply(true);
 		undo.change(Custom(function(undo) {
@@ -3704,11 +3700,13 @@ class SceneEditor {
 	public function setInGameOnly(elements : Array<PrefabElement>, enable: Bool) {
 		var old = [for(e in elements) e.inGameOnly];
 		function apply(on) {
+			beginRebuild();
 			for(i in 0...elements.length) {
 				elements[i].inGameOnly = on ? enable : old[i];
 				onPrefabChange(elements[i]);
+				queueRebuild(elements[i]);
 			}
-			refreshScene();
+			endRebuild();
 		}
 		apply(true);
 		undo.change(Custom(function(undo) {
@@ -3777,7 +3775,6 @@ class SceneEditor {
 					elements[i].locked = redo ? locked : prev[i];
 			}), function() {
 				tree.refresh();
-				refreshScene();
 			});
 		}
 
@@ -4148,7 +4145,7 @@ class SceneEditor {
 
 		prefab.editorRemoveInstance();
 
-		if (prefab.enabled) {
+		if (prefab.enabled && !prefab.inGameOnly) {
 			prefab.shared.current3d = prefab.parent?.findFirstLocal3d() ?? root3d;
 			prefab.shared.current2d = prefab.parent?.findFirstLocal2d() ?? root2d;
 			prefab.setEditor(this, this.scene);

+ 0 - 13
hide/view/FXEditor.hx

@@ -32,10 +32,6 @@ class FXEditContext extends hide.prefab.EditContext {
 		super.onChange(p, propName);
 		parent.onPrefabChange(p, propName);
 	}
-
-	override function rebuildPrefab(p : hrt.prefab.Prefab, ?sceneOnly) {
-		parent.sceneEditor.refreshScene();
-	}
 }
 
 @:access(hide.view.FXEditor)
@@ -770,13 +766,6 @@ class FXEditor extends hide.view.FileView {
 				this.curveEditor.refreshGraph();
 			}
 		}
-
-	}
-
-	function onRefreshScene() {
-		var renderProps = cast(data, hrt.prefab.Prefab).find(hrt.prefab.RenderProps);
-		if(renderProps != null)
-			renderProps.applyProps(scene.s3d.renderer);
 	}
 
 	override function onDragDrop(items : Array<String>, isDrop : Bool) {
@@ -1722,8 +1711,6 @@ class FXEditor extends hide.view.FileView {
 			if(currentTime >= previewMax) {
 				currentTime = previewMin;
 
-				//if(data.scriptCode != null && data.scriptCode.length > 0)
-					//sceneEditor.refreshScene(); // This allow to reset the scene when values are modified causes edition issues, solves
 				for(f in allFx)
 					f.setRandSeed(Std.random(0xFFFFFF));
 			}

+ 1 - 1
hrt/prefab/Model.hx

@@ -141,7 +141,7 @@ class Model extends Object3D {
 			if( pname == "retargetIgnore" && ctx.properties.isTempChange ) return;
 
 			if (pname == "source")
-				ctx.scene.editor.refreshScene();
+				ctx.scene.editor.queueRebuild(this);
 
 			ctx.onChange(this, pname);
 		});