summaryrefslogtreecommitdiffstats
path: root/top.gd
diff options
context:
space:
mode:
Diffstat (limited to 'top.gd')
-rw-r--r--top.gd25
1 files changed, 25 insertions, 0 deletions
diff --git a/top.gd b/top.gd
index 67f887f..a40a246 100644
--- a/top.gd
+++ b/top.gd
@@ -2,11 +2,16 @@ class_name Top
extends Node2D
@export var initial_room: PackedScene
+
+var active_room_name: String
var save_state_path = "user://save_state.cfg"
var save_state = ConfigFile.new()
func _ready() -> void:
+ $Map.hide_map()
+
var room = initial_room.instantiate()
+ active_room_name = room.name
room.name = "ActiveRoom"
room.process_mode = Node.PROCESS_MODE_PAUSABLE
add_child(room)
@@ -18,6 +23,10 @@ func _ready() -> void:
save_state.save(save_state_path)
print(OS.get_data_dir())
+func _process(_delta: float):
+ if Input.is_action_just_pressed("menu"):
+ on_esc_pressed()
+
func save():
save_state.save("user://save_state.cfg")
@@ -26,6 +35,7 @@ func replace_active_room(new_room: Node, on_changed: Callable):
remove_child(current_room)
current_room.queue_free()
+ active_room_name = new_room.name
new_room.name = "ActiveRoom"
new_room.connect("tree_entered", on_changed)
new_room.process_mode = Node.PROCESS_MODE_PAUSABLE
@@ -36,3 +46,18 @@ func get_map() -> Map:
func get_transition_manager() -> TransitionManager:
return $TransitionManager
+
+func on_esc_pressed():
+ if $Map.visible:
+ close_pause_menu()
+ elif active_room_name != "MainMenu":
+ open_pause_menu()
+
+func open_pause_menu():
+ get_tree().paused = true
+ $Map.show_map()
+ $Map.connect_close_map(close_pause_menu)
+
+func close_pause_menu():
+ get_tree().paused = false
+ $Map.hide_map()