From 965162b1014c2a27cf810bdeba96aa2ec0205780 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Thu, 12 Jun 2025 22:08:21 +0000 Subject: [PATCH] t3du - Camera Render Filter --- .../logicnode/SetCameraRenderFilterNode.hx | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 leenkx/Sources/leenkx/logicnode/SetCameraRenderFilterNode.hx 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