feat(core): implement room navigation, character states, save/load and settings menu
- RoomNavigator autoload: smooth camera pan between floors - Floor1 and Floor2 placeholder rooms with elevator buttons - CharacterData Resource with State enum (HEALTHY/SICK/SLEEPING/TIRED) - Character visual state feedback via ColorRect color - Main scene loads saved state on startup - SettingsMenu with music/sfx sliders and game reset - HUD settings button to open SettingsMenu Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
103
scenes/ui/SettingsMenu.tscn
Normal file
103
scenes/ui/SettingsMenu.tscn
Normal file
@@ -0,0 +1,103 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cozypaw_settings"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/systems/settings_menu.gd" id="1_settings"]
|
||||
|
||||
[node name="SettingsMenu" type="CanvasLayer"]
|
||||
script = ExtResource("1_settings")
|
||||
visible = false
|
||||
|
||||
[node name="Backdrop" type="ColorRect" parent="."]
|
||||
color = Color(0, 0, 0, 0.7)
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 0.0
|
||||
offset_top = 0.0
|
||||
offset_right = 0.0
|
||||
offset_bottom = 0.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="."]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -200.0
|
||||
offset_top = -150.0
|
||||
offset_right = 200.0
|
||||
offset_bottom = 150.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Title" type="Label" parent="Panel"]
|
||||
offset_left = 0.0
|
||||
offset_top = 16.0
|
||||
offset_right = 400.0
|
||||
offset_bottom = 64.0
|
||||
horizontal_alignment = 1
|
||||
text = "⚙"
|
||||
theme_override_font_sizes/font_size = 32
|
||||
|
||||
[node name="MusicLabel" type="Label" parent="Panel"]
|
||||
offset_left = 24.0
|
||||
offset_top = 76.0
|
||||
offset_right = 80.0
|
||||
offset_bottom = 108.0
|
||||
text = "♪"
|
||||
theme_override_font_sizes/font_size = 24
|
||||
|
||||
[node name="MusicSlider" type="HSlider" parent="Panel"]
|
||||
min_value = 0.0
|
||||
max_value = 1.0
|
||||
step = 0.05
|
||||
value = 0.6
|
||||
offset_left = 88.0
|
||||
offset_top = 76.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 108.0
|
||||
|
||||
[node name="SfxLabel" type="Label" parent="Panel"]
|
||||
offset_left = 24.0
|
||||
offset_top = 120.0
|
||||
offset_right = 80.0
|
||||
offset_bottom = 152.0
|
||||
text = "🔊"
|
||||
theme_override_font_sizes/font_size = 24
|
||||
|
||||
[node name="SfxSlider" type="HSlider" parent="Panel"]
|
||||
min_value = 0.0
|
||||
max_value = 1.0
|
||||
step = 0.05
|
||||
value = 1.0
|
||||
offset_left = 88.0
|
||||
offset_top = 120.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 152.0
|
||||
|
||||
[node name="ResetButton" type="Button" parent="Panel"]
|
||||
offset_left = 24.0
|
||||
offset_top = 172.0
|
||||
offset_right = 88.0
|
||||
offset_bottom = 236.0
|
||||
text = "↺"
|
||||
theme_override_font_sizes/font_size = 28
|
||||
|
||||
[node name="ResetConfirmDialog" type="ConfirmationDialog" parent="Panel"]
|
||||
title = "Reset?"
|
||||
dialog_text = "Spielstand löschen?"
|
||||
|
||||
[node name="CloseButton" type="Button" parent="Panel"]
|
||||
offset_left = 312.0
|
||||
offset_top = 172.0
|
||||
offset_right = 376.0
|
||||
offset_bottom = 236.0
|
||||
text = "✕"
|
||||
theme_override_font_sizes/font_size = 28
|
||||
|
||||
[connection signal="value_changed" from="Panel/MusicSlider" to="." method="_on_music_slider_value_changed"]
|
||||
[connection signal="value_changed" from="Panel/SfxSlider" to="." method="_on_sfx_slider_value_changed"]
|
||||
[connection signal="pressed" from="Panel/ResetButton" to="." method="_on_reset_button_pressed"]
|
||||
[connection signal="confirmed" from="Panel/ResetConfirmDialog" to="." method="_on_reset_confirmed"]
|
||||
[connection signal="pressed" from="Panel/CloseButton" to="." method="_on_close_button_pressed"]
|
||||
Reference in New Issue
Block a user