diff --git a/leenkx/Sources/leenkx/logicnode/SetCameraRenderFilterNode.hx b/leenkx/Sources/leenkx/logicnode/SetCameraRenderFilterNode.hx new file mode 100644 index 0000000..f894e28 --- /dev/null +++ b/leenkx/Sources/leenkx/logicnode/SetCameraRenderFilterNode.hx @@ -0,0 +1,38 @@ +package leenkx.logicnode; + +import iron.object.MeshObject; +import iron.object.CameraObject; + +class SetCameraRenderFilterNode extends LogicNode { + + public var property0: String; + + public function new(tree: LogicTree) { + super(tree); + } + + override function run(from: Int) { + var mo: MeshObject = cast inputs[1].get(); + var camera: CameraObject = inputs[2].get(); + + assert(Error, Std.isOfType(camera, CameraObject), "Camera must be a camera object!"); + + if (camera == null || mo == null) return; + + if (property0 == 'Add'){ + if (mo.cameraList == null || mo.cameraList.indexOf(camera.name) == -1){ + if (mo.cameraList == null) mo.cameraList = []; + mo.cameraList.push(camera.name); + } + } + else{ + if (mo.cameraList != null){ + mo.cameraList.remove(camera.name); + if (mo.cameraList.length == 0) + mo.cameraList = null; + } + } + + runOutput(0); + } +} \ No newline at end of file