diff --git a/save_load/components/save_level_data_component.gd b/save_load/components/save_level_data_component.gd index 10ccc4b..f4f8e78 100644 --- a/save_load/components/save_level_data_component.gd +++ b/save_load/components/save_level_data_component.gd @@ -3,7 +3,9 @@ class_name SaveLevelDataComponent extends Node + @export var settings: SaveGameSettings ## The SaveGameSettings resource +@export var ui_node: CanvasLayer ## The UI to Show/Hide when taking screenshot (e.g. save icon generation) func _ready() -> void: diff --git a/save_load/ui/save_load_ui.gd b/save_load/ui/save_load_ui.gd index 11744cd..f0c3fde 100644 --- a/save_load/ui/save_load_ui.gd +++ b/save_load/ui/save_load_ui.gd @@ -22,8 +22,14 @@ func _on_create_save_button_pressed() -> void: if save_name.strip_edges() == "": save_name = Time.get_datetime_string_from_system().replace(":", "") + var _save_level_data_component: SaveLevelDataComponent = get_tree().get_first_node_in_group("save_level_data_component") + if _save_level_data_component.ui_node != null: + _save_level_data_component.ui_node.visible = false + await get_tree().create_timer(.150).timeout # A hack to delay to allow UI to hide before taking screenshot SaveGameManager.create_save_file.emit(save_name) SaveGameManager.refresh_saves_list.emit() + if _save_level_data_component.ui_node != null: + _save_level_data_component.ui_node.visible = true new_save_ui.hide() SignalManager.resume_game.emit() diff --git a/scenes/root.tscn b/scenes/root.tscn index c2deef4..2d37ade 100644 --- a/scenes/root.tscn +++ b/scenes/root.tscn @@ -9,4 +9,9 @@ script = ExtResource("1_lrqlo") [node name="World" parent="." instance=ExtResource("2_vvh5c")] +[node name="SaveLevelDataComponent" parent="World" index="3" node_paths=PackedStringArray("ui_node")] +ui_node = NodePath("../../UI") + [node name="UI" parent="." instance=ExtResource("3_vvh5c")] + +[editable path="World"]