diff --git a/leenkx/blender/lnx/logicnode/custom/LN_leenkx_event.py b/leenkx/blender/lnx/logicnode/custom/LN_leenkx_event.py index 26d2bc2..3a4e432 100644 --- a/leenkx/blender/lnx/logicnode/custom/LN_leenkx_event.py +++ b/leenkx/blender/lnx/logicnode/custom/LN_leenkx_event.py @@ -1,110 +1,111 @@ -from lnx.logicnode.lnx_nodes import * - - -class LeenkxEventNode(LnxLogicTreeNode): - """Leenkx Event""" - bl_idname = 'LNLeenkxEventNode' - bl_label = 'Leenkx Event' - bl_description = 'Trigger an event from the network passing both data and ID' - lnx_category = 'Leenkx' - 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 { - 'client': 0, - 'host': 1, - 'securehost': 2 - }.get(type_name, 0) - - def get_enum(self): - return self.get('property0', 0) - - def set_enum(self, value): - # Checking the selection of each type - select_current = self.get_enum_id_value(self, 'property0', value) - select_prev = self.property0 - - #Check if type changed - if select_prev != select_current: - - for i in self.inputs: - self.inputs.remove(i) - - # Arguements for type Client - if (self.get_count_in(select_current) == 0): - self.add_input('LnxStringSocket', 'Url', default_value="8001") - - - # Arguements for type Host - if (self.get_count_in(select_current) == 1): - self.add_input('LnxStringSocket', 'Domain', default_value="127.0.0.1") - self.add_input('LnxIntSocket', 'Port', default_value=8001) - - - # Arguements for type Secure Host - if (self.get_count_in(select_current) == 2): - self.add_input('LnxStringSocket', 'Domain', default_value="127.0.0.1") - self.add_input('LnxIntSocket', 'Port', default_value=8001) - - - self['property0'] = value - - - property0: HaxeEnumProperty( - 'property0', - items = [('client', 'Client', 'Network client Event listener'), - ('host', 'Host', 'Network host Event listener'), - ('securehost', 'Secure Host', 'Network secure host Event listener')], - name='', - default='client', - set=set_enum, - get=get_enum) - - - property1: HaxeEnumProperty( - 'property1', - items = [('onopen', 'OnOpen', 'Listens to onOpen event'), - ('onmessage', 'OnMessage', 'Listens to onMessage event'), - ('onerror', 'OnError', 'Listens to onError event'), - ('onclose', 'OnClose', 'Listens to onClose event'), - ('onseen', 'OnSeen', 'Listens to onClose event'), - ('onserver', 'OnServer', 'Listens to onClose event'), - ('onconnections', 'OnConnections', 'Listens to onClose event'), - ('onping', 'OnPing', 'Listens to onClose event'), - ('onleft', 'OnLeft', 'Listens to onClose event'), - ('ontimeout', 'OnTimeout', 'Listens to onClose event'), - ('onrpc', 'OnRpc', 'Listens to onClose event'), - ('onrpcresponse', 'OnRpcResponse', 'Listens to onClose event'), - ('onwireleft', 'OnWireLeft', 'Listens to onClose event'), - ('onwireseen', 'OnWireSeen', 'Listens to onClose event'), - ('ontorrent', 'OnTorrent', 'Listens to onClose event'), - ('ontracker', 'OnTracker', 'Listens to onClose event'), - ('onannounce', 'OnAnnounce', 'Listens to onClose event')], - name='', - default='onopen') - - def __init__(self): - array_nodes[str(id(self))] = self - - - def lnx_init(self, context): - #self.add_input('LnxNodeSocketAction', 'In') - self.add_input('LnxStringSocket', 'Url', default_value="ws://127.0.0.1:8001") - - self.add_output('LnxNodeSocketAction', 'Out') - self.add_output('LnxDynamicSocket', 'ID') - self.add_output('LnxDynamicSocket', 'Data') - - - def draw_buttons(self, context, layout): - layout.prop(self, 'property0') - layout.prop(self, 'property1') - -def register(): - add_category('Leenkx', icon='ORIENTATION_CURSOR') +from lnx.logicnode.lnx_nodes import * + + +class LeenkxEventNode(LnxLogicTreeNode): + """Leenkx Event""" + bl_idname = 'LNLeenkxEventNode' + bl_label = 'Leenkx Event' + bl_description = 'Trigger an event from the network passing both data and ID' + lnx_category = 'Leenkx' + 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 { + 'client': 0, + 'host': 1, + 'securehost': 2 + }.get(type_name, 0) + + def get_enum(self): + return self.get('property0', 0) + + def set_enum(self, value): + # Checking the selection of each type + select_current = self.get_enum_id_value(self, 'property0', value) + select_prev = self.property0 + + #Check if type changed + if select_prev != select_current: + + for i in self.inputs: + self.inputs.remove(i) + + # Arguements for type Client + if (self.get_count_in(select_current) == 0): + self.add_input('LnxStringSocket', 'Url', default_value="8001") + + + # Arguements for type Host + if (self.get_count_in(select_current) == 1): + self.add_input('LnxStringSocket', 'Domain', default_value="127.0.0.1") + self.add_input('LnxIntSocket', 'Port', default_value=8001) + + + # Arguements for type Secure Host + if (self.get_count_in(select_current) == 2): + self.add_input('LnxStringSocket', 'Domain', default_value="127.0.0.1") + self.add_input('LnxIntSocket', 'Port', default_value=8001) + + + self['property0'] = value + + + property0: HaxeEnumProperty( + 'property0', + items = [('client', 'Client', 'Network client Event listener'), + ('host', 'Host', 'Network host Event listener'), + ('securehost', 'Secure Host', 'Network secure host Event listener')], + name='', + default='client', + set=set_enum, + get=get_enum) + + + property1: HaxeEnumProperty( + 'property1', + items = [('onopen', 'OnOpen', 'Listens to onOpen event'), + ('onmessage', 'OnMessage', 'Listens to onMessage event'), + ('onerror', 'OnError', 'Listens to onError event'), + ('onclose', 'OnClose', 'Listens to onClose event'), + ('onseen', 'OnSeen', 'Listens to onClose event'), + ('onserver', 'OnServer', 'Listens to onClose event'), + ('onconnections', 'OnConnections', 'Listens to onClose event'), + ('onping', 'OnPing', 'Listens to onClose event'), + ('onleft', 'OnLeft', 'Listens to onClose event'), + ('ontimeout', 'OnTimeout', 'Listens to onClose event'), + ('onrpc', 'OnRpc', 'Listens to onClose event'), + ('onrpcresponse', 'OnRpcResponse', 'Listens to onClose event'), + ('onwireleft', 'OnWireLeft', 'Listens to onClose event'), + ('onwireseen', 'OnWireSeen', 'Listens to onClose event'), + ('ontorrent', 'OnTorrent', 'Listens to onClose event'), + ('ontracker', 'OnTracker', 'Listens to onClose event'), + ('onannounce', 'OnAnnounce', 'Listens to onClose event')], + name='', + default='onopen') + + def __init__(self, *args, **kwargs): + super(LeenkxEventNode, self).__init__(*args, **kwargs) + array_nodes[str(id(self))] = self + + + def lnx_init(self, context): + #self.add_input('LnxNodeSocketAction', 'In') + self.add_input('LnxStringSocket', 'Url', default_value="ws://127.0.0.1:8001") + + self.add_output('LnxNodeSocketAction', 'Out') + self.add_output('LnxDynamicSocket', 'ID') + self.add_output('LnxDynamicSocket', 'Data') + + + def draw_buttons(self, context, layout): + layout.prop(self, 'property0') + layout.prop(self, 'property1') + +def register(): + add_category('Leenkx', icon='ORIENTATION_CURSOR') LeenkxEventNode.on_register() \ No newline at end of file