summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jan@jantuomi.fi>2025-11-21 16:37:45 +0200
committerJan Tuomi <jan@jantuomi.fi>2025-11-21 16:37:45 +0200
commit31d7be95a48f3d36f2daac950dbc7cdaabeb5b86 (patch)
tree4481f2db453260cdad9273b70e5282cd51f9ec46
parent413d219eba1157284a6a90ecb9f736058158bb5f (diff)
Add full screen map and pause
-rw-r--r--esc_listener.gd7
-rw-r--r--esc_listener.gd.uid1
-rw-r--r--map.gd15
-rw-r--r--map.tscn50
-rw-r--r--room_test1.tscn6
-rw-r--r--room_test2.tscn6
-rw-r--r--room_test3.tscn6
-rw-r--r--top.gd25
-rw-r--r--touch_screen_button.tscn2
9 files changed, 76 insertions, 42 deletions
diff --git a/esc_listener.gd b/esc_listener.gd
deleted file mode 100644
index e0267d8..0000000
--- a/esc_listener.gd
+++ /dev/null
@@ -1,7 +0,0 @@
-extends Node
-
-@onready var top: Top = get_tree().root.get_node("Top")
-
-func _process(_delta: float) -> void:
- if Input.is_action_just_pressed("menu"):
- top.get_transition_manager().room_transition(null, "res://room_main_menu.tscn", null)
diff --git a/esc_listener.gd.uid b/esc_listener.gd.uid
deleted file mode 100644
index d34f269..0000000
--- a/esc_listener.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://rjab5emlyx6
diff --git a/map.gd b/map.gd
index 478a5f3..4fa9a0c 100644
--- a/map.gd
+++ b/map.gd
@@ -1,11 +1,15 @@
class_name Map
extends CanvasLayer
+@onready var top: Top = get_tree().root.get_node("Top")
var active_map_room: MapRoom
@export var inactive_color: Color
@export var active_color: Color
+func _ready():
+ hide_map()
+
func set_active_name(map_room_name: String):
if active_map_room:
active_map_room.color = inactive_color
@@ -17,3 +21,14 @@ func set_active_name(map_room_name: String):
if active_map_room:
active_map_room.color = active_color
+
+func connect_close_map(callable: Callable):
+ $UnpauseButton.connect("pressed", callable)
+
+func show_map():
+ visible = true
+ $UnpauseButton.mouse_filter = Control.MOUSE_FILTER_STOP
+
+func hide_map():
+ visible = false
+ $UnpauseButton.mouse_filter = Control.MOUSE_FILTER_IGNORE
diff --git a/map.tscn b/map.tscn
index 0d94613..2e98503 100644
--- a/map.tscn
+++ b/map.tscn
@@ -1,25 +1,26 @@
-[gd_scene load_steps=3 format=3 uid="uid://cseqghymhiyqo"]
+[gd_scene load_steps=4 format=3 uid="uid://cseqghymhiyqo"]
[ext_resource type="Script" uid="uid://dh0b4xa4f8h1o" path="res://map.gd" id="1_wijl4"]
[ext_resource type="PackedScene" uid="uid://clm2kocuhjqbb" path="res://map_room.tscn" id="2_e0an3"]
+[ext_resource type="Texture2D" uid="uid://c1h4ev7ma1neg" path="res://assets/kenney_1-bit-input-prompts-pixel-16/Tiles (White)/tile_0200.png" id="3_e0an3"]
[node name="Map" type="CanvasLayer"]
+process_mode = 3
script = ExtResource("1_wijl4")
inactive_color = Color(0.747755, 0.7671235, 0.89114594, 1)
active_color = Color(0, 0.77254903, 0.7764706, 1)
[node name="Bg" type="ColorRect" parent="."]
-offset_left = 3.0
-offset_top = 2.0
-offset_right = 29.0
-offset_bottom = 23.0
-color = Color(0, 0, 0, 0.5019608)
+offset_right = 192.0
+offset_bottom = 108.0
+mouse_filter = 2
+color = Color(0, 0.019607844, 0.039215688, 0.81960785)
[node name="RoomTest1" parent="." instance=ExtResource("2_e0an3")]
-offset_left = 7.0
-offset_top = 6.0
-offset_right = 15.0
-offset_bottom = 11.0
+offset_left = 84.0
+offset_top = 48.0
+offset_right = 92.0
+offset_bottom = 53.0
[node name="Line2D" type="Line2D" parent="RoomTest1"]
position = Vector2(7.275, 2.5)
@@ -32,13 +33,26 @@ points = PackedVector2Array(0.7251587, 0.15686035, 0.7249985, -2.5)
width = 1.0
[node name="RoomTest3" parent="." instance=ExtResource("2_e0an3")]
-offset_left = 7.0
-offset_top = 13.0
-offset_right = 15.0
-offset_bottom = 18.0
+offset_left = 84.0
+offset_top = 55.0
+offset_right = 92.0
+offset_bottom = 60.0
[node name="RoomTest2" parent="." instance=ExtResource("2_e0an3")]
-offset_left = 17.0
-offset_top = 6.0
-offset_right = 25.0
-offset_bottom = 11.0
+offset_left = 94.0
+offset_top = 48.0
+offset_right = 102.0
+offset_bottom = 53.0
+
+[node name="UnpauseButton" type="Button" parent="."]
+offset_left = 188.0
+offset_top = 105.0
+offset_right = 212.0
+offset_bottom = 129.0
+rotation = 3.1415927
+mouse_default_cursor_shape = 2
+action_mode = 0
+icon = ExtResource("3_e0an3")
+flat = true
+
+[connection signal="pressed" from="UnpauseButton" to="." method="_on_unpause_button_pressed"]
diff --git a/room_test1.tscn b/room_test1.tscn
index 979b442..9ce6e88 100644
--- a/room_test1.tscn
+++ b/room_test1.tscn
@@ -1,9 +1,8 @@
-[gd_scene load_steps=9 format=4 uid="uid://cfj21o6wsd3hv"]
+[gd_scene load_steps=8 format=4 uid="uid://cfj21o6wsd3hv"]
[ext_resource type="Texture2D" uid="uid://o0yy2jkyp0dy" path="res://assets/kenney_1-bit-platformer-pack/Tilemap/monochrome_tilemap_transparent_packed.png" id="1_ubxha"]
[ext_resource type="PackedScene" uid="uid://coxnsharboouu" path="res://player.tscn" id="2_qglt1"]
[ext_resource type="PackedScene" uid="uid://dfyvkc2qlcdac" path="res://game_camera.tscn" id="3_mrrx3"]
-[ext_resource type="Script" uid="uid://rjab5emlyx6" path="res://esc_listener.gd" id="4_8b75i"]
[ext_resource type="PackedScene" uid="uid://cciwccvljuuyq" path="res://touch_screen_ui.tscn" id="5_r17u5"]
[ext_resource type="PackedScene" uid="uid://df0loiahar23o" path="res://door.tscn" id="6_lfjh7"]
@@ -460,9 +459,6 @@ process_callback = 0
position_smoothing_speed = 3.0
offset_amt = Vector2(40, 14)
-[node name="EscListener" type="Node" parent="."]
-script = ExtResource("4_8b75i")
-
[node name="TouchScreenUI" parent="." instance=ExtResource("5_r17u5")]
[node name="DoorMiddle" parent="." instance=ExtResource("6_lfjh7")]
diff --git a/room_test2.tscn b/room_test2.tscn
index 8192db1..4f5fba4 100644
--- a/room_test2.tscn
+++ b/room_test2.tscn
@@ -1,9 +1,8 @@
-[gd_scene load_steps=9 format=4 uid="uid://cm4xqhbvyndt1"]
+[gd_scene load_steps=8 format=4 uid="uid://cm4xqhbvyndt1"]
[ext_resource type="Texture2D" uid="uid://o0yy2jkyp0dy" path="res://assets/kenney_1-bit-platformer-pack/Tilemap/monochrome_tilemap_transparent_packed.png" id="1_otugw"]
[ext_resource type="PackedScene" uid="uid://coxnsharboouu" path="res://player.tscn" id="2_0kik6"]
[ext_resource type="PackedScene" uid="uid://dfyvkc2qlcdac" path="res://game_camera.tscn" id="3_vjuef"]
-[ext_resource type="Script" uid="uid://rjab5emlyx6" path="res://esc_listener.gd" id="4_gyred"]
[ext_resource type="PackedScene" uid="uid://cciwccvljuuyq" path="res://touch_screen_ui.tscn" id="5_a1hvs"]
[ext_resource type="PackedScene" uid="uid://df0loiahar23o" path="res://door.tscn" id="6_0kik6"]
@@ -460,9 +459,6 @@ process_callback = 0
position_smoothing_speed = 3.0
offset_amt = Vector2(40, 14)
-[node name="EscListener" type="Node" parent="."]
-script = ExtResource("4_gyred")
-
[node name="TouchScreenUI" parent="." instance=ExtResource("5_a1hvs")]
[node name="DoorLeft" parent="." instance=ExtResource("6_0kik6")]
diff --git a/room_test3.tscn b/room_test3.tscn
index cf28cea..b047361 100644
--- a/room_test3.tscn
+++ b/room_test3.tscn
@@ -1,9 +1,8 @@
-[gd_scene load_steps=9 format=4 uid="uid://3o7g1rxy06sb"]
+[gd_scene load_steps=8 format=4 uid="uid://3o7g1rxy06sb"]
[ext_resource type="Texture2D" uid="uid://o0yy2jkyp0dy" path="res://assets/kenney_1-bit-platformer-pack/Tilemap/monochrome_tilemap_transparent_packed.png" id="1_mtemi"]
[ext_resource type="PackedScene" uid="uid://coxnsharboouu" path="res://player.tscn" id="2_bml3v"]
[ext_resource type="PackedScene" uid="uid://dfyvkc2qlcdac" path="res://game_camera.tscn" id="3_w1h0g"]
-[ext_resource type="Script" uid="uid://rjab5emlyx6" path="res://esc_listener.gd" id="4_bplq6"]
[ext_resource type="PackedScene" uid="uid://cciwccvljuuyq" path="res://touch_screen_ui.tscn" id="5_rlnij"]
[ext_resource type="PackedScene" uid="uid://df0loiahar23o" path="res://door.tscn" id="6_i21us"]
@@ -459,9 +458,6 @@ process_callback = 0
position_smoothing_speed = 3.0
offset_amt = Vector2(40, 14)
-[node name="EscListener" type="Node" parent="."]
-script = ExtResource("4_bplq6")
-
[node name="TouchScreenUI" parent="." instance=ExtResource("5_rlnij")]
[node name="DoorUp" parent="." instance=ExtResource("6_i21us")]
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()
diff --git a/touch_screen_button.tscn b/touch_screen_button.tscn
index 5b65811..355d491 100644
--- a/touch_screen_button.tscn
+++ b/touch_screen_button.tscn
@@ -5,7 +5,7 @@
[sub_resource type="RectangleShape2D" id="RectangleShape2D_l8v81"]
size = Vector2(40, 40)
-[node name="TouchScreenButtonRight" type="TouchScreenButton"]
+[node name="TouchScreenButton" type="TouchScreenButton"]
shape = SubResource("RectangleShape2D_l8v81")
passby_press = true
visibility_mode = 1