Skip to content

Commit ea5819f

Browse files
committed
feat: set collection if found in blend file
1 parent 7c29385 commit ea5819f

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

NodeToPython/ntp_operator.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -411,15 +411,11 @@ def _set_settings_defaults(self, node: Node) -> None:
411411
elif st == ST.COLOR:
412412
self._write(f"{setting_str} = {color_to_py_str(attr)}")
413413
elif st == ST.MATERIAL:
414-
name = str_to_py_str(attr.name)
415-
self._write(f"if {name} in bpy.data.materials:")
416-
self._write(f"{setting_str} = bpy.data.materials[{name}]",
417-
self._inner_indent_level + 1)
414+
self._set_if_in_blend_file(attr, setting_str, "materials")
418415
elif st == ST.OBJECT:
419-
name = str_to_py_str(attr.name)
420-
self._write(f"if {name} in bpy.data.objects:")
421-
self._write(f"{setting_str} = bpy.data.objects[{name}]",
422-
self._inner_indent_level + 1)
416+
self._set_if_in_blend_file(attr, setting_str, "objects")
417+
elif st == ST.COLLECTION:
418+
self._set_if_in_blend_file(attr, setting_str, "collections")
423419
elif st == ST.COLOR_RAMP:
424420
self._color_ramp_settings(node, attr_name)
425421
elif st == ST.CURVE_MAPPING:
@@ -933,6 +929,16 @@ def _set_socket_defaults(self, node: Node):
933929
self._set_input_defaults(node)
934930
self._set_output_defaults(node)
935931

932+
def _set_if_in_blend_file(self, attr, setting_str: str, data_type: str
933+
) -> None:
934+
"""
935+
Attempts to grab referenced thing from blend file
936+
"""
937+
name = str_to_py_str(attr.name)
938+
self._write(f"if {name} in bpy.data.{data_type}:")
939+
self._write(f"{setting_str} = bpy.data.{data_type}[{name}]",
940+
self._inner_indent_level + 1)
941+
936942
def _color_ramp_settings(self, node: Node, color_ramp_name: str) -> None:
937943
"""
938944
Replicate a color ramp node

0 commit comments

Comments
 (0)