Skip to content

Commit 428ebed

Browse files
committed
feat: added default attribute names, descriptions, and hide value to group inputs
1 parent c6d3035 commit 428ebed

File tree

1 file changed

+32
-7
lines changed

1 file changed

+32
-7
lines changed

node_to_python.py

Lines changed: 32 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "Node to Python",
33
"description": "Convert Geometry Node Groups to a Python add-on",
44
"author": "Brendan Parmer",
5-
"version": (1, 2, 2),
5+
"version": (1, 2, 4),
66
"blender": (3, 0, 0),
77
"location": "Node",
88
"category": "Node",
@@ -222,21 +222,23 @@ def process_node_group(node_group, level):
222222
f"name = \"{node_group.name}\")\n"))
223223
file.write("\n")
224224

225+
inputs_set = False
226+
225227
#initialize nodes
226228
file.write(f"{inner}#initialize {ng_name} nodes\n")
227229
for node in node_group.nodes:
228230
if node.bl_idname == 'GeometryNodeGroup':
229231
process_node_group(node.node_tree, level + 1)
230-
elif node.bl_idname == 'NodeGroupInput':
232+
elif node.bl_idname == 'NodeGroupInput' and not inputs_set:
231233
file.write(f"{inner}#{ng_name} inputs\n")
232234
for i, input in enumerate(node.outputs):
233235
if input.bl_idname != "NodeSocketVirtual":
234236
file.write(f"{inner}#input {input.name}\n")
235237
file.write((f"{inner}{ng_name}.inputs.new"
236238
f"(\"{input.bl_idname}\", "
237239
f"\"{input.name}\")\n"))
238-
if input.bl_idname in default_sockets:
239-
socket = node_group.inputs[i]
240+
socket = node_group.inputs[i]
241+
if input.bl_idname in default_sockets:
240242
if input.bl_idname == 'NodeSocketColor':
241243
col = socket.default_value
242244
r, g, b, a = col[0], col[1], col[2], col[3]
@@ -251,19 +253,42 @@ def process_node_group(node_group, level):
251253
file.write((f"{inner}{ng_name}"
252254
f".inputs[{i}]"
253255
f".default_value = {dv}\n"))
254-
if input.bl_idname in value_sockets:
255-
#min value
256+
257+
#min value
258+
if hasattr(socket, "min_value"):
256259
file.write((f"{inner}{ng_name}"
257260
f".inputs[{i}]"
258261
f".min_value = "
259262
f"{socket.min_value}\n"))
260-
#max value
263+
#max value
264+
if hasattr(socket, "max_value"):
261265
file.write((f"{inner}{ng_name}"
262266
f".inputs[{i}]"
263267
f".max_value = "
264268
f"{socket.max_value}\n"))
269+
#default attribute name
270+
if hasattr(socket, "default_attribute_name"):
271+
if socket.default_attribute_name != "":
272+
file.write((f"{inner}{ng_name}"
273+
f".inputs[{i}]"
274+
f".default_attribute_name = \""
275+
f"{socket.default_attribute_name}"
276+
f"\"\n"))
277+
#description
278+
if socket.description != "":
279+
file.write((f"{inner}{ng_name}"
280+
f".inputs[{i}]"
281+
f".description = "
282+
f"\"{socket.description}\"\n"))
283+
#hide value
284+
if socket.hide_value is True:
285+
file.write((f"{inner}{ng_name}"
286+
f".inputs[{i}]"
287+
f".hide_value = "
288+
f"{socket.hide_value}\n"))
265289
file.write("\n")
266290
file.write("\n")
291+
inputs_set = True
267292
elif node.bl_idname == 'NodeGroupOutput':
268293
file.write(f"{inner}#{ng_name} outputs\n")
269294
for output in node.inputs:

0 commit comments

Comments
 (0)