ShiroSmith 6 anni fa
parent
commit
49470dde32
1 ha cambiato i file con 15 aggiunte e 10 eliminazioni
  1. 15 10
      hide/prefab/l3d/AdvancedDecal.hx

+ 15 - 10
hide/prefab/l3d/AdvancedDecal.hx

@@ -49,7 +49,7 @@ class AdvancedDecal extends Object3D {
 		renderMode = obj.renderMode != null ? obj.renderMode : Decal;
 	}
 
-	override function makeInstance(ctx:Context):Context {
+	override function makeInstance(ctx:Context) : Context {
 		ctx = ctx.clone(this);
 		var mesh = new h3d.scene.pbr.Decal(h3d.prim.Cube.defaultUnitCube(), ctx.local3d);
 
@@ -120,14 +120,14 @@ class AdvancedDecal extends Object3D {
 		}
 	}
 
-	override function updateInstance(ctx:Context,?propName:String) {
+	override function updateInstance( ctx : Context, ?propName : String ) {
 		super.updateInstance(ctx,propName);
 		updateRenderParams(ctx);
 	}
 
 	#if editor
 	override function getHideProps() : HideProps {
-		return { icon : "paint-brush", name : "Decal" };
+		return { icon : "paint-brush", name : "AdvancedDecal" };
 	}
 
 	override function setSelected( ctx : Context, b : Bool ) {
@@ -146,14 +146,18 @@ class AdvancedDecal extends Object3D {
 			wireCenter.material.shadows = false;
 			wireCenter.material.mainPass.depthTest = Always;
 		} else {
-			for( o in ctx.shared.getObjects(this,h3d.scene.Box) )
-				if( o.name == "_highlight" ) {
-					o.remove();
-					return;
-				}
+			clearSelection( ctx );
 		}
 	}
 
+	function clearSelection( ctx : Context ) {
+
+		var obj = ctx.shared.contexts.get(this).local3d;
+		var objs = obj.findAll( o -> if(o.name == "_highlight") o else null );
+		for( o in objs )
+			o.remove();
+	}
+
 	var pbrParams = '<dt>Albedo</dt><dd><input type="texturepath" field="albedoMap"/>
 					<br/><input type="range" min="0" max="1" field="albedoStrength"/></dd>
 
@@ -174,7 +178,7 @@ class AdvancedDecal extends Object3D {
 			default: null;
 		}
 
-		function refreshProps(){
+		function refreshProps() {
 			var props = ctx.properties.add(new hide.Element('
 			<div class="decal">
 				<div class="group" name="Decal">
@@ -202,7 +206,8 @@ class AdvancedDecal extends Object3D {
 				</div>
 			</div>
 			'),this, function(pname) {
-				if(pname == "renderMode"){
+				if( pname == "renderMode" ) {
+					clearSelection( ctx.rootContext );
 					ctx.rebuildPrefab(this);
 					ctx.rebuildProperties();
 				}