Procházet zdrojové kódy

Removed return bool from EditorRemoveInstance

Clément Espeute před 1 rokem
rodič
revize
6d2f3ea5c1

+ 2 - 2
hrt/prefab/Light.hx

@@ -468,11 +468,11 @@ class Light extends Object3D {
 		return true;
 		return true;
 	}
 	}
 
 
-	override function editorRemoveInstance() : Bool {
+	override function editorRemoveInstance() : Void {
 		if (icon != null) {
 		if (icon != null) {
 			icon.remove();
 			icon.remove();
 		}
 		}
-		return super.editorRemoveInstance();
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	override function edit( ctx : hide.prefab.EditContext ) {
 	override function edit( ctx : hide.prefab.EditContext ) {

+ 6 - 5
hrt/prefab/Material.hx

@@ -249,14 +249,15 @@ class Material extends Prefab {
 	}
 	}
 
 
 	#if editor
 	#if editor
-	override function editorRemoveInstance() : Bool {
+	override function editorRemoveInstance() : Void {
 		if (previewSphere != null) {
 		if (previewSphere != null) {
 			previewSphere.remove();
 			previewSphere.remove();
-			return true;
 		}
 		}
-		// temporary untill we find a proper way to remove a material
-		shared.editor.queueRebuild(parent);
-		return false;
+		else {
+			// temporary untill we find a proper way to remove a material
+			shared.editor.queueRebuild(parent);
+		}
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	override function makeInteractive() : hxd.SceneEvents.Interactive {
 	override function makeInteractive() : hxd.SceneEvents.Interactive {

+ 2 - 2
hrt/prefab/Object2D.hx

@@ -119,11 +119,11 @@ class Object2D extends Prefab {
 		};
 		};
 	}
 	}
 
 
-	override function editorRemoveInstance() : Bool {
+	override function editorRemoveInstance() : Void {
 		if (local2d != null) {
 		if (local2d != null) {
 			local2d.remove();
 			local2d.remove();
 		}
 		}
-		return true;
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	override function edit( ctx : hide.prefab.EditContext ) {
 	override function edit( ctx : hide.prefab.EditContext ) {

+ 2 - 2
hrt/prefab/Object3D.hx

@@ -449,12 +449,12 @@ class Object3D extends Prefab {
 		return int;
 		return int;
 	}
 	}
 
 
-	override function editorRemoveInstance() : Bool {
+	override function editorRemoveInstance() : Void {
 		if (local3d != null)
 		if (local3d != null)
 			local3d.remove();
 			local3d.remove();
 		if (editorIcon != null)
 		if (editorIcon != null)
 			editorIcon.remove();
 			editorIcon.remove();
-		return true;
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	override function edit( ctx : hide.prefab.EditContext ) {
 	override function edit( ctx : hide.prefab.EditContext ) {

+ 1 - 4
hrt/prefab/Prefab.hx

@@ -584,11 +584,8 @@ class Prefab {
 
 
 	/**
 	/**
 		Called by the editor to remove the objects created by this prefab but not it's children.
 		Called by the editor to remove the objects created by this prefab but not it's children.
-		Returns true if all the objects were succesfully removed, false otherwise (this will cause
-			a full rebuild of the scene )
 	**/
 	**/
-	public function editorRemoveInstance() : Bool {
-		return false;
+	public function editorRemoveInstance() : Void {
 	}
 	}
 
 
 	/**
 	/**

+ 2 - 2
hrt/prefab/Shader.hx

@@ -158,9 +158,9 @@ class Shader extends Prefab {
 
 
 	#if editor
 	#if editor
 
 
-	override function editorRemoveInstance() : Bool {
+	override function editorRemoveInstance() : Void {
 		shared.editor.queueRebuild(parent);
 		shared.editor.queueRebuild(parent);
-		return true;
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	function getEditProps(shaderDef: hxsl.SharedShader) : Array<hrt.prefab.Props.PropDef> {
 	function getEditProps(shaderDef: hxsl.SharedShader) : Array<hrt.prefab.Props.PropDef> {

+ 2 - 4
hrt/prefab/l3d/Instance.hx

@@ -148,13 +148,11 @@ class Instance extends Object3D {
 		return path;
 		return path;
 	}
 	}
 
 
-	override function editorRemoveInstance() : Bool {
-		if (!super.editorRemoveInstance())
-			return false;
+	override function editorRemoveInstance() : Void {
 		if (icon != null) {
 		if (icon != null) {
 			icon.remove();
 			icon.remove();
 		}
 		}
-		return true;
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	override function getHideProps() : hide.prefab.HideProps {
 	override function getHideProps() : hide.prefab.HideProps {

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

@@ -151,11 +151,9 @@ class SplinePoint extends Object3D {
 
 
 	#if editor
 	#if editor
 
 
-	override function editorRemoveInstance() : Bool {
-		haxe.Timer.delay(() -> { // wait for next frame, need the point to be removed from children to recompute spline accurately
-			@:privateAccess spline.computeSpline();
-		}, 0);
-		return super.editorRemoveInstance();
+	override function editorRemoveInstance() : Void {
+		shared.editor.queueRebuildCallback(() -> @:privateAccess spline.computeSpline());
+		super.editorRemoveInstance();
 	}
 	}
 
 
 	public function computeName() {
 	public function computeName() {

+ 15 - 0
hrt/prefab/l3d/Spray.hx

@@ -569,6 +569,21 @@ class Spray extends Object3D {
 		}
 		}
 	}
 	}
 
 
+	override function editorRemoveInstance() : Void {
+		removeInteractiveBrush();
+		super.editorRemoveInstance();
+	}
+
+	override function makeObject(parent3d: h3d.scene.Object ) : h3d.scene.Object {
+		return new SprayObject(this, parent3d);
+	}
+
+	override function applyTransform() {
+		super.applyTransform();
+		cast(local3d, SprayObject).redraw();
+	}
+
+
 	static public function makePrimCircle(segments: Int, inner : Float = 0, rings : Int = 0) {
 	static public function makePrimCircle(segments: Int, inner : Float = 0, rings : Int = 0) {
 		var points = [];
 		var points = [];
 		var uvs = [];
 		var uvs = [];