@@ -60,6 +60,7 @@ func _on_undo_redo_version_changed():
6060
6161func _on_show_script_button_pressed ():
6262 var script : String = _block_canvas .generate_script_from_current_window ()
63+ print ("_on_show_script_button_pressed " , _block_canvas ._context .block_code_node )
6364
6465 script_window_requested .emit (script )
6566
@@ -132,10 +133,7 @@ func save_script():
132133 print ("No script loaded to save." )
133134 return
134135
135- if not Engine .is_editor_hint ():
136- return
137-
138- var scene_node = EditorInterface .get_edited_scene_root ()
136+ var scene_node = EditorInterface .get_edited_scene_root () if Engine .is_editor_hint () else null
139137
140138 if not BlockCodePlugin .is_block_code_editable (_context .block_code_node ):
141139 print ("Block code for {node} is not editable." .format ({"node" : _context .block_code_node }))
@@ -146,29 +144,30 @@ func save_script():
146144 var resource_path_split = block_script .resource_path .split ("::" , true , 1 )
147145 var resource_scene = resource_path_split [0 ]
148146
149- undo_redo .create_action ("Modify %s 's block code script" % _context .parent_node .name , UndoRedo .MERGE_DISABLE , _context .block_code_node )
147+ if undo_redo : undo_redo .create_action ("Modify %s 's block code script" % _context .parent_node .name , UndoRedo .MERGE_DISABLE , _context .block_code_node )
150148
151- if resource_scene and resource_scene != scene_node .scene_file_path :
149+ if resource_scene and scene_node and resource_scene != scene_node .scene_file_path :
152150 # This resource is from another scene. Since the user is changing it
153151 # here, we'll make a copy for this scene rather than changing it in the
154152 # other scene file.
155- undo_redo .add_undo_property (_context .block_code_node , "block_script" , _context .block_script )
153+ if undo_redo : undo_redo .add_undo_property (_context .block_code_node , "block_script" , _context .block_script )
156154 block_script = block_script .duplicate (true )
157- undo_redo .add_do_property (_context .block_code_node , "block_script" , block_script )
155+ if undo_redo : undo_redo .add_do_property (_context .block_code_node , "block_script" , block_script )
158156
159- undo_redo .add_undo_property (block_script , "block_serialization_trees" , block_script .block_serialization_trees )
157+ if undo_redo : undo_redo .add_undo_property (block_script , "block_serialization_trees" , block_script .block_serialization_trees )
160158 _block_canvas .rebuild_ast_list ()
161159 _block_canvas .rebuild_block_serialization_trees ()
162- undo_redo .add_do_property (block_script , "block_serialization_trees" , block_script .block_serialization_trees )
160+ if undo_redo : undo_redo .add_do_property (block_script , "block_serialization_trees" , block_script .block_serialization_trees )
163161
164162 var generated_script = _block_canvas .generate_script_from_current_window ()
165163 if generated_script != block_script .generated_script :
166- undo_redo .add_undo_property (block_script , "generated_script" , block_script .generated_script )
167- undo_redo .add_do_property (block_script , "generated_script" , generated_script )
168-
164+ if undo_redo : undo_redo .add_undo_property (block_script , "generated_script" , block_script .generated_script )
165+ if undo_redo : undo_redo .add_do_property (block_script , "generated_script" , generated_script )
166+ pass
167+
169168 block_script .version = Constants .CURRENT_DATA_VERSION
170169
171- undo_redo .commit_action ()
170+ if undo_redo : undo_redo .commit_action ()
172171
173172
174173func _input (event ):
@@ -278,13 +277,18 @@ func _create_variable(variable: VariableDefinition):
278277
279278 var block_script : BlockScriptSerialization = _context .block_script
280279
281- undo_redo .create_action ("Create variable %s in %s 's block code script" % [variable .var_name , _context .parent_node .name ])
282- undo_redo .add_undo_property (_context .block_script , "variables" , _context .block_script .variables )
280+ if undo_redo :
281+ undo_redo .create_action ("Create variable %s in %s 's block code script" % [variable .var_name , _context .parent_node .name ])
282+ undo_redo .add_undo_property (_context .block_script , "variables" , _context .block_script .variables )
283283
284- var new_variables = block_script .variables .duplicate ()
285- new_variables .append (variable )
284+ var new_variables = block_script .variables .duplicate ()
285+ new_variables .append (variable )
286286
287- undo_redo .add_do_property (_context .block_script , "variables" , new_variables )
288- undo_redo .commit_action ()
287+ undo_redo .add_do_property (_context .block_script , "variables" , new_variables )
288+ undo_redo .commit_action ()
289+ else :
290+ var new_variables = block_script .variables .duplicate ()
291+ new_variables .append (variable )
292+ block_script .variables = new_variables
289293
290294 _picker .reload_blocks ()
0 commit comments