Update Files
This commit is contained in:
77
leenkx/blender/lnx/logicnode/custom/LN_set_element_data.py
Normal file
77
leenkx/blender/lnx/logicnode/custom/LN_set_element_data.py
Normal file
@ -0,0 +1,77 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
class SetElementDataNode(LnxLogicTreeNode):
|
||||
"""Set Element Data"""
|
||||
bl_idname = 'LNSetElementDataNode'
|
||||
bl_label = 'Set Element Data'
|
||||
bl_description = 'Set Element Data'
|
||||
lnx_category = 'HTML'
|
||||
lnx_version = 1
|
||||
|
||||
|
||||
@staticmethod
|
||||
def get_enum_id_value(obj, prop_name, value):
|
||||
return obj.bl_rna.properties[prop_name].enum_items[value].identifier
|
||||
|
||||
@staticmethod
|
||||
def get_count_in(type_name):
|
||||
return {
|
||||
'attribute': 0,
|
||||
'property': 1
|
||||
}.get(type_name, 0)
|
||||
|
||||
def get_enum(self):
|
||||
return self.get('property0', 0)
|
||||
|
||||
def set_enum(self, value):
|
||||
select_current = self.get_enum_id_value(self, 'property0', value)
|
||||
select_prev = self.property0
|
||||
|
||||
if select_prev != select_current:
|
||||
for i in self.inputs:
|
||||
self.inputs.remove(i)
|
||||
|
||||
if (self.get_count_in(select_current) == 0):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxDynamicSocket', 'Element')
|
||||
self.add_input('LnxStringSocket', 'Attribute')
|
||||
self.add_input('LnxDynamicSocket', 'Data')
|
||||
|
||||
if (self.get_count_in(select_current) == 1):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxDynamicSocket', 'Element')
|
||||
self.add_input('LnxStringSocket', 'Property')
|
||||
self.add_input('LnxDynamicSocket', 'Data')
|
||||
|
||||
self['property0'] = value
|
||||
|
||||
|
||||
property0: HaxeEnumProperty(
|
||||
'property0',
|
||||
items = [('attribute', 'Attribute', 'Set Element Attribute'),
|
||||
('property', 'Property', 'Set Element Property')],
|
||||
name='',
|
||||
default='attribute',
|
||||
set=set_enum,
|
||||
get=get_enum)
|
||||
|
||||
|
||||
def __init__(self):
|
||||
array_nodes[str(id(self))] = self
|
||||
|
||||
|
||||
def init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'In')
|
||||
self.add_input('LnxDynamicSocket', 'Element')
|
||||
self.add_input('LnxStringSocket', 'Attribute')
|
||||
self.add_input('LnxDynamicSocket', 'Data')
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'Out')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
||||
def register():
|
||||
add_category('HTML', icon='SEQ_STRIP_META')
|
||||
SetElementDataNode.on_register()
|
Reference in New Issue
Block a user