@@ -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