2
0
Эх сурвалжийг харах

SceneFilters: add FX scene filter

lviguier 6 сар өмнө
parent
commit
df3eb3adcd

+ 1 - 1
bin/defaultProps.json

@@ -163,7 +163,7 @@
 	// l3d config
 	"sceneeditor.colors": {
 	},
-	"sceneeditor.filterTypes": ["terrain", "heightmap", "model", "polygon", "box", "instance", "light", "meshSpray", "advancedDecal"],
+	"sceneeditor.filterTypes": ["terrain", "heightmap", "model", "polygon", "box", "instance", "light", "meshSpray", "advancedDecal", "fx"],
 	"sceneeditor.tags": [ { "id": "tag", "color": "#802000" } ],
 	"sceneeditor.camera.moveSpeed": 1.5,
 	"sceneeditor.gridSize": 100,

+ 1 - 1
hide/comp/SceneEditor.hx

@@ -4440,7 +4440,7 @@ class SceneEditor {
 			prefab.make();
 		}
 
-		for( p in prefab.flatten() ) {
+		for( p in prefab.flatten(null, null, true) ) {
 			makeInteractive(p);
 			applySceneStyle(p);
 		}

+ 1 - 2
hide/view/Prefab.hx

@@ -868,8 +868,7 @@ class Prefab extends hide.view.FileView {
 	}
 
 	function applySceneStyle(p: PrefabElement) {
-		var prefabView = Std.downcast(p, hrt.prefab.Prefab); // don't use "to" (Reference)
-		if( prefabView != null && prefabView.parent == null ) {
+		if( p != null && p.parent == null && p.shared.parentPrefab == null) {
 			sceneEditor.updateGrid();
 			return;
 		}

+ 1 - 1
hrt/prefab/Prefab.hx

@@ -391,7 +391,7 @@ class Prefab {
 	/**
 		Returns all prefabs in the tree matching the specified class.
 	**/
-	public function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T> ) : Array<T> {
+	public function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T>, followRef: Bool = false ) : Array<T> {
 		if(arr == null)
 			arr = [];
 		if( cl == null )

+ 2 - 2
hrt/prefab/Reference.hx

@@ -130,9 +130,9 @@ class Reference extends Object3D {
 		return res;
 	}
 
-	override public function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T> ) : Array<T> {
+	override public function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T>, followRef : Bool = false ) : Array<T> {
 		arr = super.flatten(cl, arr);
-		if (editMode && refInstance != null) {
+		if ((editMode || followRef) && refInstance != null) {
 			arr = refInstance.flatten(cl, arr);
 		}
 		return arr;

+ 1 - 1
hrt/prefab/l3d/MeshSpray.hx

@@ -370,7 +370,7 @@ class MeshSpray extends Spray {
 		cast(local3d, MeshSprayObject).redraw();
 	}
 
-	override function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T> ) : Array<T> {
+	override function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T>, followRef : Bool = false ) : Array<T> {
 		if ( !editChildren )
 			return flattenSpray(cl, arr);
 

+ 1 - 1
hrt/prefab/l3d/PrefabSpray.hx

@@ -377,7 +377,7 @@ class PrefabSpray extends Spray {
 		sceneEditor.properties.element.find("#repeatPrefab").prop("checked", CONFIG.dontRepeatItem);
 	}
 
-	override function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T> ) : Array<T> {
+	override function flatten<T:Prefab>( ?cl : Class<T>, ?arr: Array<T>, followRef : Bool = false ) : Array<T> {
 		return flattenSpray(cl, arr);
 	}