Basic game template addon
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 6s
Create tag and build when new code gets to main / Export (push) Successful in 1m1s

This commit is contained in:
2026-01-30 19:45:56 +01:00
parent b923f6bec2
commit 44f251ed66
406 changed files with 12602 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://buql3bcbqx4pp"
path="res://.godot/imported/Git-Logo-2Color.png-8d60985b349b90d009d8e0fa064f2f30.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://menus/assets/git_logo/Git-Logo-2Color.png"
dest_files=["res://.godot/imported/Git-Logo-2Color.png-8d60985b349b90d009d8e0fa064f2f30.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,6 @@
Git Logo
Copyright (c) Jason Long
This work is licensed under the Creative Commons Attribution 3.0 Unported
license (CC BY 3.0): https://creativecommons.org/licenses/by/3.0/

View File

@@ -0,0 +1,5 @@
Godot Engine Logo
Copyright (c) 2017 Andrea Calabró
This work is licensed under the Creative Commons Attribution 4.0 International
license (CC BY 4.0 International): https://creativecommons.org/licenses/by/4.0/

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://4hasb7yih53v"
path="res://.godot/imported/logo_vertical_color_dark.png-384a2af4f2358a96a64d672d7da75a7a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://menus/assets/godot_engine_logo/logo_vertical_color_dark.png"
dest_files=["res://.godot/imported/logo_vertical_color_dark.png-384a2af4f2358a96a64d672d7da75a7a.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,5 @@
Maaack's Minimal Game Template Logo
Copyright (c) Marek Belski
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
license (CC BY-NC-ND 4.0 International): https://creativecommons.org/licenses/by-nc-nd/4.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b760ux4aanw3h"
path="res://.godot/imported/logo.png-1b8f877e8e13c68d267e1d993dfb49fd.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://menus/assets/plugin_logo/logo.png"
dest_files=["res://.godot/imported/logo.png-1b8f877e8e13c68d267e1d993dfb49fd.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View File

@@ -0,0 +1,98 @@
[gd_resource type="Theme" format=3 uid="uid://bbvjs5vfhsn4p"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g0sbc"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.823636, 0.744991, 0.659007, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.662913, 0.549096, 0.478248, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_krvwn"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.662913, 0.549096, 0.478248, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.466529, 0.360525, 0.333165, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gfyr3"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.466529, 0.360525, 0.333165, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.282353, 0.231067, 0.227161, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tytr8"]
bg_color = Color(0.282353, 0.231067, 0.227161, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.133364, 0.133364, 0.133364, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wsakr"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.823636, 0.744991, 0.659007, 1)
border_width_right = 2
border_color = Color(0.662913, 0.549096, 0.478248, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1ngrn"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.662913, 0.549096, 0.478248, 1)
border_width_right = 2
border_color = Color(0.466529, 0.360525, 0.333165, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q0g5m"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.466529, 0.360525, 0.333165, 1)
border_width_top = 2
border_width_right = 2
border_color = Color(0.282353, 0.231067, 0.227161, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
[resource]
Button/styles/hover = SubResource("StyleBoxFlat_g0sbc")
Button/styles/normal = SubResource("StyleBoxFlat_krvwn")
Button/styles/pressed = SubResource("StyleBoxFlat_gfyr3")
Panel/styles/panel = SubResource("StyleBoxFlat_tytr8")
PanelContainer/styles/panel = SubResource("StyleBoxFlat_tytr8")
TabContainer/styles/panel = SubResource("StyleBoxFlat_tytr8")
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_wsakr")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_1ngrn")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_q0g5m")

View File

@@ -0,0 +1,116 @@
[gd_resource type="Theme" format=3 uid="uid://coeyx2tnur752"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_w50h3"]
content_margin_left = 16.0
content_margin_top = 4.0
content_margin_right = 16.0
content_margin_bottom = 4.0
bg_color = Color(0.125911, 0.125911, 0.125911, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.95, 0.95, 0.95, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_6tkof"]
content_margin_left = 16.0
content_margin_top = 4.0
content_margin_right = 16.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.95, 0.95, 0.95, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ftays"]
content_margin_left = 16.0
content_margin_top = 4.0
content_margin_right = 16.0
content_margin_bottom = 4.0
bg_color = Color(0.95, 0.95, 0.95, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.125911, 0.125911, 0.125911, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sucf2"]
bg_color = Color(0.0619267, 0.0619267, 0.0619266, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u30hj"]
content_margin_left = 8.0
content_margin_right = 8.0
bg_color = Color(0.125536, 0.125536, 0.125536, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_color = Color(0.945281, 0.945281, 0.945281, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_h5y6c"]
content_margin_left = 8.0
content_margin_right = 8.0
bg_color = Color(0.945281, 0.945281, 0.945281, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_color = Color(0.0195315, 0.0195315, 0.0195315, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_detail = 1
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g0qsc"]
content_margin_left = 8.0
content_margin_right = 8.0
bg_color = Color(0, 0, 0, 0.933333)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_color = Color(0.945281, 0.945281, 0.945281, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_detail = 1
[resource]
Button/colors/font_color = Color(0.95, 0.95, 0.95, 1)
Button/colors/font_focus_color = Color(0.95, 0.95, 0.95, 1)
Button/colors/font_hover_color = Color(0.95, 0.95, 0.95, 1)
Button/colors/font_pressed_color = Color(0.125911, 0.125911, 0.125911, 1)
Button/styles/disabled = null
Button/styles/focus = null
Button/styles/hover = SubResource("StyleBoxFlat_w50h3")
Button/styles/normal = SubResource("StyleBoxFlat_6tkof")
Button/styles/pressed = SubResource("StyleBoxFlat_ftays")
Panel/styles/panel = SubResource("StyleBoxFlat_sucf2")
PanelContainer/styles/panel = SubResource("StyleBoxFlat_sucf2")
TabContainer/colors/font_hovered_color = Color(0.945281, 0.945281, 0.945281, 1)
TabContainer/colors/font_selected_color = Color(0.0195315, 0.0195315, 0.0195315, 1)
TabContainer/colors/font_unselected_color = Color(0.945281, 0.945281, 0.945281, 1)
TabContainer/styles/panel = SubResource("StyleBoxFlat_sucf2")
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_u30hj")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_h5y6c")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_g0qsc")

View File

@@ -0,0 +1,98 @@
[gd_resource type="Theme" format=3 uid="uid://c55qwm6y3ah6r"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g0sbc"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.428961, 0.730226, 0.50528, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.298858, 0.546296, 0.363635, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_krvwn"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.298858, 0.546296, 0.363635, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.234842, 0.443383, 0.289887, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gfyr3"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.234842, 0.443383, 0.289887, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.234842, 0.443383, 0.289887, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tytr8"]
bg_color = Color(0.191138, 0.370484, 0.238651, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.115392, 0.241196, 0.148848, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wsakr"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.428961, 0.730226, 0.50528, 1)
border_width_right = 2
border_color = Color(0.298858, 0.546296, 0.363635, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1ngrn"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.298858, 0.546296, 0.363635, 1)
border_width_right = 2
border_color = Color(0.234842, 0.443383, 0.289887, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_q0g5m"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.234842, 0.443383, 0.289887, 1)
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.234842, 0.443383, 0.289887, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
[resource]
Button/styles/hover = SubResource("StyleBoxFlat_g0sbc")
Button/styles/normal = SubResource("StyleBoxFlat_krvwn")
Button/styles/pressed = SubResource("StyleBoxFlat_gfyr3")
Panel/styles/panel = SubResource("StyleBoxFlat_tytr8")
PanelContainer/styles/panel = SubResource("StyleBoxFlat_tytr8")
TabContainer/styles/panel = SubResource("StyleBoxFlat_tytr8")
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_wsakr")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_1ngrn")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_q0g5m")

View File

@@ -0,0 +1,185 @@
[gd_resource type="Theme" format=3 uid="uid://uenhweg3q2xr"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4b4gg"]
content_margin_left = 12.0
content_margin_right = 12.0
content_margin_bottom = 14.0
bg_color = Color(0.305882, 0.454902, 0.6, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 12
border_color = Color(0.141176, 0.321569, 0.45098, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_l51yu"]
content_margin_left = 12.0
content_margin_right = 12.0
content_margin_bottom = 14.0
bg_color = Color(0.243137, 0.25098, 0.333333, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 12
border_color = Color(0.219608, 0.176471, 0.207843, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_e7ejt"]
content_margin_left = 12.0
content_margin_right = 12.0
content_margin_bottom = 14.0
bg_color = Color(0.121569, 0.176471, 0.211765, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 12
border_color = Color(0.0784314, 0.121569, 0.145098, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ywrjj"]
bg_color = Color(0.6, 0.6, 0.6, 0)
border_width_left = 3
border_width_top = 3
border_width_bottom = 3
corner_radius_top_left = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tyerd"]
bg_color = Color(0.8, 0.8, 0.8, 1)
border_width_left = 2
border_width_top = 3
border_width_bottom = 3
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_left = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ulcur"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.0784314, 0.121569, 0.145098, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0.0431373, 0.0627451, 0.0862745, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_aliwb"]
bg_color = Color(0.6, 0.6, 0.6, 0)
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
corner_radius_top_right = 4
corner_radius_bottom_right = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tnl2j"]
content_margin_bottom = 3.0
bg_color = Color(0.8, 0.8, 0.8, 1)
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_right = 4
corner_radius_bottom_right = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_k5faf"]
bg_color = Color(0.6, 0.6, 0.6, 0)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_width_bottom = 3
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5j0a2"]
bg_color = Color(0.8, 0.8, 0.8, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_odiue"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.0784314, 0.121569, 0.145098, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0.219608, 0.176471, 0.207843, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ghjya"]
content_margin_left = 12.0
content_margin_right = 12.0
bg_color = Color(0.305882, 0.454902, 0.6, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_color = Color(0.141176, 0.321569, 0.45098, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_m6y06"]
content_margin_left = 12.0
content_margin_right = 12.0
bg_color = Color(0.243137, 0.25098, 0.333333, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_color = Color(0.219608, 0.176471, 0.207843, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5icga"]
content_margin_left = 12.0
content_margin_right = 12.0
bg_color = Color(0.0784314, 0.121569, 0.145098, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_color = Color(0.121569, 0.176471, 0.211765, 1)
corner_radius_top_left = 8
corner_radius_top_right = 8
[sub_resource type="FontVariation" id="FontVariation_i860b"]
spacing_top = 4
spacing_bottom = 2
[resource]
default_font = SubResource("FontVariation_i860b")
Button/styles/hover = SubResource("StyleBoxFlat_4b4gg")
Button/styles/normal = SubResource("StyleBoxFlat_l51yu")
Button/styles/pressed = SubResource("StyleBoxFlat_e7ejt")
LeftStaminaBar/base_type = &"ProgressBar"
LeftStaminaBar/styles/background = SubResource("StyleBoxFlat_ywrjj")
LeftStaminaBar/styles/fill = SubResource("StyleBoxFlat_tyerd")
Panel/styles/panel = SubResource("StyleBoxFlat_ulcur")
PanelContainer/styles/panel = SubResource("StyleBoxFlat_ulcur")
RightStaminaBar/base_type = &"ProgressBar"
RightStaminaBar/styles/background = SubResource("StyleBoxFlat_aliwb")
RightStaminaBar/styles/fill = SubResource("StyleBoxFlat_tnl2j")
StaminaBar/base_type = &"ProgressBar"
StaminaBar/styles/background = SubResource("StyleBoxFlat_k5faf")
StaminaBar/styles/fill = SubResource("StyleBoxFlat_5j0a2")
TabContainer/styles/panel = SubResource("StyleBoxFlat_odiue")
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_ghjya")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_m6y06")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_5icga")

View File

@@ -0,0 +1,190 @@
[gd_resource type="Theme" format=3 uid="uid://cpdklrs7didjo"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8hxc2"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.631373, 0.52549, 0.619608, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.192157, 0.239216, 0.352941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_daw1f"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.00392157, 0.0862745, 0.152941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.839216, 0.933333, 1, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_r1yu6"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.00392157, 0.0862745, 0.152941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.00392157, 0.0862745, 0.152941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wnp2l"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.192157, 0.239216, 0.352941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.00392157, 0.0862745, 0.152941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2ymfe"]
bg_color = Color(0.00392157, 0.0862745, 0.152941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_pq3iw"]
bg_color = Color(0.00392157, 0.0862745, 0.152941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hvab5"]
bg_color = Color(0.192157, 0.239216, 0.352941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.00392157, 0.0862745, 0.152941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_f05by"]
bg_color = Color(0.192157, 0.239216, 0.352941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.00392157, 0.0862745, 0.152941, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_t1x62"]
bg_color = Color(0.929412, 0.921569, 0.627451, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_w2bse"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0.00392157, 0.0862745, 0.152941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_color = Color(0.839216, 0.933333, 1, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7eahf"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0.192157, 0.239216, 0.352941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_color = Color(0.00392157, 0.0862745, 0.152941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5sk2t"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0.00392157, 0.0862745, 0.152941, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_color = Color(0.00392157, 0.0862745, 0.152941, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_00w47"]
bg_color = Color(0.839216, 0.933333, 1, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_gh53c"]
bg_color = Color(0.631373, 0.52549, 0.619608, 1)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.8, 0.8, 0.8, 0)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[resource]
Button/colors/font_color = Color(0.839216, 0.933333, 1, 1)
Button/colors/font_disabled_color = Color(0.192157, 0.239216, 0.352941, 1)
Button/colors/font_focus_color = Color(0.839216, 0.933333, 1, 1)
Button/colors/font_hover_color = Color(0.839216, 0.933333, 1, 1)
Button/colors/font_hover_pressed_color = Color(0.839216, 0.933333, 1, 1)
Button/colors/font_pressed_color = Color(0.00392157, 0.0862745, 0.152941, 1)
Button/styles/disabled = SubResource("StyleBoxFlat_8hxc2")
Button/styles/hover = SubResource("StyleBoxFlat_daw1f")
Button/styles/normal = SubResource("StyleBoxFlat_r1yu6")
Button/styles/pressed = SubResource("StyleBoxFlat_wnp2l")
DelayProgressBar/base_type = &"ProgressBar"
DelayProgressBar/styles/fill = SubResource("StyleBoxFlat_2ymfe")
Label/colors/font_color = Color(0.839216, 0.933333, 1, 1)
Label/colors/font_outline_color = Color(0.00392157, 0.0862745, 0.152941, 1)
Label/constants/outline_size = 8
LineEdit/colors/caret_color = Color(0.839216, 0.933333, 1, 1)
LineEdit/colors/font_color = Color(0.929412, 0.921569, 0.627451, 1)
LineEdit/colors/font_uneditable_color = Color(0.192157, 0.239216, 0.352941, 1)
LineEdit/styles/normal = SubResource("StyleBoxFlat_pq3iw")
LineEdit/styles/read_only = SubResource("StyleBoxFlat_pq3iw")
Panel/styles/panel = SubResource("StyleBoxFlat_hvab5")
PanelContainer/styles/panel = SubResource("StyleBoxFlat_hvab5")
ProgressBar/styles/background = SubResource("StyleBoxFlat_f05by")
ProgressBar/styles/fill = SubResource("StyleBoxFlat_t1x62")
RichTextLabel/colors/default_color = Color(0.839216, 0.933333, 1, 1)
RichTextLabel/colors/font_outline_color = Color(0.00392157, 0.0862745, 0.152941, 1)
RichTextLabel/constants/outline_size = 8
TabContainer/styles/panel = SubResource("StyleBoxFlat_hvab5")
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_w2bse")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_7eahf")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_5sk2t")
TimerProgressBar/base_type = &"ProgressBar"
TimerProgressBar/styles/fill = SubResource("StyleBoxFlat_00w47")
WarningProgressBar/base_type = &"ProgressBar"
WarningProgressBar/styles/fill = SubResource("StyleBoxFlat_gh53c")

View File

@@ -0,0 +1,560 @@
[gd_resource type="Theme" format=3 uid="uid://dimfu60mtxyar"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7rtxy"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.698039, 0.133333, 0.203922, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_hofdy"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 0)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.235294, 0.231373, 0.431373, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
expand_margin_left = 2.0
expand_margin_top = 2.0
expand_margin_right = 2.0
expand_margin_bottom = 2.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_0ahyh"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_83bj2"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.973535, 0.973535, 0.973535, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bjb6u"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.235294, 0.231373, 0.431373, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wv8md"]
bg_color = Color(0.698039, 0.133333, 0.203922, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_s1fdf"]
bg_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_tieq2"]
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rrxf3"]
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.235294, 0.231373, 0.431373, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2e0dr"]
content_margin_top = 3.0
content_margin_bottom = 3.0
bg_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_fgisk"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_fgisk"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5e2ta"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.0383972, 0.0383972, 0.0383972, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7e08u"]
bg_color = Color(0, 0, 0, 1)
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_whago"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.235294, 0.231373, 0.431373, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_d8x3d"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.698039, 0.133333, 0.203922, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_hofdy"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lmfyq"]
bg_color = Color(0.698039, 0.133333, 0.203922, 1)
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 0)
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_wv8md"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_c4ulf"]
bg_color = Color(0, 0, 0, 1)
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 0)
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8723n"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.235294, 0.231373, 0.431373, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_opsya"]
bg_color = Color(0.235294, 0.231373, 0.431373, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8g14u"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.0383972, 0.0383972, 0.0383972, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qnvbk"]
content_margin_left = 8.0
content_margin_top = 4.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_top = 2
border_color = Color(0.698039, 0.133333, 0.203922, 1)
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_d8x3d"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_4bfjk"]
content_margin_left = 8.0
content_margin_top = 4.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_top = 2
border_color = Color(0.235294, 0.231373, 0.431373, 1)
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ojvr3"]
content_margin_left = 8.0
content_margin_top = 4.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
border_width_top = 2
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lop2v"]
content_margin_left = 8.0
content_margin_top = 4.0
content_margin_right = 8.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_top = 2
border_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_0ahyh"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_83bj2"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rr4b1"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 0)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.235294, 0.231373, 0.431373, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
expand_margin_left = 2.0
expand_margin_top = 2.0
expand_margin_right = 2.0
expand_margin_bottom = 2.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bcw1c"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.0383972, 0.0383972, 0.0383972, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xi1kj"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rrcvo"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.235294, 0.231373, 0.431373, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_wvge0"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.235294, 0.231373, 0.431373, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_v0ggg"]
bg_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kvvmu"]
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.973535, 0.973535, 0.973535, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rum38"]
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.235294, 0.231373, 0.431373, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_5wbgk"]
content_margin_left = 3.0
content_margin_right = 3.0
bg_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
corner_radius_top_left = 2
corner_radius_top_right = 2
corner_radius_bottom_right = 2
corner_radius_bottom_left = 2
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_s1fdf"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_x127s"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0.698039, 0.133333, 0.203922, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0, 0, 0, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qjhx0"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.698039, 0.133333, 0.203922, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u427p"]
content_margin_left = 4.0
content_margin_top = 4.0
content_margin_right = 4.0
content_margin_bottom = 4.0
bg_color = Color(0, 0, 0, 1)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.698039, 0.133333, 0.203922, 1)
corner_radius_top_left = 4
corner_radius_top_right = 4
corner_radius_bottom_right = 4
corner_radius_bottom_left = 4
[resource]
BoldLabel/base_type = &"Label"
BoldLabel/fonts/font = null
Button/colors/font_color = Color(0, 0, 0, 1)
Button/colors/font_disabled_color = Color(0.698039, 0.133333, 0.203922, 1)
Button/colors/font_focus_color = Color(0, 0, 0, 1)
Button/colors/font_hover_color = Color(0.973535, 0.973535, 0.973535, 1)
Button/colors/font_hover_pressed_color = Color(0.973535, 0.973535, 0.973535, 1)
Button/colors/font_pressed_color = Color(0.235294, 0.231373, 0.431373, 1)
Button/styles/disabled = SubResource("StyleBoxFlat_7rtxy")
Button/styles/focus = SubResource("StyleBoxFlat_hofdy")
Button/styles/hover = SubResource("StyleBoxFlat_0ahyh")
Button/styles/normal = SubResource("StyleBoxFlat_83bj2")
Button/styles/pressed = SubResource("StyleBoxFlat_bjb6u")
DisabledLabel/base_type = &"Label"
DisabledLabel/colors/font_color = Color(0, 0, 0, 1)
DisabledLabel/font_sizes/font_size = 24
DisabledLabel/fonts/font = null
DisabledLabel/styles/normal = SubResource("StyleBoxFlat_wv8md")
HScrollBar/styles/grabber = SubResource("StyleBoxFlat_s1fdf")
HScrollBar/styles/grabber_highlight = SubResource("StyleBoxFlat_tieq2")
HScrollBar/styles/grabber_pressed = SubResource("StyleBoxFlat_rrxf3")
HScrollBar/styles/scroll = SubResource("StyleBoxFlat_2e0dr")
HScrollBar/styles/scroll_focus = SubResource("StyleBoxEmpty_fgisk")
LocationName/base_type = &"Label"
LocationName/colors/font_color = Color(0.973535, 0.973535, 0.973535, 1)
LocationName/font_sizes/font_size = 22
LocationName/fonts/font = null
LocationType/base_type = &"Label"
LocationType/colors/font_color = Color(0.235294, 0.231373, 0.431373, 1)
LocationType/fonts/font = null
Panel/styles/panel = SubResource("StyleBoxFlat_fgisk")
PanelContainer/styles/panel = SubResource("StyleBoxFlat_5e2ta")
ProgressBar/styles/background = SubResource("StyleBoxFlat_7e08u")
ProgressBar/styles/fill = SubResource("StyleBoxFlat_whago")
ProgressBarBad/base_type = &"ProgressBar"
ProgressBarBad/styles/fill = SubResource("StyleBoxFlat_d8x3d")
ProgressBarDelay/base_type = &"ProgressBar"
ProgressBarDelay/styles/background = SubResource("StyleBoxEmpty_hofdy")
ProgressBarDelay/styles/fill = SubResource("StyleBoxFlat_lmfyq")
ProgressBarDelayHovered/base_type = &"ProgressBar"
ProgressBarDelayHovered/styles/background = SubResource("StyleBoxEmpty_wv8md")
ProgressBarDelayHovered/styles/fill = SubResource("StyleBoxFlat_c4ulf")
ProgressBarGood/base_type = &"ProgressBar"
ProgressBarGood/styles/fill = SubResource("StyleBoxFlat_8723n")
RichTextLabel/fonts/bold_font = null
RichTextLabel/fonts/bold_italics_font = null
RichTextLabel/fonts/italics_font = null
SelectedLabel/base_type = &"Label"
SelectedLabel/colors/font_color = Color(0.973535, 0.973535, 0.973535, 1)
SelectedLabel/font_sizes/font_size = 24
SelectedLabel/fonts/font = null
SelectedLabel/styles/normal = SubResource("StyleBoxFlat_opsya")
TabContainer/colors/font_disabled_color = Color(0.698039, 0.133333, 0.203922, 1)
TabContainer/colors/font_hovered_color = Color(0.235294, 0.231373, 0.431373, 1)
TabContainer/colors/font_selected_color = Color(0.973535, 0.973535, 0.973535, 1)
TabContainer/colors/font_unselected_color = Color(0.973535, 0.973535, 0.973535, 1)
TabContainer/styles/panel = SubResource("StyleBoxFlat_8g14u")
TabContainer/styles/tab_disabled = SubResource("StyleBoxFlat_qnvbk")
TabContainer/styles/tab_focus = SubResource("StyleBoxEmpty_d8x3d")
TabContainer/styles/tab_hovered = SubResource("StyleBoxFlat_4bfjk")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_ojvr3")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_lop2v")
Tree/colors/children_hl_line_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
Tree/colors/font_color = Color(0.973535, 0.973535, 0.973535, 1)
Tree/colors/font_disabled_color = Color(0.698039, 0.133333, 0.203922, 1)
Tree/colors/font_hovered_color = Color(0.235294, 0.231373, 0.431373, 1)
Tree/colors/font_selected_color = Color(0.973535, 0.973535, 0.973535, 1)
Tree/colors/guide_color = Color(0, 0, 0, 0)
Tree/colors/parent_hl_line_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
Tree/colors/relationship_line_color = Color(0.0392157, 0.0392157, 0.0392157, 1)
Tree/constants/inner_item_margin_left = 4
Tree/constants/inner_item_margin_right = 4
Tree/constants/item_margin = 0
Tree/styles/button_hover = SubResource("StyleBoxEmpty_0ahyh")
Tree/styles/button_pressed = SubResource("StyleBoxEmpty_83bj2")
Tree/styles/focus = SubResource("StyleBoxFlat_rr4b1")
Tree/styles/hovered = SubResource("StyleBoxFlat_bcw1c")
Tree/styles/panel = SubResource("StyleBoxFlat_xi1kj")
Tree/styles/selected = SubResource("StyleBoxFlat_rrcvo")
Tree/styles/selected_focus = SubResource("StyleBoxFlat_wvge0")
VScrollBar/styles/grabber = SubResource("StyleBoxFlat_v0ggg")
VScrollBar/styles/grabber_highlight = SubResource("StyleBoxFlat_kvvmu")
VScrollBar/styles/grabber_pressed = SubResource("StyleBoxFlat_rum38")
VScrollBar/styles/scroll = SubResource("StyleBoxFlat_5wbgk")
VScrollBar/styles/scroll_focus = SubResource("StyleBoxEmpty_s1fdf")
WaitingButton/base_type = &"Button"
WaitingButton/colors/font_color = Color(0.698039, 0.133333, 0.203922, 1)
WaitingButton/colors/font_focus_color = Color(0.698039, 0.133333, 0.203922, 1)
WaitingButton/colors/font_hover_color = Color(0, 0, 0, 1)
WaitingButton/colors/font_hover_pressed_color = Color(0.698039, 0.133333, 0.203922, 1)
WaitingButton/colors/font_pressed_color = Color(0.698039, 0.133333, 0.203922, 1)
WaitingButton/styles/hover = SubResource("StyleBoxFlat_x127s")
WaitingButton/styles/normal = SubResource("StyleBoxFlat_qjhx0")
WaitingButton/styles/pressed = SubResource("StyleBoxFlat_u427p")

View File

@@ -0,0 +1,56 @@
[gd_scene format=3 uid="uid://coug8dvtetdu6"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/labels/credits_label.gd" id="1_ao6uf"]
[node name="CreditsLabel" type="RichTextLabel"]
custom_minimum_size = Vector2(1280, 0)
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 5
bbcode_enabled = true
text = "[font_size=48]Collaborators[/font_size]
[font_size=32]Role[/font_size]
Person 1
Person 2
[url=]Person w/ Link[/url]
[font_size=48]Sourced[/font_size]
[font_size=32]Asset Type[/font_size]
[font_size=24]Use Case[/font_size]
Author: [url=]Name[/url]
Source: [url=]Domain : webpage.html[/url]
License: [url=]License[/url]
[font_size=24]Godot Engine Logo[/font_size]
Author: Andrea Calabró
Source: [url=https://godotengine.org/press/]godotengine.org : press[/url]
License: [url=https://github.com/godotengine/godot/blob/master/LOGO_LICENSE.txt]CC BY 4.0 International[/url]
[font_size=48]Tools[/font_size]
[font_size=24]Godot[/font_size]
[img=80]res:///menus/assets/godot_engine_logo/logo_vertical_color_dark.png[/img]
Author: [url=https://godotengine.org/contact]Juan Linietsky, Ariel Manzur, and contributors[/url]
Source: [url=https://godotengine.org/]godotengine.org[/url]
License: [url=https://github.com/godotengine/godot/blob/master/LICENSE.txt]MIT License[/url]
[font_size=24]Godot Minimal Game Template[/font_size]
[img=80]res:///menus/assets/plugin_logo/logo.png[/img]
Author: [url=https://github.com/Maaack/Godot-Minimal-Game-Template/graphs/contributors]Marek Belski and contributors[/url]
Source: [url=https://github.com/Maaack/Godot-Minimal-Game-Template]github: Godot-Minimal-Game-Template[/url]
License: [url=LICENSE.txt]MIT License[/url]
[font_size=24]Git[/font_size]
[img=80]res:///menus/assets/git_logo/Git-Logo-2Color.png[/img]
Author: [url=https://github.com/torvalds]Linus Torvalds[/url]
Source: [url=https://git-scm.com/downloads]git-scm.com[/url]
License: [url=https://opensource.org/licenses/GPL-2.0]GNU General Public License version 2[/url]
"
fit_content = true
scroll_active = false
horizontal_alignment = 1
script = ExtResource("1_ao6uf")

View File

@@ -0,0 +1,29 @@
@tool
extends Control
@onready var credits_label : RichTextLabel = %CreditsLabel
@export var input_scroll_speed : float = 10.0
var _line_number : float = 0
func _on_visibility_changed() -> void:
if visible:
credits_label.scroll_to_line(0)
credits_label.grab_focus()
func _ready() -> void:
visibility_changed.connect(_on_visibility_changed)
func _process(delta : float) -> void:
if Engine.is_editor_hint() or not visible:
return
var input_axis = Input.get_axis("ui_up", "ui_down")
if abs(input_axis) > 0.5:
_line_number += input_axis * delta * input_scroll_speed
var max_lines = credits_label.get_line_count() - credits_label.get_visible_line_count()
if _line_number < 0:
_line_number = 0
if _line_number > max_lines:
_line_number = max_lines
credits_label.scroll_to_line(round(_line_number))

View File

@@ -0,0 +1 @@
uid://dyf426wsn270l

View File

@@ -0,0 +1,19 @@
[gd_scene format=3 uid="uid://1y3twyudd5l8"]
[ext_resource type="Script" path="res://menus/scenes/credits/scrollable_credits.gd" id="1_gcb84"]
[ext_resource type="PackedScene" path="res://menus/scenes/credits/credits_label.tscn" id="2_nuv7p"]
[node name="ScrollableCredits" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_gcb84")
[node name="CreditsLabel" parent="." instance=ExtResource("2_nuv7p")]
unique_name_in_owner = true
layout_mode = 1
fit_content = false
scroll_active = true

View File

@@ -0,0 +1,92 @@
@tool
extends Control
signal end_reached
@export var auto_scroll_speed: float = 60.0
@export var input_scroll_speed : float = 400.0
@export var scroll_restart_delay : float = 1.5
@export var scroll_paused : bool = false
var timer : Timer = Timer.new()
var _current_scroll_position : float = 0.0
@onready var header_space : Control = %HeaderSpace
@onready var footer_space : Control = %FooterSpace
@onready var credits_label : Control = %CreditsLabel
@onready var scroll_container : ScrollContainer = %ScrollContainer
func set_header_and_footer() -> void:
header_space.custom_minimum_size.y = size.y
footer_space.custom_minimum_size.y = size.y
credits_label.custom_minimum_size.x = size.x
func _on_resized() -> void:
set_header_and_footer()
_current_scroll_position = scroll_container.scroll_vertical
func _end_reached() -> void:
scroll_paused = true
end_reached.emit()
func is_end_reached() -> bool:
var _end_of_credits_vertical = credits_label.size.y + header_space.size.y
return scroll_container.scroll_vertical > _end_of_credits_vertical
func _check_end_reached() -> void:
if not is_end_reached():
return
_end_reached()
func _scroll_container(amount : float) -> void:
if not visible or scroll_paused:
return
_current_scroll_position += amount
scroll_container.scroll_vertical = round(_current_scroll_position)
_check_end_reached()
func _on_gui_input(event : InputEvent) -> void:
# Captures the mouse scroll wheel input event
if event is InputEventMouseButton:
scroll_paused = true
_start_scroll_restart_timer()
_check_end_reached()
func _on_scroll_started() -> void:
# Captures the touch input event
scroll_paused = true
_start_scroll_restart_timer()
func _start_scroll_restart_timer() -> void:
timer.start(scroll_restart_delay)
func _on_scroll_restart_timer_timeout() -> void:
_current_scroll_position = scroll_container.scroll_vertical
scroll_paused = false
func _on_visibility_changed() -> void:
if visible:
scroll_container.scroll_vertical = 0
_current_scroll_position = scroll_container.scroll_vertical
scroll_paused = false
func _ready() -> void:
scroll_container.scroll_started.connect(_on_scroll_started)
gui_input.connect(_on_gui_input)
resized.connect(_on_resized)
visibility_changed.connect(_on_visibility_changed)
timer.timeout.connect(_on_scroll_restart_timer_timeout)
set_header_and_footer()
add_child(timer)
scroll_paused = false
func _process(delta : float) -> void:
var input_axis = Input.get_axis("ui_up", "ui_down")
if input_axis != 0:
_scroll_container(input_axis * input_scroll_speed * delta)
else:
_scroll_container(auto_scroll_speed * delta)
func _exit_tree() -> void:
_current_scroll_position = scroll_container.scroll_vertical

View File

@@ -0,0 +1 @@
uid://c1ac47rxkskux

View File

@@ -0,0 +1,40 @@
[gd_scene format=3 uid="uid://c6r0n1kinvqj7"]
[ext_resource type="Script" path="res://menus/scenes/credits/scrolling_credits.gd" id="1_hy305"]
[ext_resource type="PackedScene" path="res://menus/scenes/credits/credits_label.tscn" id="2_ymsg3"]
[node name="ScrollingCredits" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_hy305")
[node name="ScrollContainer" type="ScrollContainer" parent="."]
unique_name_in_owner = true
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
scroll_vertical = 0
horizontal_scroll_mode = 0
vertical_scroll_mode = 3
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="HeaderSpace" type="Control" parent="ScrollContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 720)
layout_mode = 2
[node name="CreditsLabel" parent="ScrollContainer/VBoxContainer" instance=ExtResource("2_ymsg3")]
unique_name_in_owner = true
layout_mode = 2
[node name="FooterSpace" type="Control" parent="ScrollContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 720)
layout_mode = 2

View File

@@ -0,0 +1,63 @@
@tool
extends "res://menus/scenes/credits/scrolling_credits.gd"
## Defines the path to the main menu. Hides the Main Menu button if not set.
@export_file("*.tscn") var main_menu_scene_path : String
## This option forces the mouse to be visible when the menu shows up.
## Useful for games that capture the mouse, and don't automatically return it.
@export var force_mouse_mode_visible : bool = false
@onready var end_message_panel = %EndMessagePanel
@onready var exit_button = %ExitButton
@onready var menu_button = %MenuButton
@onready var init_mouse_filter : MouseFilter = mouse_filter
## If Maaack's Scene Loader is installed, then it will be used to change scenes.
@onready var scene_loader_node = get_tree().root.get_node_or_null(^"SceneLoader")
func get_main_menu_scene_path() -> String:
return main_menu_scene_path
func _end_reached() -> void:
end_message_panel.show()
mouse_filter = Control.MOUSE_FILTER_STOP
if force_mouse_mode_visible:
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
super._end_reached()
func load_main_menu() -> void:
if scene_loader_node:
scene_loader_node.load_scene(get_main_menu_scene_path())
else:
get_tree().change_scene_to_file(get_main_menu_scene_path())
func exit_game() -> void:
if OS.has_feature("web"):
load_main_menu()
get_tree().quit()
func _on_visibility_changed() -> void:
if visible:
end_message_panel.hide()
mouse_filter = init_mouse_filter
super._on_visibility_changed()
func _ready() -> void:
if get_main_menu_scene_path().is_empty():
menu_button.hide()
if OS.has_feature("web"):
exit_button.hide()
end_message_panel.hide()
super._ready()
func _unhandled_input(event : InputEvent) -> void:
if event.is_action_released("ui_cancel"):
if not end_message_panel.visible:
_end_reached()
else:
exit_game()
func _on_exit_button_pressed():
exit_game()
func _on_menu_button_pressed():
load_main_menu()

View File

@@ -0,0 +1 @@
uid://do6bw0acofct2

View File

@@ -0,0 +1,85 @@
[gd_scene format=3 uid="uid://bn4qfscxapbnx"]
[ext_resource type="PackedScene" path="res://menus/scenes/credits/scrolling_credits.tscn" id="1_eh07o"]
[ext_resource type="Script" path="res://menus/scenes/end_credits/end_credits.gd" id="2_5f0mc"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="3_ixi0r"]
[node name="EndCredits" instance=ExtResource("1_eh07o")]
script = ExtResource("2_5f0mc")
main_menu_scene_path = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
force_mouse_mode_visible = false
[node name="BackgroundColor" type="ColorRect" parent="." index="0"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="BackgroundTextureRect" type="TextureRect" parent="." index="1"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
expand_mode = 1
stretch_mode = 5
[node name="CenterContainer" type="CenterContainer" parent="." index="3"]
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
size_flags_horizontal = 3
size_flags_vertical = 3
mouse_filter = 2
[node name="EndMessagePanel" type="Panel" parent="CenterContainer" index="0"]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(360, 120)
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/EndMessagePanel" index="0"]
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
[node name="ThankPlayer" type="Label" parent="CenterContainer/EndMessagePanel/VBoxContainer" index="0"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Thanks for playing!"
horizontal_alignment = 1
vertical_alignment = 1
[node name="CenterContainer" type="CenterContainer" parent="CenterContainer/EndMessagePanel/VBoxContainer" index="1"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/EndMessagePanel/VBoxContainer/CenterContainer" index="0"]
custom_minimum_size = Vector2(256, 0)
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 16
script = ExtResource("3_ixi0r")
[node name="ExitButton" type="Button" parent="CenterContainer/EndMessagePanel/VBoxContainer/CenterContainer/HBoxContainer" index="0"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Exit"
[node name="MenuButton" type="Button" parent="CenterContainer/EndMessagePanel/VBoxContainer/CenterContainer/HBoxContainer" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Menu"
[connection signal="pressed" from="CenterContainer/EndMessagePanel/VBoxContainer/CenterContainer/HBoxContainer/ExitButton" to="." method="_on_exit_button_pressed"]
[connection signal="pressed" from="CenterContainer/EndMessagePanel/VBoxContainer/CenterContainer/HBoxContainer/MenuButton" to="." method="_on_menu_button_pressed"]

View File

@@ -0,0 +1,12 @@
extends SubViewport
## Script to apply the anti-aliasing setting from [PlayerConfig] to a [SubViewport].
## The name of the anti-aliasing variable in the [ConfigFile].
@export var anti_aliasing_key : StringName = "Anti-aliasing"
## The name of the section of the anti-aliasing variable in the [ConfigFile].
@export var video_section : StringName = AppSettings.VIDEO_SECTION
func _ready() -> void:
var anti_aliasing : int = PlayerConfig.get_config(video_section, anti_aliasing_key, Viewport.MSAA_DISABLED)
msaa_2d = anti_aliasing as MSAA
msaa_3d = anti_aliasing as MSAA

View File

@@ -0,0 +1 @@
uid://sriramsx75sj

View File

@@ -0,0 +1,61 @@
[gd_scene format=3 uid="uid://c3cpdpo8fcass"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/pause_menu_controller.gd" id="1_78lb1"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/pause_menu_layer.tscn" id="2_fc12x"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/extras/scripts/level_loader.gd" id="3_xinp6"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/extras/scripts/level_manager.gd" id="4_8vrg7"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/game_won_window.tscn" id="5_5qwaf"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/level_lost_window.tscn" id="6_0tw8m"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/level_won_window.tscn" id="7_gpclb"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/extras/scripts/scene_lister.gd" id="8_yl32o"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/configurable_sub_viewport.gd" id="9_iioxl"]
[node name="GameUI" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="PauseMenuController" type="Node" parent="." node_paths=PackedStringArray("focused_viewport")]
script = ExtResource("1_78lb1")
pause_menu_packed = ExtResource("2_fc12x")
focused_viewport = NodePath("../ViewportContainer/ConfigurableSubViewport")
[node name="LevelLoader" type="Node" parent="." node_paths=PackedStringArray("level_container")]
script = ExtResource("3_xinp6")
level_container = NodePath("../ViewportContainer/ConfigurableSubViewport")
[node name="LevelManager" type="Node" parent="." node_paths=PackedStringArray("level_loader", "scene_lister")]
script = ExtResource("4_8vrg7")
level_loader = NodePath("../LevelLoader")
starting_level_path = "res://menus/scenes/game_scene/levels/level_1.tscn"
scene_lister = NodePath("SceneLister")
main_menu_scene_path = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
ending_scene_path = "res://menus/scenes/end_credits/end_credits.tscn"
game_won_scene = ExtResource("5_5qwaf")
level_lost_scene = ExtResource("6_0tw8m")
level_won_scene = ExtResource("7_gpclb")
[node name="SceneLister" type="Node" parent="LevelManager"]
script = ExtResource("8_yl32o")
files = Array[String](["res://menus/scenes/game_scene/levels/level_1.tscn", "res://menus/scenes/game_scene/levels/level_2.tscn", "res://menus/scenes/game_scene/levels/level_3.tscn"])
directory = "res://menus/scenes/game_scene/levels"
[node name="ViewportContainer" type="SubViewportContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
stretch = true
[node name="ConfigurableSubViewport" type="SubViewport" parent="ViewportContainer"]
handle_input_locally = false
audio_listener_enable_2d = true
audio_listener_enable_3d = true
size = Vector2i(1280, 720)
render_target_update_mode = 4
script = ExtResource("9_iioxl")

View File

@@ -0,0 +1,21 @@
extends Label
@onready var action_names := AppSettings.get_action_names()
func _get_inputs_as_string() -> String:
var all_inputs : String = ""
var is_first : bool = true
for action_name in action_names:
if Input.is_action_pressed(action_name):
if is_first:
is_first = false
all_inputs += action_name
else:
all_inputs += " + " + action_name
return all_inputs
func _process(_delta : float) -> void:
if Input.is_anything_pressed():
text = _get_inputs_as_string()
else:
text = ""

View File

@@ -0,0 +1 @@
uid://dno0fo2wvo8nn

View File

@@ -0,0 +1,24 @@
extends Node
signal level_lost
signal level_won(level_path : String)
@warning_ignore("unused_signal")
signal level_changed(level_path : String)
## Optional path to the next level if using an open world level system.
@export_file("*.tscn") var next_level_path : String
func _on_lose_button_pressed() -> void:
level_lost.emit()
func _on_win_button_pressed() -> void:
level_won.emit(next_level_path)
func open_tutorials() -> void:
%TutorialManager.open_tutorials()
func _ready() -> void:
open_tutorials()
func _on_tutorial_button_pressed() -> void:
open_tutorials()

View File

@@ -0,0 +1 @@
uid://d3st2mmp4nlec

View File

@@ -0,0 +1,91 @@
[gd_scene format=3 uid="uid://blhb80jdsu3j5"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/levels/level.gd" id="1_urxkg"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="2_7sa42"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/input_display_label.gd" id="3_l3jem"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/tutorial_manager.gd" id="4_rqjq6"]
[ext_resource type="PackedScene" path="res://menus/scenes/game_scene/tutorials/tutorial_1.tscn" id="5_n53h6"]
[node name="Level1" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_urxkg")
next_level_path = "res://menus/scenes/game_scene/levels/level_2.tscn"
[node name="BackgroundColor" type="ColorRect" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 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="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
theme_override_constants/separation = 16
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "Example Level #1"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 32
script = ExtResource("2_7sa42")
[node name="LoseButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Lose"
[node name="WinButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Win"
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="TutorialButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "Tutorial"
[node name="InputDisplayLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
horizontal_alignment = 1
script = ExtResource("3_l3jem")
[node name="TutorialManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("4_rqjq6")
tutorial_scenes = Array[PackedScene]([ExtResource("5_n53h6")])
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/LoseButton" to="." method="_on_lose_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/WinButton" to="." method="_on_win_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer2/TutorialButton" to="." method="_on_tutorial_button_pressed"]

View File

@@ -0,0 +1,97 @@
[gd_scene format=3 uid="uid://j11k4ykeskdk"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/levels/level.gd" id="1_dm1lp"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="2_xr7u2"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/input_display_label.gd" id="3_30wab"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/tutorial_manager.gd" id="4_wuxsx"]
[ext_resource type="PackedScene" path="res://menus/scenes/game_scene/tutorials/tutorial_2.tscn" id="5_bab38"]
[node name="Level2" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_dm1lp")
next_level_path = "res://menus/scenes/game_scene/levels/level_3.tscn"
[node name="BackgroundColor" type="ColorRect" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 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="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
theme_override_constants/separation = 16
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "Example Level #2"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 32
script = ExtResource("2_xr7u2")
[node name="LoseButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Lose"
[node name="WinButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Win"
[node name="LoseButton2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Lose"
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="TutorialButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "Tutorial"
[node name="InputDisplayLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
horizontal_alignment = 1
script = ExtResource("3_30wab")
[node name="TutorialManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("4_wuxsx")
tutorial_scenes = Array[PackedScene]([ExtResource("5_bab38")])
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/LoseButton" to="." method="_on_lose_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/WinButton" to="." method="_on_win_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/LoseButton2" to="." method="_on_lose_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer2/TutorialButton" to="." method="_on_tutorial_button_pressed"]

View File

@@ -0,0 +1,102 @@
[gd_scene format=3 uid="uid://cbxhfrfjktqmp"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/levels/level.gd" id="1_ufhlx"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="2_rjwxn"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/input_display_label.gd" id="3_m48ar"]
[ext_resource type="Script" path="res://menus/scenes/game_scene/tutorial_manager.gd" id="4_j0xup"]
[ext_resource type="PackedScene" path="res://menus/scenes/game_scene/tutorials/tutorial_3.tscn" id="5_hpu0q"]
[node name="Level3" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_ufhlx")
[node name="BackgroundColor" type="ColorRect" parent="."]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 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="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
layout_mode = 2
theme_override_constants/separation = 16
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 32
text = "Example Level #3"
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator" type="HSeparator" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 32
script = ExtResource("2_rjwxn")
[node name="WinButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Win"
[node name="LoseButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Lose"
[node name="LoseButton2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Lose"
[node name="LoseButton3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
text = "Lose"
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="TutorialButton" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "Tutorial"
[node name="InputDisplayLabel" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
size_flags_horizontal = 3
horizontal_alignment = 1
script = ExtResource("3_m48ar")
[node name="TutorialManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("4_j0xup")
tutorial_scenes = Array[PackedScene]([ExtResource("5_hpu0q")])
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/WinButton" to="." method="_on_win_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/LoseButton" to="." method="_on_lose_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/LoseButton2" to="." method="_on_lose_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer/LoseButton3" to="." method="_on_lose_button_pressed"]
[connection signal="pressed" from="MarginContainer/VBoxContainer/HBoxContainer2/TutorialButton" to="." method="_on_tutorial_button_pressed"]

View File

@@ -0,0 +1,27 @@
extends Node
## A script to add into a level or game scene to display tutorial windows.
## A list of tutorial scenes to open, one after the other.
@export var tutorial_scenes : Array[PackedScene]
## If true, open the tutorials when the scene becomes ready.
@export var auto_open : bool = false
## Delay before opening the tutorials when the scene becomes ready.
@export var auto_open_delay : float = 0.25
func open_tutorials() -> void:
var _initial_focus_control : Control = get_viewport().gui_get_focus_owner()
for tutorial_scene in tutorial_scenes:
var tutorial_menu : Control = tutorial_scene.instantiate()
if tutorial_menu == null:
push_warning("tutorial failed to open %s" % tutorial_scene)
return
get_tree().current_scene.call_deferred("add_child", tutorial_menu)
await tutorial_menu.tree_exited
if is_inside_tree() and _initial_focus_control:
_initial_focus_control.grab_focus()
func _ready() -> void:
if auto_open:
if auto_open_delay > 0.0:
await get_tree().create_timer(auto_open_delay, false).timeout
open_tutorials.call_deferred()

View File

@@ -0,0 +1 @@
uid://dnuloyvbcw7jd

View File

@@ -0,0 +1,19 @@
[gd_scene format=3 uid="uid://ccho26xthu50o"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_jp4os"]
[node name="OverlaidWindow" instance=ExtResource("1_jp4os")]
custom_minimum_size = Vector2(420, 200)
update_content = true
text = "Click the Win button to progress.
Click the Lose button to try again."
title = "Tutorial"
title_font_size = 20
[node name="TitleLabel" parent="ContentContainer/BoxContainer/TitleMargin/BoxContainer" index="0"]
theme_override_font_sizes/font_size = 20
text = "Tutorial"
[node name="DescriptionLabel" parent="ContentContainer/BoxContainer/BodyMargin" index="0"]
text = "Click the Win button to progress.
Click the Lose button to try again."

View File

@@ -0,0 +1,17 @@
[gd_scene format=3 uid="uid://vv0uamr284l6"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_83bj0"]
[node name="OverlaidWindow" instance=ExtResource("1_83bj0")]
custom_minimum_size = Vector2(420, 200)
update_content = true
text = "Pressing Escape will open the Pause Menu."
title = "Tutorial"
title_font_size = 20
[node name="TitleLabel" parent="ContentContainer/BoxContainer/TitleMargin/BoxContainer" index="0"]
theme_override_font_sizes/font_size = 20
text = "Tutorial"
[node name="DescriptionLabel" parent="ContentContainer/BoxContainer/BodyMargin" index="0"]
text = "Pressing Escape will open the Pause Menu."

View File

@@ -0,0 +1,17 @@
[gd_scene format=3 uid="uid://bxxaeanswkvyy"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_301qr"]
[node name="OverlaidWindow" instance=ExtResource("1_301qr")]
custom_minimum_size = Vector2(420, 200)
update_content = true
text = "The label at the bottom-center displays the current input action detected, if any are setup for the project."
title = "Tutorial"
title_font_size = 20
[node name="TitleLabel" parent="ContentContainer/BoxContainer/TitleMargin/BoxContainer" index="0"]
theme_override_font_sizes/font_size = 20
text = "Tutorial"
[node name="DescriptionLabel" parent="ContentContainer/BoxContainer/BodyMargin" index="0"]
text = "The label at the bottom-center displays the current input action detected, if any are setup for the project."

View File

@@ -0,0 +1,31 @@
extends Control
## Loads a simple ItemList node within a margin container. SceneLister updates
## the available scenes in the directory provided. Activating a level will update
## the GameState's current_level, and emit a signal. The main menu node will trigger
## a load action from that signal.
signal level_selected
@onready var level_buttons_container: ItemList = %LevelButtonsContainer
@onready var scene_lister: SceneLister = $SceneLister
var level_paths : Array[String]
func _ready() -> void:
add_levels_to_container()
## A fresh level list is propgated into the ItemList, and the file names are cleaned
func add_levels_to_container() -> void:
level_buttons_container.clear()
level_paths.clear()
for file_path in scene_lister.files:
var file_name : String = file_path.get_file() # e.g., "level_1.tscn"
file_name = file_name.trim_suffix(".tscn") # Remove the ".tscn" extension
file_name = file_name.replace("_", " ") # Replace underscores with spaces
file_name = file_name.capitalize() # Convert to proper case
var button_name := str(file_name)
level_buttons_container.add_item(button_name)
level_paths.append(file_path)
func _on_level_buttons_container_item_activated(index: int) -> void:
level_selected.emit()

View File

@@ -0,0 +1 @@
uid://jylpc6gx3p3i

View File

@@ -0,0 +1,49 @@
[gd_scene format=3 uid="uid://dsdir3jef5bwu"]
[ext_resource type="Script" path="res://menus/scenes/menus/level_select_menu/level_select_menu.gd" id="1_421qk"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="2_7xilf"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/extras/scripts/scene_lister.gd" id="3_6cc2i"]
[node name="LevelSelectMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_421qk")
[node name="Control" type="Control" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("2_7xilf")
[node name="LevelButtonsContainer" type="ItemList" parent="Control"]
unique_name_in_owner = true
custom_minimum_size = Vector2(400, 0)
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -17.5
offset_right = 200.0
offset_bottom = 17.5
grow_horizontal = 2
grow_vertical = 2
auto_height = true
item_count = 1
item_0/text = "1 - ExampleLevel"
[node name="SceneLister" type="Node" parent="."]
script = ExtResource("3_6cc2i")
files = Array[String](["res://menus/scenes/game_scene/levels/level_1.tscn", "res://menus/scenes/game_scene/levels/level_2.tscn", "res://menus/scenes/game_scene/levels/level_3.tscn"])
directory = "res://menus/scenes/game_scene/levels"
[connection signal="item_activated" from="Control/LevelButtonsContainer" to="." method="_on_level_buttons_container_item_activated"]

View File

@@ -0,0 +1 @@
extends MainMenu

View File

@@ -0,0 +1 @@
uid://g1m1u0savje4

View File

@@ -0,0 +1,12 @@
[gd_scene format=3 uid="uid://dhdr6yxca023l"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/main_menu/main_menu.tscn" id="1_6pasy"]
[ext_resource type="Script" path="res://menus/scenes/menus/main_menu/main_menu.gd" id="2_i8spl"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/main_menu_options_window.tscn" id="3_qe0nm"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/main_menu_credits_window.tscn" id="4_mov4g"]
[node name="MainMenu" instance=ExtResource("1_6pasy")]
script = ExtResource("2_i8spl")
game_scene_path = "res://menus/scenes/game_scene/game_ui.tscn"
options_packed_scene = ExtResource("3_qe0nm")
credits_packed_scene = ExtResource("4_mov4g")

View File

@@ -0,0 +1,35 @@
extends MainMenu
## Main menu extension that animates the title and menu fading in.
## The animation can be skipped by the player with any input.
var animation_state_machine : AnimationNodeStateMachinePlayback
func intro_done() -> void:
animation_state_machine.travel("OpenMainMenu")
func _is_in_intro() -> bool:
return animation_state_machine.get_current_node() == "Intro"
func _event_skips_intro(event : InputEvent) -> bool:
return event.is_action_released("ui_accept") or \
event.is_action_released("ui_select") or \
event.is_action_released("ui_cancel") or \
_event_is_mouse_button_released(event)
func _open_sub_menu(menu : PackedScene) -> Node:
animation_state_machine.travel("OpenSubMenu")
return super._open_sub_menu(menu)
func _close_sub_menu() -> void:
super._close_sub_menu()
animation_state_machine.travel("OpenMainMenu")
func _input(event : InputEvent) -> void:
if _is_in_intro() and _event_skips_intro(event):
intro_done()
return
super._input(event)
func _ready() -> void:
super._ready()
animation_state_machine = $MenuAnimationTree.get("parameters/playback")

View File

@@ -0,0 +1 @@
uid://cgj703gjwdvs1

View File

@@ -0,0 +1,356 @@
[gd_scene format=3 uid="uid://cxeuh57i33qrx"]
[ext_resource type="PackedScene" uid="uid://c6k5nnpbypshi" path="res://addons/maaacks_game_template/base/nodes/menus/main_menu/main_menu.tscn" id="1_sbi1w"]
[ext_resource type="Script" uid="uid://cgj703gjwdvs1" path="res://menus/scenes/menus/main_menu/main_menu_with_animations.gd" id="2_ytpwg"]
[ext_resource type="PackedScene" uid="uid://xkqu58vkydps" path="res://menus/scenes/windows/main_menu_options_window.tscn" id="3_8i6b8"]
[ext_resource type="PackedScene" uid="uid://cvweffl7bo7bj" path="res://menus/scenes/windows/main_menu_credits_window.tscn" id="4_t55r5"]
[sub_resource type="Animation" id="1"]
resource_name = "Intro"
length = 2.4
tracks/0/type = "method"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(2.4),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"intro_done"
}]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MenuContainer/TitleMargin/TitleContainer:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.8),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MenuContainer/SubTitleMargin/SubTitleContainer:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.8, 1.6),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 1.6, 2.4),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("MouseFilter:mouse_filter")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0, 2.4),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [0, 2]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VersionMargin/VersionContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0, 1.6, 2.4),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="6"]
resource_name = "OpenMainMenu"
length = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MenuContainer/TitleMargin/TitleContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MenuContainer/SubTitleMargin/SubTitleContainer:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MouseFilter:mouse_filter")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [2]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("MenuContainer:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VersionMargin/VersionContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer:lock")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="4"]
resource_name = "OpenSubMenu"
length = 0.2
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MenuContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
[sub_resource type="Animation" id="2"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("MenuContainer/TitleMargin/TitleContainer:modulate")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MenuContainer/SubTitleMargin/SubTitleContainer:modulate")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer:modulate")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("MouseFilter:mouse_filter")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [2]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("MenuContainer:modulate")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("VersionMargin/VersionContainer:modulate")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/6/type = "value"
tracks/6/imported = false
tracks/6/enabled = true
tracks/6/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer:lock")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2kqig"]
_data = {
&"Intro": SubResource("1"),
&"OpenMainMenu": SubResource("6"),
&"OpenSubMenu": SubResource("4"),
&"RESET": SubResource("2")
}
[sub_resource type="AnimationNodeAnimation" id="7"]
animation = &"Intro"
[sub_resource type="AnimationNodeAnimation" id="10"]
animation = &"OpenMainMenu"
[sub_resource type="AnimationNodeAnimation" id="13"]
animation = &"OpenSubMenu"
[sub_resource type="AnimationNodeStateMachineTransition" id="11"]
advance_condition = &"intro_done"
[sub_resource type="AnimationNodeStateMachineTransition" id="14"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_j0orr"]
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_63dxc"]
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_vikuh"]
states/End/position = Vector2(958, 123)
states/Intro/node = SubResource("7")
states/Intro/position = Vector2(259, 123)
states/OpenMainMenu/node = SubResource("10")
states/OpenMainMenu/position = Vector2(472, 123)
states/OpenSubMenu/node = SubResource("13")
states/OpenSubMenu/position = Vector2(734, 123)
states/Start/position = Vector2(82, 123)
transitions = ["Intro", "OpenMainMenu", SubResource("11"), "OpenMainMenu", "OpenSubMenu", SubResource("14"), "Start", "Intro", SubResource("AnimationNodeStateMachineTransition_j0orr"), "OpenSubMenu", "OpenMainMenu", SubResource("AnimationNodeStateMachineTransition_63dxc")]
graph_offset = Vector2(-180.277, 49)
[node name="MainMenu" unique_id=1582294538 instance=ExtResource("1_sbi1w")]
script = ExtResource("2_ytpwg")
game_scene_path = "uid://cukfdjcnb5tm6"
options_packed_scene = ExtResource("3_8i6b8")
credits_packed_scene = ExtResource("4_t55r5")
[node name="MenuAnimationPlayer" type="AnimationPlayer" parent="." index="1" unique_id=53025128]
libraries/ = SubResource("AnimationLibrary_2kqig")
[node name="MenuAnimationTree" type="AnimationTree" parent="." index="2" unique_id=1694007958]
tree_root = SubResource("AnimationNodeStateMachine_vikuh")
anim_player = NodePath("../MenuAnimationPlayer")
parameters/conditions/intro_done = false
[node name="TitleContainer" parent="MenuContainer/TitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="TitleLabel" parent="MenuContainer/TitleMargin/TitleContainer" index="0"]
text = "GGJ26"
[node name="SubTitleContainer" parent="MenuContainer/SubTitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="MenuButtonsContainer" parent="MenuContainer/MenuButtonsMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="MenuButtonsBoxContainer" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer" index="0"]
lock = true
[node name="VersionContainer" parent="VersionMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="MouseFilter" type="Control" parent="." index="6" unique_id=420264660]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
metadata/_edit_lock_ = true

View File

@@ -0,0 +1,38 @@
@tool
extends ListOptionControl
func _set_input_device() -> void:
var current_setting : Variant = _get_setting(default_value)
if current_setting is bool:
current_setting = &"Default"
AudioServer.input_device = _get_setting(default_value)
func _add_microphone_audio_stream() -> void:
var instance := AudioStreamPlayer.new()
instance.stream = AudioStreamMicrophone.new()
instance.autoplay = true
add_child.call_deferred(instance)
instance.ready.connect(_set_input_device)
func _ready() -> void:
if ProjectSettings.get_setting("audio/driver/enable_input", false):
if AudioServer.input_device.is_empty():
_add_microphone_audio_stream()
else:
_set_input_device()
if not Engine.is_editor_hint():
option_values = AudioServer.get_input_device_list()
else:
hide()
super._ready()
func _on_setting_changed(value : Variant) -> void:
if value >= option_values.size(): return
AudioServer.input_device = option_values[value]
super._on_setting_changed(value)
func _value_title_map(value : Variant) -> String:
if value is String:
return value
else:
return super._value_title_map(value)

View File

@@ -0,0 +1 @@
uid://dynv5vb7jhb5t

View File

@@ -0,0 +1,20 @@
[gd_scene format=3 uid="uid://cix0301eivn0f"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/option_control/list_option_control.tscn" id="1_07rmo"]
[ext_resource type="Script" path="res://menus/scenes/menus/options_menu/audio/audio_input_option_control.gd" id="2_l8m0l"]
[node name="AudioInputOptionControl" instance=ExtResource("1_07rmo")]
script = ExtResource("2_l8m0l")
option_name = "Input Device"
option_section = 2
key = "InputDevice"
section = "AudioSettings"
property_type = 4
[node name="OptionLabel" parent="." index="0"]
text = "Input Device :"
[node name="OptionButton" parent="." index="1"]
size_flags_horizontal = 3
text_overrun_behavior = 1
clip_text = true

View File

@@ -0,0 +1,9 @@
[gd_scene format=3 uid="uid://cml3v864u2ofy"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/audio/audio_options_menu.tscn" id="1_nu6ah"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/audio/audio_input_option_control.tscn" id="2_40jc8"]
[node name="Audio" instance=ExtResource("1_nu6ah")]
[node name="AudioInputOptionControl" parent="VBoxContainer" index="2" instance=ExtResource("2_40jc8")]
layout_mode = 2

View File

@@ -0,0 +1,65 @@
[gd_scene format=3 uid="uid://bd1ibe02iae8k"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="1_jvcy6"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/option_control/slider_option_control.tscn" id="2_qe5tt"]
[node name="Inputs" type="MarginContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme_override_constants/separation = 8
script = ExtResource("1_jvcy6")
search_depth = 5
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
theme_override_constants/margin_top = 32
theme_override_constants/margin_bottom = 32
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/MarginContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 8
alignment = 1
[node name="MouseSensitivityControl" parent="VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("2_qe5tt")]
layout_mode = 2
option_name = "Mouse Sensitivity"
option_section = 1
key = "MouseSensitivity"
section = "InputSettings"
[node name="OptionLabel" parent="VBoxContainer/MarginContainer/VBoxContainer/MouseSensitivityControl" index="0"]
text = "Mouse Sensitivity :"
[node name="HSlider" parent="VBoxContainer/MarginContainer/VBoxContainer/MouseSensitivityControl" index="1"]
min_value = 0.25
max_value = 2.0
tick_count = 8
[node name="JoypadSensitivityControl" parent="VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("2_qe5tt")]
layout_mode = 2
option_name = "Joypad Sensitivity"
option_section = 1
key = "JoypadSensitivity"
section = "InputSettings"
[node name="OptionLabel" parent="VBoxContainer/MarginContainer/VBoxContainer/JoypadSensitivityControl" index="0"]
text = "Joypad Sensitivity :"
[node name="HSlider" parent="VBoxContainer/MarginContainer/VBoxContainer/JoypadSensitivityControl" index="1"]
min_value = 0.25
max_value = 2.0
tick_count = 8
[editable path="VBoxContainer/MarginContainer/VBoxContainer/MouseSensitivityControl"]
[editable path="VBoxContainer/MarginContainer/VBoxContainer/JoypadSensitivityControl"]

View File

@@ -0,0 +1,5 @@
[gd_scene format=3 uid="uid://dpmvdprece0yg"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/input/input_icon_mapper.tscn" id="1_uqe1v"]
[node name="InputIconMapper" instance=ExtResource("1_uqe1v")]

View File

@@ -0,0 +1,14 @@
[gd_scene format=3 uid="uid://vbk4q2e0kwen"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/input/input_options_menu.tscn" id="1_hxdak"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/input/input_icon_mapper.tscn" id="2_5jnsn"]
[node name="Controls" instance=ExtResource("1_hxdak")]
[node name="InputActionsList" parent="VBoxContainer/InputMappingContainer" index="1" node_paths=PackedStringArray("input_icon_mapper")]
input_icon_mapper = NodePath("../../../InputIconMapper")
[node name="InputActionsTree" parent="VBoxContainer/InputMappingContainer" index="2" node_paths=PackedStringArray("input_icon_mapper")]
input_icon_mapper = NodePath("../../../InputIconMapper")
[node name="InputIconMapper" parent="." index="6" instance=ExtResource("2_5jnsn")]

View File

@@ -0,0 +1,39 @@
[gd_scene format=3 uid="uid://cuakr0787n2fg"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/input/input_options_menu.tscn" id="1_40c2t"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/option_control/slider_option_control.tscn" id="2_6biia"]
[node name="Controls" instance=ExtResource("1_40c2t")]
[node name="VBoxContainer" parent="." index="0"]
theme_override_constants/separation = 16
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer" index="0"]
layout_mode = 2
theme_override_constants/margin_top = 32
theme_override_constants/margin_bottom = 32
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/MarginContainer" index="0"]
layout_mode = 2
size_flags_vertical = 3
alignment = 1
[node name="MouseSensitivityControl" parent="VBoxContainer/MarginContainer/VBoxContainer" index="0" instance=ExtResource("2_6biia")]
layout_mode = 2
option_name = "Mouse Sensitivity"
option_section = 1
key = "MouseSensitivity"
section = "InputSettings"
[node name="OptionLabel" parent="VBoxContainer/MarginContainer/VBoxContainer/MouseSensitivityControl" index="0"]
text = "Mouse Sensitivity :"
[node name="HSlider" parent="VBoxContainer/MarginContainer/VBoxContainer/MouseSensitivityControl" index="1"]
min_value = 0.25
max_value = 2.0
tick_count = 8
[node name="HSeparator" type="HSeparator" parent="VBoxContainer" index="1"]
layout_mode = 2
[editable path="VBoxContainer/MarginContainer/VBoxContainer/MouseSensitivityControl"]

View File

@@ -0,0 +1,36 @@
[gd_scene format=3 uid="uid://dsh4piv0l7u4u"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/paginated_tab_container.gd" id="1_ai8ld"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/input/input_options_menu.tscn" id="2_03b4v"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/input/input_extras_menu.tscn" id="3_amlig"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/audio/audio_options_menu.tscn" id="4_1q2u1"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/video/video_options_menu_with_extras.tscn" id="5_uvcwx"]
[node name="MasterOptionsMenu" type="TabContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
tab_alignment = 1
current_tab = 0
script = ExtResource("1_ai8ld")
[node name="Controls" parent="." instance=ExtResource("2_03b4v")]
layout_mode = 2
metadata/_tab_index = 0
[node name="Inputs" parent="." instance=ExtResource("3_amlig")]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="Audio" parent="." instance=ExtResource("4_1q2u1")]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="Video" parent="." instance=ExtResource("5_uvcwx")]
visible = false
layout_mode = 2
metadata/_tab_index = 3

View File

@@ -0,0 +1,51 @@
[gd_scene format=3 uid="uid://cibq68uel4bcn"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/mini_options_menu.gd" id="1_1omja"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/option_control/slider_option_control.tscn" id="2_c8myg"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/nodes/utilities/capture_focus.gd" id="3_luqg7"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/option_control/toggle_option_control.tscn" id="4_u2ks0"]
[node name="MiniOptionsMenu" type="VBoxContainer"]
custom_minimum_size = Vector2(400, 260)
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -130.0
offset_right = 200.0
offset_bottom = 130.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 4
theme_override_constants/separation = 8
alignment = 1
script = ExtResource("1_1omja")
audio_control_scene = ExtResource("2_c8myg")
[node name="AudioControlContainer" type="VBoxContainer" parent="."]
unique_name_in_owner = true
layout_mode = 2
theme_override_constants/separation = 8
script = ExtResource("3_luqg7")
search_depth = 2
[node name="MuteControl" parent="." instance=ExtResource("4_u2ks0")]
unique_name_in_owner = true
layout_mode = 2
option_name = "Mute"
option_section = 2
key = "Mute"
section = "AudioSettings"
[node name="FullscreenControl" parent="." instance=ExtResource("4_u2ks0")]
unique_name_in_owner = true
layout_mode = 2
option_name = "Fullscreen"
option_section = 3
key = "FullscreenEnabled"
section = "VideoSettings"
[connection signal="setting_changed" from="MuteControl" to="." method="_on_mute_control_setting_changed"]
[connection signal="setting_changed" from="FullscreenControl" to="." method="_on_fullscreen_control_setting_changed"]

View File

@@ -0,0 +1,5 @@
[gd_scene format=3 uid="uid://c5enlypne8pnc"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/video/video_options_menu.tscn" id="1_48urb"]
[node name="Video" instance=ExtResource("1_48urb")]

View File

@@ -0,0 +1,31 @@
[gd_scene format=3 uid="uid://4hsiqr4ehbbq"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/video/video_options_menu.tscn" id="1_rdxho"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/menus/options_menu/option_control/list_option_control.tscn" id="2_0u1ef"]
[node name="Video" instance=ExtResource("1_rdxho")]
[node name="AntiAliasingControl" parent="VBoxContainer" index="3" instance=ExtResource("2_0u1ef")]
layout_mode = 2
lock_titles = true
option_values = [0, 1, 2, 3]
option_titles = Array[String](["Disabled (Fastest)", "2x", "4x", "8x (Slowest)"])
option_name = "Anti-Aliasing"
option_section = 3
key = "Anti-aliasing"
section = "VideoSettings"
property_type = 2
default_value = 0
[node name="CameraShakeControl" parent="VBoxContainer" index="4" instance=ExtResource("2_0u1ef")]
visible = false
layout_mode = 2
lock_titles = true
option_values = [1.0, 0.75, 0.5, 0.0]
option_titles = Array[String](["Normal", "Reduced", "Minimal", "None"])
option_name = "Camera Shake"
option_section = 3
key = "CameraShake"
section = "VideoSettings"
property_type = 3
default_value = 1.0

View File

@@ -0,0 +1,14 @@
[gd_scene format=3 uid="uid://cujhvnbd2sfkw"]
[ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/nodes/opening/opening.tscn" id="1_luwk1"]
[ext_resource type="Texture2D" uid="uid://4hasb7yih53v" path="res://menus/assets/godot_engine_logo/logo_vertical_color_dark.png" id="2_cj7fe"]
[node name="Opening" unique_id=24920084 instance=ExtResource("1_luwk1")]
next_scene_path = "uid://cxeuh57i33qrx"
images = Array[Texture2D]([ExtResource("2_cj7fe")])
[node name="ImagesContainer" parent="." index="0"]
theme_override_constants/margin_left = 64
theme_override_constants/margin_top = 64
theme_override_constants/margin_right = 64
theme_override_constants/margin_bottom = 64

View File

@@ -0,0 +1,26 @@
@tool
extends OverlaidWindow
signal continue_pressed
signal main_menu_pressed
func _ready():
if OS.has_feature("web"):
%ExitButton.hide()
func _on_exit_button_pressed():
%ExitConfirmation.show()
func _on_main_menu_button_pressed():
%MainMenuConfirmation.show()
func _on_close_button_pressed():
continue_pressed.emit()
close()
func _on_main_menu_confirmation_confirmed():
main_menu_pressed.emit()
close()
func _on_exit_confirmation_confirmed():
get_tree().quit()

View File

@@ -0,0 +1 @@
uid://cwab7rbiob2ca

View File

@@ -0,0 +1,60 @@
[gd_scene format=3 uid="uid://bivbf27ymoluy"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_h0vmg"]
[ext_resource type="Script" path="res://menus/scenes/windows/game_won_window.gd" id="2_a248v"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/confirmation_overlaid_window.tscn" id="3_dgrgs"]
[node name="GameWonWindow" instance=ExtResource("1_h0vmg")]
custom_minimum_size = Vector2(432, 240)
script = ExtResource("2_a248v")
update_content = true
text = "You won!"
close_button_text = "Continue"
title_visible = false
[node name="TitleMargin" parent="ContentContainer/BoxContainer" index="0"]
visible = false
[node name="DescriptionLabel" parent="ContentContainer/BoxContainer/BodyMargin" index="0"]
text = "You won!"
[node name="MenuButtons" parent="ContentContainer/BoxContainer/MenuButtonsMargin" index="0"]
vertical = false
[node name="ExitButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "Exit"
[node name="MainMenuButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="1"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "Main Menu"
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="2"]
size_flags_horizontal = 3
text = "Continue"
[node name="MainMenuConfirmation" parent="." index="1" instance=ExtResource("3_dgrgs")]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(220, 0)
layout_mode = 2
text = "Exit to the main menu?"
title = "Confirm Exit"
[node name="ExitConfirmation" parent="." index="2" instance=ExtResource("3_dgrgs")]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Exit the game?"
title = "Confirm Exit"
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/ExitButton" to="." method="_on_exit_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="confirmed" from="MainMenuConfirmation" to="." method="_on_main_menu_confirmation_confirmed"]
[connection signal="confirmed" from="ExitConfirmation" to="." method="_on_exit_confirmation_confirmed"]

View File

@@ -0,0 +1,26 @@
@tool
extends OverlaidWindow
signal restart_pressed
signal main_menu_pressed
func _ready():
if OS.has_feature("web"):
%ExitButton.hide()
func _on_exit_button_pressed():
%ExitConfirmation.show()
func _on_main_menu_button_pressed():
%MainMenuConfirmation.show()
func _on_close_button_pressed():
restart_pressed.emit()
close()
func _on_main_menu_confirmation_confirmed():
main_menu_pressed.emit()
close()
func _on_exit_confirmation_confirmed():
get_tree().quit()

View File

@@ -0,0 +1 @@
uid://bbffpw7vyygic

View File

@@ -0,0 +1,58 @@
[gd_scene format=3 uid="uid://bimlvpibjpem0"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_k3yu0"]
[ext_resource type="Script" path="res://menus/scenes/windows/level_lost_window.gd" id="2_u8wtw"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/confirmation_overlaid_window.tscn" id="3_pir6e"]
[node name="LevelLostWindow" instance=ExtResource("1_k3yu0")]
custom_minimum_size = Vector2(432, 240)
script = ExtResource("2_u8wtw")
update_content = true
text = "You lost..."
close_button_text = "Restart"
title_visible = false
[node name="TitleMargin" parent="ContentContainer/BoxContainer" index="0"]
visible = false
[node name="DescriptionLabel" parent="ContentContainer/BoxContainer/BodyMargin" index="0"]
text = "You lost..."
[node name="MenuButtons" parent="ContentContainer/BoxContainer/MenuButtonsMargin" index="0"]
vertical = false
[node name="ExitButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Exit"
[node name="MainMenuButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Main Menu"
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="2"]
size_flags_horizontal = 3
text = "Restart"
[node name="MainMenuConfirmation" parent="." index="1" instance=ExtResource("3_pir6e")]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(220, 0)
layout_mode = 2
text = "Exit to the main menu?"
title = "Confirm Exit"
[node name="ExitConfirmation" parent="." index="2" instance=ExtResource("3_pir6e")]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Exit the game?"
title = "Confirm Exit"
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/ExitButton" to="." method="_on_exit_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="confirmed" from="MainMenuConfirmation" to="." method="_on_main_menu_confirmation_confirmed"]
[connection signal="confirmed" from="ExitConfirmation" to="." method="_on_exit_confirmation_confirmed"]

View File

@@ -0,0 +1,31 @@
@tool
extends OverlaidWindow
signal continue_pressed
signal main_menu_pressed
signal restart_pressed
func _ready():
if OS.has_feature("web"):
%ExitButton.hide()
func _on_exit_button_pressed():
%ExitConfirmation.show()
func _on_main_menu_button_pressed():
%MainMenuConfirmation.show()
func _on_close_button_pressed():
continue_pressed.emit()
close()
func _on_main_menu_confirmation_confirmed():
main_menu_pressed.emit()
close()
func _on_restart_button_pressed():
restart_pressed.emit()
close()
func _on_exit_confirmation_confirmed():
get_tree().quit()

View File

@@ -0,0 +1 @@
uid://uuspingcbajg

View File

@@ -0,0 +1,66 @@
[gd_scene format=3 uid="uid://q2oum0xhreo8"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_wtikh"]
[ext_resource type="Script" path="res://menus/scenes/windows/level_won_window.gd" id="2_tsvun"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/confirmation_overlaid_window.tscn" id="3_kw6pv"]
[node name="LevelWonWindow" instance=ExtResource("1_wtikh")]
custom_minimum_size = Vector2(432, 240)
script = ExtResource("2_tsvun")
update_content = true
text = "Level complete!"
close_button_text = "Continue"
title_visible = false
[node name="TitleMargin" parent="ContentContainer/BoxContainer" index="0"]
visible = false
[node name="DescriptionLabel" parent="ContentContainer/BoxContainer/BodyMargin" index="0"]
text = "Level complete!"
[node name="MenuButtons" parent="ContentContainer/BoxContainer/MenuButtonsMargin" index="0"]
vertical = false
[node name="ExitButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
text = "Exit"
[node name="MainMenuButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="1"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Main Menu"
[node name="RestartButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="2"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
text = "Restart"
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="3"]
size_flags_horizontal = 3
text = "Continue"
[node name="MainMenuConfirmation" parent="." index="1" instance=ExtResource("3_kw6pv")]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(220, 0)
layout_mode = 2
text = "Exit to the main menu?"
title = "Confirm Exit"
[node name="ExitConfirmation" parent="." index="2" instance=ExtResource("3_kw6pv")]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Exit the game?"
title = "Confirm Exit"
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/ExitButton" to="." method="_on_exit_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/RestartButton" to="." method="_on_restart_button_pressed"]
[connection signal="confirmed" from="MainMenuConfirmation" to="." method="_on_main_menu_confirmation_confirmed"]
[connection signal="confirmed" from="ExitConfirmation" to="." method="_on_exit_confirmation_confirmed"]

View File

@@ -0,0 +1,7 @@
@tool
extends "res://addons/maaacks_game_template/base/nodes/windows/overlaid_window_scene_container.gd"
func _ready() -> void:
super._ready()
if instance and instance.has_signal(&"end_reached"):
instance.connect(&"end_reached", close)

View File

@@ -0,0 +1 @@
uid://c1apsdpynl7ex

View File

@@ -0,0 +1,25 @@
[gd_scene format=3 uid="uid://cvweffl7bo7bj"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window_scene_container.tscn" id="1_nuhlj"]
[ext_resource type="Script" path="res://menus/scenes/windows/main_menu_credits_window.gd" id="2_o2qx8"]
[ext_resource type="PackedScene" path="res://menus/scenes/credits/scrollable_credits.tscn" id="3_h2dw7"]
[node name="MainMenuCreditsOverlaidWindow" instance=ExtResource("1_nuhlj")]
anchors_preset = 15
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
script = ExtResource("2_o2qx8")
packed_scene = ExtResource("3_h2dw7")
[node name="TitleMargin" parent="ContentContainer/BoxContainer" index="0"]
visible = false
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
size_flags_horizontal = 0
text = "Back"

View File

@@ -0,0 +1,28 @@
[gd_scene format=3 uid="uid://xkqu58vkydps"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window_scene_container.tscn" id="1_nkqug"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/master_options_menu_with_tabs.tscn" id="2_ldm64"]
[node name="MainMenuOptionsOverlaidWindow" instance=ExtResource("1_nkqug")]
anchors_preset = 15
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
size_flags_horizontal = 3
size_flags_vertical = 3
packed_scene = ExtResource("2_ldm64")
update_content = true
close_button_text = "Back"
title_visible = false
[node name="TitleMargin" parent="ContentContainer/BoxContainer" index="0"]
visible = false
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
size_flags_horizontal = 0
text = "Back"

View File

@@ -0,0 +1,119 @@
@tool
extends OverlaidWindow
@export var options_menu_scene : PackedScene
## Path to a main menu scene.
@export_file("*.tscn") var main_menu_scene_path : String
@export_node_path(&"ConfirmationOverlaidWindow") var restart_confirmation_node_path : NodePath
@export_node_path(&"ConfirmationOverlaidWindow") var main_menu_confirmation_node_path : NodePath
@export_node_path(&"ConfirmationOverlaidWindow") var exit_confirmation_node_path : NodePath
@export var menu_container_node_path : NodePath = ^".."
@onready var restart_confirmation : ConfirmationOverlaidWindow = get_node(restart_confirmation_node_path)
@onready var main_menu_confirmation : ConfirmationOverlaidWindow = get_node(main_menu_confirmation_node_path)
@onready var exit_confirmation : ConfirmationOverlaidWindow = get_node(exit_confirmation_node_path)
@onready var menu_container : Node = get_node(menu_container_node_path)
@onready var options_button = %OptionsButton
@onready var main_menu_button = %MainMenuButton
@onready var exit_button = %ExitButton
## If Maaack's Scene Loader is installed, then it will be used to change scenes.
@onready var scene_loader_node = get_tree().root.get_node_or_null(^"SceneLoader")
var open_window : Node
var _ignore_first_cancel : bool = false
func get_main_menu_scene_path() -> String:
return main_menu_scene_path
func close_window() -> void:
if open_window != null:
if open_window.has_method("close"):
open_window.close()
else:
open_window.hide()
open_window = null
func _disable_focus() -> void:
for child in %MenuButtons.get_children():
if child is Control:
child.focus_mode = FOCUS_NONE
func _enable_focus() -> void:
for child in %MenuButtons.get_children():
if child is Control:
child.focus_mode = FOCUS_ALL
func _load_scene(scene_path: String) -> void:
_scene_tree.paused = false
if scene_loader_node:
scene_loader_node.load_scene(scene_path)
else:
get_tree().change_scene_to_file(scene_path)
func _show_window(window : Control) -> void:
_disable_focus.call_deferred()
window.show()
open_window = window
await window.hidden
open_window = null
_enable_focus.call_deferred()
func _load_and_show_menu(scene : PackedScene) -> void:
var window_instance : Control = scene.instantiate()
window_instance.visible = false
menu_container.add_child.call_deferred(window_instance)
await _show_window(window_instance)
window_instance.queue_free()
func _handle_cancel_input() -> void:
if _ignore_first_cancel:
_ignore_first_cancel = false
return
if open_window != null:
close_window()
else:
super._handle_cancel_input()
func show() -> void:
super.show()
if Input.is_action_pressed("ui_cancel"):
_ignore_first_cancel = true
func _refresh_exit_button() -> void:
exit_button.visible = !OS.has_feature("web")
func _refresh_options_button() -> void:
options_button.visible = options_menu_scene != null
func _refresh_main_menu_button() -> void:
main_menu_button.visible = !get_main_menu_scene_path().is_empty()
func _ready() -> void:
_refresh_exit_button()
_refresh_options_button()
_refresh_main_menu_button()
restart_confirmation.confirmed.connect(_on_restart_confirmation_confirmed)
main_menu_confirmation.confirmed.connect(_on_main_menu_confirmation_confirmed)
exit_confirmation.confirmed.connect(_on_exit_confirmation_confirmed)
func _on_restart_button_pressed() -> void:
_show_window(restart_confirmation)
func _on_options_button_pressed() -> void:
_load_and_show_menu(options_menu_scene)
func _on_main_menu_button_pressed() -> void:
_show_window(main_menu_confirmation)
func _on_exit_button_pressed() -> void:
_show_window(exit_confirmation)
func _on_restart_confirmation_confirmed() -> void:
get_tree().reload_current_scene()
close()
func _on_main_menu_confirmation_confirmed():
_load_scene(get_main_menu_scene_path())
func _on_exit_confirmation_confirmed():
get_tree().quit()

View File

@@ -0,0 +1 @@
uid://bgajacd4x5y5c

View File

@@ -0,0 +1,82 @@
[gd_scene format=3 uid="uid://docl4rn3h2wf8"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="1_lqur3"]
[ext_resource type="Script" path="res://menus/scenes/windows/pause_menu.gd" id="2_h3gat"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/pause_menu_options_window.tscn" id="3_qnib3"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/confirmation_overlaid_window.tscn" id="4_25tgp"]
[node name="PauseMenu" instance=ExtResource("1_lqur3")]
process_mode = 3
custom_minimum_size = Vector2(256, 312)
offset_left = -128.0
offset_top = -155.0
offset_right = 128.0
offset_bottom = 157.0
size_flags_horizontal = 1
size_flags_vertical = 1
script = ExtResource("2_h3gat")
options_menu_scene = ExtResource("3_qnib3")
main_menu_scene_path = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
restart_confirmation_node_path = NodePath("RestartConfirmation")
main_menu_confirmation_node_path = NodePath("MainMenuConfirmation")
exit_confirmation_node_path = NodePath("ExitConfirmation")
menu_container_node_path = NodePath("..")
pauses_game = true
[node name="TitleLabel" parent="ContentContainer/BoxContainer/TitleMargin/BoxContainer" index="0"]
text = "Paused"
[node name="BodyMargin" parent="ContentContainer/BoxContainer" index="1"]
visible = false
[node name="MenuButtonsMargin" parent="ContentContainer/BoxContainer" index="2"]
size_flags_vertical = 3
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
text = "Resume"
[node name="RestartButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="1"]
layout_mode = 2
text = "Restart"
[node name="OptionsButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="2"]
unique_name_in_owner = true
layout_mode = 2
text = "Options"
[node name="MainMenuButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="3"]
unique_name_in_owner = true
layout_mode = 2
text = "Main Menu"
[node name="ExitButton" type="Button" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="4"]
unique_name_in_owner = true
layout_mode = 2
text = "Exit Game"
[node name="RestartConfirmation" parent="." index="1" instance=ExtResource("4_25tgp")]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Restart the game?"
title = "Confirm Restart"
[node name="MainMenuConfirmation" parent="." index="2" instance=ExtResource("4_25tgp")]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(220, 0)
layout_mode = 2
text = "Exit to the main menu?"
title = "Confirm Exit"
[node name="ExitConfirmation" parent="." index="3" instance=ExtResource("4_25tgp")]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Exit the game?"
title = "Confirm Exit"
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/RestartButton" to="." method="_on_restart_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/OptionsButton" to="." method="_on_options_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/MainMenuButton" to="." method="_on_main_menu_button_pressed"]
[connection signal="pressed" from="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/ExitButton" to="." method="_on_exit_button_pressed"]

View File

@@ -0,0 +1,13 @@
extends CanvasLayer
@onready var pause_menu = %PauseMenu
func _on_pause_menu_hidden():
hide()
func _on_visibility_changed():
if visible:
pause_menu.show()
func _ready():
visibility_changed.connect(_on_visibility_changed)

View File

@@ -0,0 +1 @@
uid://bo7kdymgdhkdm

View File

@@ -0,0 +1,98 @@
[gd_scene format=3 uid="uid://w2f00usvsami"]
[ext_resource type="Script" path="res://menus/scenes/windows/pause_menu_layer.gd" id="1_c8aok"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window.tscn" id="2_a2qjc"]
[ext_resource type="Script" path="res://menus/scenes/windows/pause_menu.gd" id="3_xji41"]
[ext_resource type="PackedScene" path="res://menus/scenes/windows/pause_menu_options_window.tscn" id="4_tf3kx"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/confirmation_overlaid_window.tscn" id="5_rhdwm"]
[node name="PauseMenuLayer" type="CanvasLayer"]
process_mode = 3
script = ExtResource("1_c8aok")
[node name="PauseMenu" parent="." instance=ExtResource("2_a2qjc")]
unique_name_in_owner = true
process_mode = 3
custom_minimum_size = Vector2(256, 312)
script = ExtResource("3_xji41")
options_menu_scene = ExtResource("4_tf3kx")
main_menu_scene_path = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
restart_confirmation_node_path = NodePath("../RestartConfirmation")
main_menu_confirmation_node_path = NodePath("../MainMenuConfirmation")
exit_confirmation_node_path = NodePath("../ExitConfirmation")
menu_container_node_path = NodePath("..")
pauses_game = true
update_content = true
title = "Paused"
[node name="TitleLabel" parent="PauseMenu/ContentContainer/BoxContainer/TitleMargin/BoxContainer" index="0"]
text = "Paused"
[node name="BodyMargin" parent="PauseMenu/ContentContainer/BoxContainer" index="1"]
visible = false
[node name="MenuButtonsMargin" parent="PauseMenu/ContentContainer/BoxContainer" index="2"]
size_flags_vertical = 3
[node name="CloseButton" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
text = "Resume"
[node name="RestartButton" type="Button" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="1"]
layout_mode = 2
text = "Restart"
[node name="SaveGameButton" type="Button" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="2"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Save Game"
[node name="LoadGameButton" type="Button" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="3"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Load Game"
[node name="OptionsButton" type="Button" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="4"]
unique_name_in_owner = true
layout_mode = 2
text = "Options"
[node name="MainMenuButton" type="Button" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="5"]
unique_name_in_owner = true
layout_mode = 2
text = "Main Menu"
[node name="ExitButton" type="Button" parent="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="6"]
unique_name_in_owner = true
layout_mode = 2
text = "Exit Game"
[node name="RestartConfirmation" parent="." instance=ExtResource("5_rhdwm")]
unique_name_in_owner = true
visible = false
text = "Restart the game?"
title = "Confirm Restart"
[node name="MainMenuConfirmation" parent="." instance=ExtResource("5_rhdwm")]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(220, 0)
text = "Exit to the main menu?"
title = "Confirm Exit"
[node name="ExitConfirmation" parent="." instance=ExtResource("5_rhdwm")]
unique_name_in_owner = true
visible = false
text = "Exit the game?"
title = "Confirm Exit"
[connection signal="hidden" from="PauseMenu" to="." method="_on_pause_menu_hidden"]
[connection signal="pressed" from="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/RestartButton" to="PauseMenu" method="_on_restart_button_pressed"]
[connection signal="pressed" from="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/SaveGameButton" to="PauseMenu" method="_on_save_game_button_pressed"]
[connection signal="pressed" from="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/LoadGameButton" to="PauseMenu" method="_on_load_game_button_pressed"]
[connection signal="pressed" from="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/OptionsButton" to="PauseMenu" method="_on_options_button_pressed"]
[connection signal="pressed" from="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/MainMenuButton" to="PauseMenu" method="_on_main_menu_button_pressed"]
[connection signal="pressed" from="PauseMenu/ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons/ExitButton" to="PauseMenu" method="_on_exit_button_pressed"]
[editable path="PauseMenu"]

View File

@@ -0,0 +1,28 @@
[gd_scene format=3 uid="uid://tbhmg0d0ns6i"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/nodes/windows/overlaid_window_scene_container.tscn" id="1_fimhq"]
[ext_resource type="PackedScene" path="res://menus/scenes/menus/options_menu/master_options_menu_with_tabs.tscn" id="2_j26ns"]
[node name="PauseMenuOptionsOverlaidWindow" instance=ExtResource("1_fimhq")]
process_mode = 3
anchors_preset = 15
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
packed_scene = ExtResource("2_j26ns")
title_visible = false
[node name="TitleMargin" parent="ContentContainer/BoxContainer" index="0"]
visible = false
[node name="TitleLabel" parent="ContentContainer/BoxContainer/TitleMargin/BoxContainer" index="0"]
text = "Options"
[node name="CloseButton" parent="ContentContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"]
size_flags_horizontal = 0
text = "Back"