forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
61
leenkx/blender/lnx/logicnode/input/LN_mouse.py
Normal file
61
leenkx/blender/lnx/logicnode/input/LN_mouse.py
Normal file
@ -0,0 +1,61 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
class MouseNode(LnxLogicTreeNode):
|
||||
"""Activates the output on the given mouse event."""
|
||||
bl_idname = 'LNMergedMouseNode'
|
||||
bl_label = 'Mouse'
|
||||
lnx_section = 'mouse'
|
||||
lnx_version = 3
|
||||
|
||||
property0: HaxeEnumProperty(
|
||||
'property0',
|
||||
items = [('started', 'Started', 'The mouse button begins to be pressed'),
|
||||
('down', 'Down', 'The mouse button is pressed'),
|
||||
('released', 'Released', 'The mouse button stops being pressed'),
|
||||
('moved', 'Moved', 'Moved')],
|
||||
name='', default='down')
|
||||
property1: HaxeEnumProperty(
|
||||
'property1',
|
||||
items = [('left', 'Left', 'Left mouse button'),
|
||||
('middle', 'Middle', 'Middle mouse button'),
|
||||
('right', 'Right', 'Right mouse button'),
|
||||
('side1', 'Side 1', 'Side 1 mouse button'),
|
||||
('side2', 'Side 2', 'Side 2 mouse button')],
|
||||
name='', default='left')
|
||||
property2: HaxeBoolProperty(
|
||||
'property2',
|
||||
name='Include Debug Console',
|
||||
description=(
|
||||
'If disabled, this node does not react to mouse press events'
|
||||
' over the debug console area. Enable this option to catch those events'
|
||||
)
|
||||
)
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
self.add_output('LnxBoolSocket', 'State')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
||||
if self.property0 != 'moved':
|
||||
layout.prop(self, 'property1')
|
||||
layout.prop(self, 'property2')
|
||||
|
||||
def draw_label(self) -> str:
|
||||
return f'{self.bl_label}: {self.property1}'
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if 0 <= self.lnx_version < 2:
|
||||
return NodeReplacement.Identity(self)
|
||||
|
||||
elif self.lnx_version == 2:
|
||||
return NodeReplacement(
|
||||
'LNMergedMouseNode', self.lnx_version, 'LNMergedMouseNode', 3,
|
||||
in_socket_mapping={}, out_socket_mapping={0: 0, 1: 1},
|
||||
property_mapping={'property0': 'property0', 'property1': 'property1'},
|
||||
property_defaults={'property2': True}
|
||||
)
|
||||
|
||||
raise LookupError()
|
Reference in New Issue
Block a user