Merge pull request #1850 from knowledgenude/master

Canvas Get Visible , Get Mouse Lock and Get Mouse Visible
This commit is contained in:
Lubos Lenco 2020-09-09 08:34:34 +02:00 committed by GitHub
commit a96870750a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 109 additions and 1 deletions

View file

@ -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<Bool>
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
}

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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')

View file

@ -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')

View file

@ -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')

View file

@ -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')