From b782b8e0a58fcbab9595c24cf2b9874025f72ee6 Mon Sep 17 00:00:00 2001 From: BrendanParmer <51296046+BrendanParmer@users.noreply.github.com> Date: Sat, 16 Mar 2024 19:28:00 -0500 Subject: [PATCH 1/4] feat: updated rotate euler node settings --- geometry/node_settings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/geometry/node_settings.py b/geometry/node_settings.py index 35e87a1..f1eb8db 100644 --- a/geometry/node_settings.py +++ b/geometry/node_settings.py @@ -669,8 +669,9 @@ ], 'FunctionNodeRotateEuler' : [ + NTPNodeSetting("rotation_type", ST.ENUM, min_version = (4, 1, 0)), NTPNodeSetting("space", ST.ENUM), - NTPNodeSetting("type", ST.ENUM) + NTPNodeSetting("type", ST.ENUM, max_version = (4, 1, 0)) ], 'FunctionNodeRotateVector' : [], From 5d60e06ced839303dd2a2eee3422995cdf8bdabc Mon Sep 17 00:00:00 2001 From: BrendanParmer <51296046+BrendanParmer@users.noreply.github.com> Date: Sat, 16 Mar 2024 19:29:06 -0500 Subject: [PATCH 2/4] feat: nodes now set hide property --- ntp_operator.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ntp_operator.py b/ntp_operator.py index 1da59ee..990e571 100644 --- a/ntp_operator.py +++ b/ntp_operator.py @@ -269,6 +269,9 @@ def _create_node(self, node: Node, node_tree_var: str) -> str: if node.mute: self._write(f"{node_var}.mute = True") + # hide + if node.hide: + self._write(f"{node_var}.hide = True") return node_var def _set_settings_defaults(self, node: Node) -> None: From a9e87700212862da460374b916022c81c731f67b Mon Sep 17 00:00:00 2001 From: BrendanParmer <51296046+BrendanParmer@users.noreply.github.com> Date: Sat, 16 Mar 2024 19:30:12 -0500 Subject: [PATCH 3/4] fix: no longer set out-of-date settings that share a name with another attribute --- ntp_operator.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ntp_operator.py b/ntp_operator.py index 990e571..1dc407d 100644 --- a/ntp_operator.py +++ b/ntp_operator.py @@ -295,14 +295,18 @@ def _set_settings_defaults(self, node: Node) -> None: attr_name = setting.name st = setting.st + is_version_valid = (bpy.app.version >= setting.min_version and + bpy.app.version < setting.max_version) if not hasattr(node, attr_name): - if (bpy.app.version >= setting.min_version and - bpy.app.version < setting.max_version): + if is_version_valid: self.report({'WARNING'}, f"NodeToPython: Couldn't find attribute " f"\"{attr_name}\" for node {node.name} of type " f"{node.bl_idname}") continue + elif not is_version_valid: + continue + attr = getattr(node, attr_name, None) if attr is None: continue From 0e6e68c5a3c5dd129143e039bf551043eeee0fbc Mon Sep 17 00:00:00 2001 From: BrendanParmer <51296046+BrendanParmer@users.noreply.github.com> Date: Sat, 16 Mar 2024 19:30:47 -0500 Subject: [PATCH 4/4] feat: order links according to multi-input sort ID --- ntp_operator.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ntp_operator.py b/ntp_operator.py index 1dc407d..4f72c57 100644 --- a/ntp_operator.py +++ b/ntp_operator.py @@ -1175,6 +1175,9 @@ def _init_links(self, node_tree: NodeTree) -> None: links = node_tree.links if links: self._write(f"#initialize {nt_var} links") + if hasattr(links[0], "multi_input_sort_id"): + # generate links in the correct order for multi input sockets + links = sorted(links, key=lambda link: link.multi_input_sort_id) for link in links: in_node_var = self._node_vars[link.from_node]