Skip to content

Commit 5590f5e

Browse files
committed
refactor: group nodes now just use ST.NODE_TREE
1 parent 9da1d10 commit 5590f5e

File tree

8 files changed

+33
-31
lines changed

8 files changed

+33
-31
lines changed

compositor/node_settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,8 @@
455455

456456

457457
# MISC
458+
'CompositorNodeGroup' : [("node_tree", ST.NODE_TREE)],
459+
458460
'NodeFrame' : [("label_size", ST.INT),
459461
("shrink", ST.BOOL),
460462
("text", ST.TEXT)],

compositor/operator.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,6 @@ def _process_node(self, node: Node, ntp_nt: NTP_NodeTree):
113113
self._set_settings_defaults(node)
114114
self._hide_hidden_sockets(node)
115115

116-
if node.bl_idname == 'CompositorNodeGroup':
117-
self._process_group_node_tree(node)
118-
119116
if bpy.app.version < (4, 0, 0):
120117
if node.bl_idname == 'NodeGroupInput' and not ntp_nt.inputs_set:
121118
self._group_io_settings(node, "input", ntp_nt)
@@ -185,7 +182,7 @@ def execute(self, context):
185182
if self.mode == 'ADDON':
186183
self._outer = "\t\t"
187184
self._inner = "\t\t\t"
188-
185+
189186
self._setup_addon_directories(context, comp_var)
190187

191188
self._file = open(f"{self._addon_dir}/__init__.py", "w")

geometry/node_settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,8 @@
459459
'FunctionNodeQuaternionToRotation' : [],
460460

461461
# MISC
462+
'GeometryNodeGroup' : [("node_tree", ST.NODE_TREE)],
463+
462464
'NodeFrame' : [("label_size", ST.INT),
463465
("shrink", ST.BOOL),
464466
("text", ST.TEXT)],

geometry/operator.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,7 @@ def _process_node(self, node: Node, ntp_nt: NTP_GeoNodeTree) -> None:
8484
self._group_io_settings(node, "output", ntp_nt)
8585
ntp_nt.outputs_set = True
8686

87-
if node.bl_idname == 'GeometryNodeGroup':
88-
self._process_group_node_tree(node)
89-
90-
elif node.bl_idname == 'GeometryNodeSimulationInput':
87+
if node.bl_idname == 'GeometryNodeSimulationInput':
9188
ntp_nt.sim_inputs.append(node)
9289

9390
elif node.bl_idname == 'GeometryNodeSimulationOutput':
@@ -101,7 +98,8 @@ def _process_node(self, node: Node, ntp_nt: NTP_GeoNodeTree) -> None:
10198

10299
self._hide_hidden_sockets(node)
103100

104-
if node.bl_idname not in {'GeometryNodeSimulationInput', 'GeometryNodeRepeatInput'}:
101+
if node.bl_idname not in {'GeometryNodeSimulationInput',
102+
'GeometryNodeRepeatInput'}:
105103
self._set_socket_defaults(node)
106104

107105
if bpy.app.version >= (3, 6, 0):

material/node_settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,8 @@
263263
("use_auto_update", ST.BOOL)],
264264

265265
# MISC
266+
'ShaderNodeGroup' : [('node_tree', ST.NODE_TREE)],
267+
266268
'NodeFrame' : [("label_size", ST.INT),
267269
("shrink", ST.BOOL),
268270
("text", ST.TEXT)],

material/operator.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@ def _process_node(self, node: Node, ntp_nt: NTP_NodeTree) -> None:
7272
self._group_io_settings(node, "output", ntp_nt)
7373
ntp_nt.outputs_set = True
7474

75-
if node.bl_idname == 'ShaderNodeGroup':
76-
self._process_group_node_tree(node)
77-
7875
self._hide_hidden_sockets(node)
7976
self._set_socket_defaults(node)
8077

@@ -135,7 +132,7 @@ def execute(self, context):
135132
if self.mode == 'ADDON':
136133
self._outer = "\t\t"
137134
self._inner = "\t\t\t"
138-
135+
139136
self._setup_addon_directories(context, mat_var)
140137

141138
self._file = open(f"{self._addon_dir}/__init__.py", "w")

ntp_operator.py

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -186,24 +186,6 @@ def dfs(nt: NodeTree) -> None:
186186

187187
return result
188188

189-
def _process_group_node_tree(self, node: Node) -> None:
190-
"""
191-
Processes node tree of group node if one is present
192-
193-
Parameters:
194-
node (Node): the group node
195-
"""
196-
node_tree = node.node_tree
197-
if node_tree is None:
198-
return
199-
if node_tree in self._node_tree_vars:
200-
nt_var = self._node_tree_vars[node_tree]
201-
node_var = self._node_vars[node]
202-
self._write(f"{node_var}.node_tree = {nt_var}")
203-
else:
204-
self.report({'WARNING'}, (f"NodeToPython: Node tree dependency graph "
205-
f"wasn't properly initialized"))
206-
207189
def _create_var(self, name: str) -> str:
208190
"""
209191
Creates a unique variable name for a node tree
@@ -325,6 +307,8 @@ def _set_settings_defaults(self, node: Node) -> None:
325307
self._color_ramp_settings(node, attr_name)
326308
elif type == ST.CURVE_MAPPING:
327309
self._curve_mapping_settings(node, attr_name)
310+
elif type == ST.NODE_TREE:
311+
self._node_tree_settings(node, attr_name)
328312
elif type == ST.IMAGE:
329313
if self._addon_dir is not None and attr is not None:
330314
if attr.source in {'FILE', 'GENERATED', 'TILED'}:
@@ -910,6 +894,25 @@ def _curve_mapping_settings(self, node: Node,
910894
self._write(f"#update curve after changes")
911895
self._write(f"{mapping_var}.update()")
912896

897+
def _node_tree_settings(self, node: Node, attr_name: str) -> None:
898+
"""
899+
Processes node tree of group node if one is present
900+
901+
Parameters:
902+
node (Node): the group node
903+
attr_name (str): name of the node tree attribute
904+
"""
905+
node_tree = getattr(node, attr_name)
906+
if node_tree is None:
907+
return
908+
if node_tree in self._node_tree_vars:
909+
nt_var = self._node_tree_vars[node_tree]
910+
node_var = self._node_vars[node]
911+
self._write(f"{node_var}.{attr_name} = {nt_var}")
912+
else:
913+
self.report({'WARNING'}, (f"NodeToPython: Node tree dependency graph "
914+
f"wasn't properly initialized"))
915+
913916
def _save_image(self, img: bpy.types.Image) -> None:
914917
"""
915918
Saves an image to an image directory of the add-on

utils.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class ST(Enum):
3434
# Special settings
3535
COLOR_RAMP = auto()
3636
CURVE_MAPPING = auto()
37+
NODE_TREE = auto()
3738

3839
# Asset Library
3940
MATERIAL = auto() # Handle with asset library

0 commit comments

Comments
 (0)