Files
LNXSDK/leenkx/Sources/leenkx/logicnode/RemoveObjectNode.hx
2025-01-22 16:18:30 +01:00

38 lines
858 B
Haxe

package leenkx.logicnode;
import iron.object.Object;
import leenkx.trait.physics.RigidBody;
class RemoveObjectNode extends LogicNode {
public function new(tree: LogicTree) {
super(tree);
}
override function run(from: Int) {
var object: Object = inputs[1].get();
var removeChildren: Bool = inputs[2].get();
var keepChildrenTransforms: Bool = inputs[3].get();
if (object == null) return;
if (removeChildren == false) {
for (c in object.children.copy()) {
c.setParent(iron.Scene.active.root, false, keepChildrenTransforms);
#if lnx_physics
var rigidBody = c.getTrait(RigidBody);
if (rigidBody != null) rigidBody.syncTransform();
#end
}
}
var raw = iron.Scene.active.raw;
for (g in raw.groups)
iron.Scene.active.getGroup(g.name).remove(object);
object.remove();
runOutput(0);
}
}