, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
+ui_menu={
+"deadzone": 0.5,
+"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194370,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194305,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
+]
+}
[rendering]
-[gd_scene load_steps=6 format=4 uid="uid://bk4h1frr4r8tq"]
+[gd_scene load_steps=8 format=4 uid="uid://bk4h1frr4r8tq"]
+[ext_resource type="Script" path="res://scripts/house_template.gd" id="1_1vs50"]
[ext_resource type="Texture2D" uid="uid://d4j4ulftsvn5c" path="res://assets/textures/Inner.png" id="1_w2ggh"]
+[ext_resource type="PackedScene" uid="uid://d11oo2pxcah1g" path="res://scenes/interfaces/pause_menu.tscn" id="1_yi287"]
[ext_resource type="PackedScene" uid="uid://k76535tjepm3" path="res://scenes/elements/player.tscn" id="2_07rl6"]
[ext_resource type="PackedScene" uid="uid://da1uex028xkv1" path="res://scenes/elements/door_scene_manager.tscn" id="3_3eu8f"]
sources/0 = SubResource("TileSetAtlasSource_q4fiy")
[node name="HouseTemplate" type="Node2D"]
+script = ExtResource("1_1vs50")
[node name="TileMapLayer" type="TileMapLayer" parent="."]
rotation = -0.000322629
z_index = 4096
position = Vector2(582, 328)
zoom = Vector2(2, 2)
+
+[node name="PauseMenu" parent="Camera2D" instance=ExtResource("1_yi287")]
-[gd_scene load_steps=2 format=3 uid="uid://d11oo2pxcah1g"]
+[gd_scene load_steps=4 format=3 uid="uid://d11oo2pxcah1g"]
[ext_resource type="Script" path="res://scripts/pause_menu.gd" id="1_aq3as"]
+[ext_resource type="Script" path="res://addons/label_font_auto_sizer/label_auto_sizer.gd" id="2_j81qh"]
+
+[sub_resource type="LabelSettings" id="LabelSettings_3oc3d"]
+font_size = 50
[node name="PauseMenu" type="Control"]
+process_mode = 3
+z_index = 4096
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_aq3as")
+
+[node name="CenterContainer" type="CenterContainer" parent="."]
+layout_mode = 1
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
+layout_mode = 2
+
+[node name="PauseLabel" type="Label" parent="CenterContainer/VBoxContainer"]
+custom_minimum_size = Vector2(250, 100)
+layout_mode = 2
+theme_override_font_sizes/font_size = 16
+text = "Pause"
+label_settings = SubResource("LabelSettings_3oc3d")
+horizontal_alignment = 1
+vertical_alignment = 1
+autowrap_mode = 3
+clip_text = true
+script = ExtResource("2_j81qh")
+_size_just_modified_by_autosizer = false
+_set_defaults = true
+_base_font_size = 50
+_current_font_size = 50
+_last_size_state = 1
+
+[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
+layout_mode = 2
+alignment = 1
+
+[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/VBoxContainer/HBoxContainer"]
+layout_mode = 2
+theme_override_constants/margin_left = 32
+theme_override_constants/margin_top = 32
+theme_override_constants/margin_right = 32
+theme_override_constants/margin_bottom = 32
+
+[node name="SaveButton" type="Button" parent="CenterContainer/VBoxContainer/HBoxContainer/MarginContainer"]
+layout_mode = 2
+text = "Save"
+
+[node name="MarginContainer2" type="MarginContainer" parent="CenterContainer/VBoxContainer/HBoxContainer"]
+layout_mode = 2
+theme_override_constants/margin_left = 32
+theme_override_constants/margin_top = 32
+theme_override_constants/margin_right = 32
+theme_override_constants/margin_bottom = 32
+
+[node name="LoadButton" type="Button" parent="CenterContainer/VBoxContainer/HBoxContainer/MarginContainer2"]
+layout_mode = 2
+text = "Load
+"
+
+[connection signal="pressed" from="CenterContainer/VBoxContainer/HBoxContainer/MarginContainer/SaveButton" to="." method="_on_save_button_pressed"]
+[connection signal="pressed" from="CenterContainer/VBoxContainer/HBoxContainer/MarginContainer2/LoadButton" to="." method="_on_load_button_pressed"]
-[gd_scene load_steps=7 format=4 uid="uid://ds1fjw3marbia"]
+[gd_scene load_steps=8 format=4 uid="uid://ds1fjw3marbia"]
[ext_resource type="PackedScene" uid="uid://k76535tjepm3" path="res://scenes/elements/player.tscn" id="1_6iuf6"]
[ext_resource type="Script" path="res://scripts/main_level.gd" id="1_fdviv"]
[ext_resource type="Texture2D" uid="uid://bj3fteudhyal6" path="res://assets/textures/Overworld.png" id="1_pt2os"]
[ext_resource type="PackedScene" uid="uid://da1uex028xkv1" path="res://scenes/elements/door_scene_manager.tscn" id="1_qqjfh"]
+[ext_resource type="PackedScene" uid="uid://d11oo2pxcah1g" path="res://scenes/interfaces/pause_menu.tscn" id="2_4k3ic"]
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_n0o3p"]
texture = ExtResource("1_pt2os")
[node name="Camera2D" type="Camera2D" parent="Player"]
z_index = 4096
zoom = Vector2(2, 2)
+
+[node name="PauseMenu" parent="Player/Camera2D" instance=ExtResource("2_4k3ic")]
+offset_left = -288.0
+offset_top = -162.0
+offset_right = 288.0
+offset_bottom = 162.0
var player_positions: Array[_PlayerPositionAt]
var last_scene_updated: Constants.LEVELS_NAMES
+
+signal request_update_player_position
+
+
func update_player_position(scene: Constants.LEVELS_NAMES, new_position: Vector2):
last_scene_updated = scene
--- /dev/null
+extends Node2D
+
+
+const LEVEL_NAME = "house_template"
+
+@onready var player = $Player
+
+
+func _ready():
+ Globals.request_update_player_position.connect(update_player_position)
+ Globals.set_current_scene(Constants.LEVELS_NAMES[LEVEL_NAME])
+
+
+func update_player_position():
+ Globals.update_player_position(Constants.LEVELS_NAMES[LEVEL_NAME], player.position)
func _ready():
+ Globals.request_update_player_position.connect(update_player_position)
+ Globals.set_current_scene(Constants.LEVELS_NAMES[LEVEL_NAME])
+
# get player poss
player.position = Globals.get_last_player_position_in_scene(Constants.LEVELS_NAMES[LEVEL_NAME] as Constants.LEVELS_NAMES)
+
+
+func update_player_position():
+ Globals.update_player_position(Constants.LEVELS_NAMES[LEVEL_NAME], player.position)
extends Control
-# Called when the node enters the scene tree for the first time.
+var paused: bool = false
+
+
func _ready():
- pass # Replace with function body.
+ visible = paused
-# Called every frame. 'delta' is the elapsed time since the previous frame.
-func _process(delta):
- pass
+func _process(_delta):
+ if Input.is_action_just_pressed("ui_cancel"):
+ pause_game()
func save_data():
SaveSystem.set_var("save", SaveResource.new())
SaveSystem.set_var("save:scene", get_scene())
-
+ SaveSystem.set_var("save:player_position", Globals.get_last_player_position_in_scene(get_scene()))
+ SaveSystem.save()
+
func get_scene() -> Constants.LEVELS_NAMES:
return Globals.get_current_scene()
+
+
+func pause_game():
+ # update player position before pausing the execution
+ Globals.request_update_player_position.emit()
+
+ paused = !paused
+ get_tree().paused = paused
+ visible = paused
+
+
+func _on_save_button_pressed():
+ save_data()
+
+
+func _on_load_button_pressed():
+ var save_data = SaveSystem.get_var("save")
+ print(save_data)