From 289a6ce21baa744bff1f622a3768b6ebf0eea81b Mon Sep 17 00:00:00 2001 From: knowledgenude <63247726+knowledgenude@users.noreply.github.com> Date: Tue, 8 Sep 2020 19:34:13 -0300 Subject: [PATCH 1/5] CanvasGetVisibleNode.hx --- .../armory/logicnode/CanvasGetVisibleNode.hx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Sources/armory/logicnode/CanvasGetVisibleNode.hx diff --git a/Sources/armory/logicnode/CanvasGetVisibleNode.hx b/Sources/armory/logicnode/CanvasGetVisibleNode.hx new file mode 100644 index 00000000..711d8398 --- /dev/null +++ b/Sources/armory/logicnode/CanvasGetVisibleNode.hx @@ -0,0 +1,29 @@ +package armory.logicnode; + +import iron.Scene; +import armory.trait.internal.CanvasScript; + +class CanvasGetVisibleNode extends LogicNode { + + var canvas: CanvasScript; + + public function new(tree: LogicTree) { + super(tree); + } + +#if arm_ui + override function get(from: Int): Dynamic { // Null + var element: String = inputs[0].get(); + if (canvas == null) canvas = Scene.active.getTrait(CanvasScript); + if (canvas == null) canvas = Scene.active.camera.getTrait(CanvasScript); + if (canvas == null || !canvas.ready) return null; + + // This Try/Catch hacks around an issue where the handles are + // not created yet, even though canvas.ready is true. + try { + return canvas.getElement(element).visible; + } + catch (e: Dynamic) { return null; } + } +#end +} From bdb18496a3f8539664f3181ee841d4339610f181 Mon Sep 17 00:00:00 2001 From: knowledgenude <63247726+knowledgenude@users.noreply.github.com> Date: Tue, 8 Sep 2020 19:34:45 -0300 Subject: [PATCH 2/5] canvas_get_visible.py --- blender/arm/logicnode/canvas_get_visible.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 blender/arm/logicnode/canvas_get_visible.py diff --git a/blender/arm/logicnode/canvas_get_visible.py b/blender/arm/logicnode/canvas_get_visible.py new file mode 100644 index 00000000..222dd3a6 --- /dev/null +++ b/blender/arm/logicnode/canvas_get_visible.py @@ -0,0 +1,16 @@ +import bpy +from bpy.props import * +from bpy.types import Node, NodeSocket +from arm.logicnode.arm_nodes import * + +class CanvasGetVisibleNode(Node, ArmLogicTreeNode): + '''Canvas Get Visible node''' + bl_idname = 'LNCanvasGetVisibleNode' + bl_label = 'Canvas Get Visible' + bl_icon = 'NONE' + + def init(self, context): + self.inputs.new('NodeSocketString', 'Element') + self.outputs.new('NodeSocketBool', 'Visible') + +add_node(CanvasGetVisibleNode, category='Canvas') From 020f79793e9f3f139bd0f9c550f43fd06cd79d29 Mon Sep 17 00:00:00 2001 From: knowledgenude <63247726+knowledgenude@users.noreply.github.com> Date: Tue, 8 Sep 2020 20:11:56 -0300 Subject: [PATCH 3/5] GetMouseLockNode.hx , GetMouseVisibleNode.hx --- Sources/armory/logicnode/GetMouseLockNode.hx | 16 ++++++++++++++++ Sources/armory/logicnode/GetMouseVisibleNode.hx | 17 +++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Sources/armory/logicnode/GetMouseLockNode.hx create mode 100644 Sources/armory/logicnode/GetMouseVisibleNode.hx diff --git a/Sources/armory/logicnode/GetMouseLockNode.hx b/Sources/armory/logicnode/GetMouseLockNode.hx new file mode 100644 index 00000000..961a5829 --- /dev/null +++ b/Sources/armory/logicnode/GetMouseLockNode.hx @@ -0,0 +1,16 @@ +package armory.logicnode; + +import iron.system.Input; + +class GetMouseLockNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + override function get(from: Int): Dynamic { + var mouse = iron.system.Input.getMouse(); + + return mouse.locked; + } +} diff --git a/Sources/armory/logicnode/GetMouseVisibleNode.hx b/Sources/armory/logicnode/GetMouseVisibleNode.hx new file mode 100644 index 00000000..07b08c97 --- /dev/null +++ b/Sources/armory/logicnode/GetMouseVisibleNode.hx @@ -0,0 +1,17 @@ +package armory.logicnode; + +import iron.system.Input; + +class GetMouseVisibleNode extends LogicNode { + + public function new(tree: LogicTree) { + super(tree); + } + + override function get(from: Int): Dynamic { + var mouse = iron.system.Input.getMouse(); + + if (mouse.hidden == false) return true; + return false; + } +} From 546f8824d0d08e593523b50e008034634d7f3327 Mon Sep 17 00:00:00 2001 From: knowledgenude <63247726+knowledgenude@users.noreply.github.com> Date: Tue, 8 Sep 2020 20:12:45 -0300 Subject: [PATCH 4/5] value_get_mouse_lock.py , value_get_mouse_visible.py --- blender/arm/logicnode/value_get_mouse_lock.py | 15 +++++++++++++++ blender/arm/logicnode/value_get_mouse_visible.py | 15 +++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 blender/arm/logicnode/value_get_mouse_lock.py create mode 100644 blender/arm/logicnode/value_get_mouse_visible.py diff --git a/blender/arm/logicnode/value_get_mouse_lock.py b/blender/arm/logicnode/value_get_mouse_lock.py new file mode 100644 index 00000000..5c5bb0bd --- /dev/null +++ b/blender/arm/logicnode/value_get_mouse_lock.py @@ -0,0 +1,15 @@ +import bpy +from bpy.props import * +from bpy.types import Node, NodeSocket +from arm.logicnode.arm_nodes import * + +class GetMouseLockNode(Node, ArmLogicTreeNode): + '''Get Mouse Lock node''' + bl_idname = 'LNGetMouseLockNode' + bl_label = 'Get Mouse Lock' + bl_icon = 'NONE' + + def init(self, context): + self.outputs.new('NodeSocketBool', 'Lock') + +add_node(GetMouseLockNode, category='Value') diff --git a/blender/arm/logicnode/value_get_mouse_visible.py b/blender/arm/logicnode/value_get_mouse_visible.py new file mode 100644 index 00000000..3762b262 --- /dev/null +++ b/blender/arm/logicnode/value_get_mouse_visible.py @@ -0,0 +1,15 @@ +import bpy +from bpy.props import * +from bpy.types import Node, NodeSocket +from arm.logicnode.arm_nodes import * + +class GetMouseVisibleNode(Node, ArmLogicTreeNode): + '''Get Mouse Visible node''' + bl_idname = 'LNGetMouseVisibleNode' + bl_label = 'Get Mouse Visible' + bl_icon = 'NONE' + + def init(self, context): + self.outputs.new('NodeSocketBool', 'Visible') + +add_node(GetMouseVisibleNode, category='Value') From 9c8b6d3b98991bff4fd6b0486fd85ef3859cbd12 Mon Sep 17 00:00:00 2001 From: knowledgenude <63247726+knowledgenude@users.noreply.github.com> Date: Tue, 8 Sep 2020 21:05:51 -0300 Subject: [PATCH 5/5] Update action_set_visible.py --- blender/arm/logicnode/action_set_visible.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blender/arm/logicnode/action_set_visible.py b/blender/arm/logicnode/action_set_visible.py index 9c652e31..6ec8886e 100644 --- a/blender/arm/logicnode/action_set_visible.py +++ b/blender/arm/logicnode/action_set_visible.py @@ -12,7 +12,7 @@ class SetVisibleNode(Node, ArmLogicTreeNode): def init(self, context): self.inputs.new('ArmNodeSocketAction', 'In') self.inputs.new('ArmNodeSocketObject', 'Object') - self.inputs.new('NodeSocketBool', 'Bool') + self.inputs.new('NodeSocketBool', 'Visible') self.outputs.new('ArmNodeSocketAction', 'Out') add_node(SetVisibleNode, category='Action')