From fcc114aed3dbf7e1642448391e9a6944a88582ce Mon Sep 17 00:00:00 2001 From: Onek8 Date: Tue, 25 Mar 2025 19:26:40 +0000 Subject: [PATCH 1/4] Update leenkx.py --- leenkx.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/leenkx.py b/leenkx.py index 8e88055..d976433 100644 --- a/leenkx.py +++ b/leenkx.py @@ -914,7 +914,10 @@ def restart_leenkx(context): @persistent def on_load_post(context): - restart_leenkx(bpy.context) # context is None, use bpy.context instead + if bpy.context is not None: + restart_leenkx(bpy.context) # context is None, use bpy.context instead + else: + bpy.app.timers.register(lambda: restart_leenkx(bpy.context), first_interval=0.1) def on_register_post(): From f3e96546ae31af2ad10ac2abeaa3406d16afa6d7 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Tue, 25 Mar 2025 19:52:50 +0000 Subject: [PATCH 2/4] Update leenkx/blender/lnx/logicnode/lnx_sockets.py --- leenkx/blender/lnx/logicnode/lnx_sockets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/leenkx/blender/lnx/logicnode/lnx_sockets.py b/leenkx/blender/lnx/logicnode/lnx_sockets.py index 8c22599..85fc0ab 100644 --- a/leenkx/blender/lnx/logicnode/lnx_sockets.py +++ b/leenkx/blender/lnx/logicnode/lnx_sockets.py @@ -88,7 +88,7 @@ class LnxAnimActionSocket(LnxCustomSocket): default_value_raw: PointerProperty(name='Action', type=bpy.types.Action, update=_on_update_socket) def __init__(self): - super().__init__() + super().__init__(*args, **kwargs) if self.default_value_get is not None: self.default_value_raw = self.default_value_get self.default_value_get = None @@ -497,7 +497,7 @@ class LnxObjectSocket(LnxCustomSocket): default_value_raw: PointerProperty(name='Object', type=bpy.types.Object, update=_on_update_socket) def __init__(self): - super().__init__() + super().__init__(*args, **kwargs) if self.default_value_get is not None: self.default_value_raw = self.default_value_get self.default_value_get = None From 864568d66b6013ca3cc562309dbdbb7203d9e8f3 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Tue, 25 Mar 2025 23:29:22 +0000 Subject: [PATCH 3/4] Update leenkx/blender/lnx/node_utils.py --- leenkx/blender/lnx/node_utils.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/leenkx/blender/lnx/node_utils.py b/leenkx/blender/lnx/node_utils.py index 4072418..97b4149 100644 --- a/leenkx/blender/lnx/node_utils.py +++ b/leenkx/blender/lnx/node_utils.py @@ -234,10 +234,18 @@ def haxe_format_prop_value(node: bpy.types.Node, prop_name: str) -> str: def nodetype_to_nodeitem(node_type: Type[bpy.types.Node]) -> NodeItem: """Create a NodeItem from a given node class.""" # Internal node types seem to have no bl_idname attribute - if issubclass(node_type, bpy.types.NodeInternal): - return NodeItem(node_type.__name__) + # if issubclass(node_type, bpy.types.NodeInternal): + # return NodeItem(node_type.__name__) - return NodeItem(node_type.bl_idname) + # return NodeItem(node_type.bl_idname) + node_id = node_type.__name__ if issubclass(node_type, bpy.types.NodeInternal) else node_type.bl_idname + node_label = getattr(node_type, "bl_label", node_type.__name__) + class ReturnNodeItem(NodeItem): + @property + def label(self): + """Return the node label without using bl_rna_get_subclass to support Blender 4.4 +""" + return node_label + return ReturnNodeItem(node_id) def copy_basic_node_props(from_node: bpy.types.Node, to_node: bpy.types.Node): From 9fa58d9d7c9f72912597d3d22f19155bbaf81d94 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Tue, 25 Mar 2025 23:34:47 +0000 Subject: [PATCH 4/4] Update leenkx/blender/lnx/logicnode/lnx_sockets.py --- leenkx/blender/lnx/logicnode/lnx_sockets.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/leenkx/blender/lnx/logicnode/lnx_sockets.py b/leenkx/blender/lnx/logicnode/lnx_sockets.py index 85fc0ab..585a3b0 100644 --- a/leenkx/blender/lnx/logicnode/lnx_sockets.py +++ b/leenkx/blender/lnx/logicnode/lnx_sockets.py @@ -87,7 +87,7 @@ class LnxAnimActionSocket(LnxCustomSocket): default_value_get: PointerProperty(name='Action', type=bpy.types.Action) # legacy version of the line after this one default_value_raw: PointerProperty(name='Action', type=bpy.types.Action, update=_on_update_socket) - def __init__(self): + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.default_value_get is not None: self.default_value_raw = self.default_value_get @@ -496,7 +496,7 @@ class LnxObjectSocket(LnxCustomSocket): default_value_get: PointerProperty(name='Object', type=bpy.types.Object) # legacy version of the line after this one default_value_raw: PointerProperty(name='Object', type=bpy.types.Object, update=_on_update_socket) - def __init__(self): + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) if self.default_value_get is not None: self.default_value_raw = self.default_value_get