Skip to content

Commit d73755f

Browse files
committed
fix: curve nodes no longer use initial nodes
1 parent 4dd03ff commit d73755f

File tree

2 files changed

+36
-21
lines changed

2 files changed

+36
-21
lines changed

__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "Node to Python",
33
"description": "Convert Blender node groups to a Python add-on!",
44
"author": "Brendan Parmer",
5-
"version": (2, 0, 0),
5+
"version": (2, 0, 1),
66
"blender": (3, 0, 0),
77
"location": "Node",
88
"category": "Node",

utils.py

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -278,24 +278,32 @@ def color_ramp_settings(node, file: TextIO, inner: str, node_var: str):
278278

279279
color_ramp = node.color_ramp
280280
#settings
281-
file.write((f"{inner}{node_var}.color_ramp.color_mode = "
282-
f"\'{color_ramp.color_mode}\'\n"))
281+
color_mode = enum_to_py_str(color_ramp.color_mode)
282+
file.write(f"{inner}{node_var}.color_ramp.color_mode = {color_mode}\n")
283+
284+
hue_interpolation = enum_to_py_str(color_ramp.hue_interpolation)
283285
file.write((f"{inner}{node_var}.color_ramp.hue_interpolation = "
284-
f"\'{color_ramp.hue_interpolation}\'\n"))
286+
f"{hue_interpolation}\n"))
287+
interpolation = enum_to_py_str(color_ramp.interpolation)
285288
file.write((f"{inner}{node_var}.color_ramp.interpolation "
286-
f"= '{color_ramp.interpolation}'\n"))
289+
f"= {interpolation}\n"))
287290
file.write("\n")
291+
288292
#key points
289293
for i, element in enumerate(color_ramp.elements):
290-
file.write((f"{inner}{node_var}_cre_{i} = "
291-
f"{node_var}.color_ramp.elements"
292-
f".new({element.position})\n"))
293-
file.write((f"{inner}{node_var}_cre_{i}.alpha = "
294+
element_var = f"{node_var}_cre_{i}"
295+
if i < 2:
296+
file.write(f"{inner}{element_var} = "
297+
f"{node_var}.color_ramp.elements[{i}]\n")
298+
file.write(f"{inner}{element_var}.position = {element.position}\n")
299+
else:
300+
file.write((f"{inner}{element_var} = "
301+
f"{node_var}.color_ramp.elements"
302+
f".new({element.position})\n"))
303+
file.write((f"{inner}{element_var}.alpha = "
294304
f"{element.alpha}\n"))
295-
col = element.color
296-
r, g, b, a = col[0], col[1], col[2], col[3]
297-
file.write((f"{inner}{node_var}_cre_{i}.color = "
298-
f"({r}, {g}, {b}, {a})\n\n"))
305+
color_str = vec4_to_py_str(element.color)
306+
file.write((f"{element_var}.color = {color_str}\n\n"))
299307

300308
def curve_node_settings(node, file: TextIO, inner: str, node_var: str):
301309
"""
@@ -313,10 +321,10 @@ def curve_node_settings(node, file: TextIO, inner: str, node_var: str):
313321
mapping = f"{inner}{node_var}.mapping"
314322

315323
#extend
316-
extend = f"\'{node.mapping.extend}\'"
324+
extend = enum_to_py_str(node.mapping.extend)
317325
file.write(f"{mapping}.extend = {extend}\n")
318326
#tone
319-
tone = f"\'{node.mapping.tone}\'"
327+
tone = enum_to_py_str(node.mapping.tone)
320328
file.write(f"{mapping}.tone = {tone}\n")
321329

322330
#black level
@@ -351,9 +359,14 @@ def curve_node_settings(node, file: TextIO, inner: str, node_var: str):
351359
point_j = f"{inner}{curve_i}_point_{j}"
352360

353361
loc = point.location
354-
file.write((f"{point_j} = {curve_i}.points.new({loc[0]}, {loc[1]})\n"))
362+
loc_str = f"{loc[0]}, {loc[1]}"
363+
if j < 2:
364+
file.write(f"{point_j} = {curve_i}.points[{j}]\n")
365+
file.write(f"{point_j}.location = ({loc_str})\n")
366+
else:
367+
file.write((f"{point_j} = {curve_i}.points.new({loc_str})\n"))
355368

356-
handle = f"\'{point.handle_type}\'"
369+
handle = enum_to_py_str(point.handle_type)
357370
file.write(f"{point_j}.handle_type = {handle}\n")
358371

359372
#update curve
@@ -669,14 +682,16 @@ def load_image(img, file: TextIO, inner: str, img_var: str):
669682
file.write(f"{inner}#set image settings\n")
670683

671684
#source
672-
file.write(f"{inner}{img_var}.source = \'{img.source}\'\n")
685+
source = enum_to_py_str(img.source)
686+
file.write(f"{inner}{img_var}.source = {source}\n")
673687

674688
#color space settings
675-
file.write((f"{inner}{img_var}.colorspace_settings.name = "
676-
f"\'{img.colorspace_settings.name}\'\n"))
689+
color_space = enum_to_py_str(img.colorspace_settings.name)
690+
file.write(f"{inner}{img_var}.colorspace_settings.name = {color_space}\n")
677691

678692
#alpha mode
679-
file.write(f"{inner}{img_var}.alpha_mode = \'{img.alpha_mode}\'\n")
693+
alpha_mode = enum_to_py_str(img.alpha_mode)
694+
file.write(f"{inner}{img_var}.alpha_mode = {alpha_mode}\n")
680695

681696
def image_user_settings(node, file: TextIO, inner: str, node_var: str):
682697
"""

0 commit comments

Comments
 (0)