gd: added menu template

This commit is contained in:
2025-06-10 18:46:20 +02:00
parent f9a6c42b14
commit c554e24b01
421 changed files with 12371 additions and 2 deletions

38
menus/ATTRIBUTION.md Normal file
View File

@ -0,0 +1,38 @@
# Attribution
## Collaborators
### Role
Person 1
Person 2
[Person w/ Link]()
## Sourced
### Asset Type
#### Use Case
Author: [Name]()
Source: [Domain : webpage.html]()
License: [License]()
#### Godot Engine Logo
Author: Andrea Calabró
Source: [godotengine.org : press](https://godotengine.org/press/)
License: [CC BY 4.0 International](https://github.com/godotengine/godot/blob/master/LOGO_LICENSE.txt)
## Tools
#### Godot
![Godot Engine Logo](/menus/assets/godot_engine_logo/logo_vertical_color_dark.png)
Author: [Juan Linietsky, Ariel Manzur, and contributors](https://godotengine.org/contact)
Source: [godotengine.org](https://godotengine.org/)
License: [MIT License](https://github.com/godotengine/godot/blob/master/LICENSE.txt)
#### Godot Game Template
![Maaack Plugin Icon](/menus/assets/icon.png)
Author: [Marek Belski and contributors](https://github.com/Maaack/Godot-Game-Template/graphs/contributors)
Source: [github: Godot-Game-Template](https://github.com/Maaack/Godot-Game-Template)
License: [MIT License](LICENSE.txt)
#### Git
![Git Logo](/menus/assets/git_logo/Git-Logo-2Color.png)
Author: [Linus Torvalds](https://github.com/torvalds)
Source: [git-scm.com](https://git-scm.com/downloads)
License: [GNU General Public License version 2](https://opensource.org/licenses/GPL-2.0)

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bgu2uludk87k0"
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/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6vwgmbr7eylm"
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/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
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

BIN
menus/assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cokgo26lwtfvw"
path="res://.godot/imported/icon.png-416da93d6e3577a1ba611493576a9a19.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://menus/assets/icon.png"
dest_files=["res://.godot/imported/icon.png-416da93d6e3577a1ba611493576a9a19.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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" load_steps=8 format=3 uid="uid://bwfja23avgm8f"]
[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" load_steps=8 format=3 uid="uid://dyjbfmjgx8t8f"]
[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" load_steps=8 format=3 uid="uid://b71j4vgc6rwfx"]
[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" load_steps=16 format=3 uid="uid://dm6tkxt65tnxi"]
[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" load_steps=15 format=3 uid="uid://bcopca4uvqrrw"]
[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" load_steps=44 format=3 uid="uid://bg5t434wh7tmh"]
[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,2 @@
@tool
extends ScrollableCredits

View File

@ -0,0 +1 @@
uid://6x1vpinoeg7h

View File

@ -0,0 +1,48 @@
[gd_scene load_steps=3 format=3 uid="uid://ct0yseu6qy88d"]
[ext_resource type="PackedScene" uid="uid://osxulxw2oas3" path="res://addons/maaacks_game_template/base/scenes/credits/scrollable_credits.tscn" id="1_xoaw6"]
[ext_resource type="Script" uid="uid://6x1vpinoeg7h" path="res://menus/scenes/credits/scrollable_credits.gd" id="2_s1bbb"]
[node name="ScrollableCredits" instance=ExtResource("1_xoaw6")]
script = ExtResource("2_s1bbb")
[node name="CreditsLabel" parent="." index="0"]
text = "[center][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 Game Template[/font_size]
[img=80]res:///menus/assets/icon.png[/img]
Author: [url=https://github.com/Maaack/Godot-Game-Template/graphs/contributors]Marek Belski and contributors[/url]
Source: [url=https://github.com/Maaack/Godot-Game-Template]github: Godot-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]
[/center]"
attribution_file_path = "res://menus/ATTRIBUTION.md"

View File

@ -0,0 +1,2 @@
@tool
extends ScrollingCredits

View File

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

View File

@ -0,0 +1,48 @@
[gd_scene load_steps=3 format=3 uid="uid://degp6cr65aj0l"]
[ext_resource type="PackedScene" uid="uid://t2dui8ppm3a4" path="res://addons/maaacks_game_template/base/scenes/credits/scrolling_credits.tscn" id="1_o3677"]
[ext_resource type="Script" uid="uid://hkt3gnjndeoa" path="res://menus/scenes/credits/scrolling_credits.gd" id="2_6tdhy"]
[node name="ScrollingCredits" instance=ExtResource("1_o3677")]
script = ExtResource("2_6tdhy")
[node name="CreditsLabel" parent="ScrollContainer/VBoxContainer" index="1"]
text = "[center][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 Game Template[/font_size]
[img=80]res:///menus/assets/icon.png[/img]
Author: [url=https://github.com/Maaack/Godot-Game-Template/graphs/contributors]Marek Belski and contributors[/url]
Source: [url=https://github.com/Maaack/Godot-Game-Template]github: Godot-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]
[/center]"
attribution_file_path = "res://menus/ATTRIBUTION.md"

View File

@ -0,0 +1,34 @@
extends ScrollingCredits
@export_file("*.tscn") var main_menu_scene : String
@onready var init_mouse_filter : MouseFilter = mouse_filter
func _on_scroll_container_end_reached() -> void:
%EndMessagePanel.show()
mouse_filter = Control.MOUSE_FILTER_STOP
super._on_scroll_container_end_reached()
func _on_MenuButton_pressed() -> void:
SceneLoader.load_scene(main_menu_scene)
func _on_ExitButton_pressed() -> void:
get_tree().quit()
func _on_visibility_changed() -> void:
if visible:
%EndMessagePanel.hide()
mouse_filter = init_mouse_filter
func _ready() -> void:
visibility_changed.connect(_on_visibility_changed)
if main_menu_scene.is_empty():
%MenuButton.hide()
if OS.has_feature("web"):
%ExitButton.hide()
func _unhandled_input(event : InputEvent) -> void:
if event.is_action_pressed("ui_cancel"):
if not %EndMessagePanel.visible:
_on_scroll_container_end_reached()
else:
get_tree().quit()

View File

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

View File

@ -0,0 +1,90 @@
[gd_scene load_steps=5 format=3 uid="uid://dobyufvvon4i4"]
[ext_resource type="PackedScene" uid="uid://degp6cr65aj0l" path="res://menus/scenes/credits/scrolling_credits.tscn" id="1_glhfm"]
[ext_resource type="Script" uid="uid://nn5qa7y0gpb6" path="res://menus/scenes/end_credits/end_credits.gd" id="2_3mj4t"]
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_game_template/base/scenes/music_players/background_music_player.tscn" id="3_yl3jd"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="4_fhtnl"]
[node name="EndCredits" instance=ExtResource("1_glhfm")]
script = ExtResource("2_3mj4t")
main_menu_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
[node name="BackgroundMusicPlayer" parent="." index="0" instance=ExtResource("3_yl3jd")]
[node name="BackgroundColor" type="ColorRect" parent="." index="1"]
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="2"]
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="ScrollContainer" parent="." index="3"]
scroll_vertical = 0
[node name="CenterContainer" type="CenterContainer" parent="." index="4"]
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("4_fhtnl")
[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_ExitButton_pressed"]
[connection signal="pressed" from="CenterContainer/EndMessagePanel/VBoxContainer/CenterContainer/HBoxContainer/MenuButton" to="." method="_on_MenuButton_pressed"]

View File

@ -0,0 +1,9 @@
extends SubViewport
@export var anti_aliasing_key : StringName = "Anti-aliasing"
@export var video_section : StringName = AppSettings.VIDEO_SECTION
func _ready() -> void:
var anti_aliasing : int = Config.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://setdprunjids

View File

@ -0,0 +1,63 @@
[gd_scene load_steps=11 format=3 uid="uid://cn7ialakmhaeq"]
[ext_resource type="Script" uid="uid://cyh0d64pfygbl" path="res://addons/maaacks_game_template/base/scripts/pause_menu_controller.gd" id="1_wm2gk"]
[ext_resource type="PackedScene" uid="uid://ccqajqchiw4xu" path="res://menus/scenes/overlaid_menus/pause_menu.tscn" id="2_0bqsg"]
[ext_resource type="PackedScene" uid="uid://bkcsjsk2ciff" path="res://addons/maaacks_game_template/base/scenes/music_players/background_music_player.tscn" id="3_aryyu"]
[ext_resource type="Script" uid="uid://crbo2e4ndbyvk" path="res://addons/maaacks_game_template/extras/scripts/level_list_loader.gd" id="4_q70eh"]
[ext_resource type="Script" uid="uid://3yfyhcjuxm0t" path="res://menus/scripts/level_list_and_state_manager.gd" id="5_cm6at"]
[ext_resource type="PackedScene" uid="uid://dmq0tpdodtomh" path="res://menus/scenes/overlaid_menus/game_won_menu.tscn" id="6_72q1f"]
[ext_resource type="PackedScene" uid="uid://ciyq8eiv1mtie" path="res://menus/scenes/overlaid_menus/level_lost_menu.tscn" id="7_mkrcq"]
[ext_resource type="PackedScene" uid="uid://b46jlduh4lllk" path="res://menus/scenes/overlaid_menus/level_won_menu.tscn" id="8_sqpeu"]
[ext_resource type="PackedScene" uid="uid://c63l6okbko3xp" path="res://menus/scenes/loading_screen/level_loading_screen.tscn" id="9_u7rb7"]
[ext_resource type="Script" uid="uid://setdprunjids" path="res://menus/scenes/game_scene/configurable_sub_viewport.gd" id="10_kh6hf"]
[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_wm2gk")
pause_menu_packed = ExtResource("2_0bqsg")
focused_viewport = NodePath("../ViewportContainer/ConfigurableSubViewport")
[node name="BackgroundMusicPlayer" parent="." instance=ExtResource("3_aryyu")]
[node name="LevelListLoader" type="Node" parent="." node_paths=PackedStringArray("level_container")]
script = ExtResource("4_q70eh")
level_container = NodePath("../ViewportContainer/ConfigurableSubViewport")
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="LevelListManager" type="Node" parent="." node_paths=PackedStringArray("level_list_loader", "level_loading_screen")]
script = ExtResource("5_cm6at")
level_list_loader = NodePath("../LevelListLoader")
main_menu_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
ending_scene = "res://menus/scenes/end_credits/end_credits.tscn"
level_loading_screen = NodePath("../LevelLoadingScreen")
game_won_scene = ExtResource("6_72q1f")
level_lost_scene = ExtResource("7_mkrcq")
level_won_scene = ExtResource("8_sqpeu")
[node name="LevelLoadingScreen" parent="." instance=ExtResource("9_u7rb7")]
visible = false
[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("10_kh6hf")

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://nvm4qcl05gmc

View File

@ -0,0 +1,31 @@
extends Node
signal level_won
signal level_lost
var level_state : LevelState
func _on_lose_button_pressed() -> void:
level_lost.emit()
func _on_win_button_pressed() -> void:
level_won.emit()
func open_tutorials() -> void:
%TutorialManager.open_tutorials()
level_state.tutorial_read = true
func _ready() -> void:
level_state = GameState.get_level_state(scene_file_path)
%ColorPickerButton.color = level_state.color
%BackgroundColor.color = level_state.color
if not level_state.tutorial_read:
open_tutorials()
func _on_color_picker_button_color_changed(color : Color) -> void:
%BackgroundColor.color = color
level_state.color = color
GlobalState.save()
func _on_tutorial_button_pressed() -> void:
open_tutorials()

View File

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

View File

@ -0,0 +1,90 @@
[gd_scene load_steps=6 format=3 uid="uid://b0qcy25u3w436"]
[ext_resource type="Script" uid="uid://oqr1470sqa04" path="res://menus/scenes/game_scene/levels/level.gd" id="1_gurrc"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_ou215"]
[ext_resource type="Script" uid="uid://nvm4qcl05gmc" path="res://menus/scenes/game_scene/input_display_label.gd" id="3_c34o5"]
[ext_resource type="Script" uid="uid://qf7h5xkvdgqw" path="res://menus/scenes/game_scene/tutorial_manager.gd" id="4_f47b8"]
[ext_resource type="PackedScene" uid="uid://cy58hst85hxsj" path="res://menus/scenes/game_scene/tutorials/tutorial_1.tscn" id="5_4spcs"]
[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_gurrc")
[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="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 32
script = ExtResource("2_ou215")
[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_c34o5")
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "Change Level State: "
[node name="ColorPickerButton" type="ColorPickerButton" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
text = "Change Color"
[node name="TutorialManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("4_f47b8")
tutorial_scenes = Array[PackedScene]([ExtResource("5_4spcs")])
[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"]
[connection signal="color_changed" from="MarginContainer/VBoxContainer/HBoxContainer2/ColorPickerButton" to="." method="_on_color_picker_button_color_changed"]

View File

@ -0,0 +1,96 @@
[gd_scene load_steps=6 format=3 uid="uid://cnywew70g84u8"]
[ext_resource type="Script" uid="uid://oqr1470sqa04" path="res://menus/scenes/game_scene/levels/level.gd" id="1_3qleh"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_n4y0n"]
[ext_resource type="Script" uid="uid://nvm4qcl05gmc" path="res://menus/scenes/game_scene/input_display_label.gd" id="3_fxw66"]
[ext_resource type="Script" uid="uid://qf7h5xkvdgqw" path="res://menus/scenes/game_scene/tutorial_manager.gd" id="4_hrqtj"]
[ext_resource type="PackedScene" uid="uid://dxrk0tt7ciipu" path="res://menus/scenes/game_scene/tutorials/tutorial_2.tscn" id="5_318fc"]
[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_3qleh")
[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="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 32
script = ExtResource("2_n4y0n")
[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_fxw66")
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "Change Level State: "
[node name="ColorPickerButton" type="ColorPickerButton" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
text = "Change Color"
[node name="TutorialManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("4_hrqtj")
tutorial_scenes = Array[PackedScene]([ExtResource("5_318fc")])
[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"]
[connection signal="color_changed" from="MarginContainer/VBoxContainer/HBoxContainer2/ColorPickerButton" to="." method="_on_color_picker_button_color_changed"]

View File

@ -0,0 +1,102 @@
[gd_scene load_steps=6 format=3 uid="uid://5k7yo8y0x1th"]
[ext_resource type="Script" uid="uid://oqr1470sqa04" path="res://menus/scenes/game_scene/levels/level.gd" id="1_x17wb"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_fxhbp"]
[ext_resource type="Script" uid="uid://nvm4qcl05gmc" path="res://menus/scenes/game_scene/input_display_label.gd" id="3_5rvw0"]
[ext_resource type="Script" uid="uid://qf7h5xkvdgqw" path="res://menus/scenes/game_scene/tutorial_manager.gd" id="4_eriqx"]
[ext_resource type="PackedScene" uid="uid://belanf70yj2sq" path="res://menus/scenes/game_scene/tutorials/tutorial_3.tscn" id="5_fejky"]
[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_x17wb")
[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="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 32
script = ExtResource("2_fxhbp")
[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_5rvw0")
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "Change Level State: "
[node name="ColorPickerButton" type="ColorPickerButton" parent="MarginContainer/VBoxContainer/HBoxContainer2"]
unique_name_in_owner = true
layout_mode = 2
text = "Change Color"
[node name="TutorialManager" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("4_eriqx")
tutorial_scenes = Array[PackedScene]([ExtResource("5_fejky")])
[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"]
[connection signal="color_changed" from="MarginContainer/VBoxContainer/HBoxContainer2/ColorPickerButton" to="." method="_on_color_picker_button_color_changed"]

View File

@ -0,0 +1,19 @@
extends Node
@export var tutorial_scenes : Array[PackedScene]
@export var open_delay : float = 0.25
@export var auto_open : bool = false
func open_tutorials() -> void:
if open_delay > 0.0:
await get_tree().create_timer(open_delay, false).timeout
for tutorial_scene in tutorial_scenes:
var tutorial_menu : OverlaidMenu = 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
func _ready() -> void:
if auto_open:
open_tutorials()

View File

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

View File

@ -0,0 +1,25 @@
[gd_scene load_steps=2 format=3 uid="uid://cy58hst85hxsj"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_apclv"]
[node name="Tutorial1" instance=ExtResource("1_apclv")]
[node name="MenuPanelContainer" parent="." index="1"]
offset_left = -206.0
offset_top = -75.0
offset_right = 215.0
offset_bottom = 76.0
[node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"]
theme_override_constants/separation = 16
[node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"]
text = "Tutorial"
[node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"]
visible = true
[node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"]
text = "[center]Click the Win button to progress.
Click the Lose button to try again.[/center]"
fit_content = true

View File

@ -0,0 +1,25 @@
[gd_scene load_steps=2 format=3 uid="uid://dxrk0tt7ciipu"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_cg7og"]
[node name="Tutorial2" instance=ExtResource("1_cg7og")]
[node name="MenuPanelContainer" parent="." index="1"]
offset_left = -206.0
offset_top = -75.0
offset_right = 215.0
offset_bottom = 76.0
[node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"]
theme_override_constants/separation = 16
[node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"]
text = "Tutorial"
[node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"]
visible = true
[node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"]
text = "[center]Progress is saved.
Pressing Continue from the main menu will load the last level played.[/center]"
fit_content = true

View File

@ -0,0 +1,26 @@
[gd_scene load_steps=2 format=3 uid="uid://belanf70yj2sq"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_w71gn"]
[node name="Tutorial2" instance=ExtResource("1_w71gn")]
[node name="MenuPanelContainer" parent="." index="1"]
offset_left = -206.0
offset_top = -75.0
offset_right = 215.0
offset_bottom = 76.0
[node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"]
theme_override_constants/separation = 16
[node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"]
text = "Tutorial"
[node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"]
visible = true
[node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"]
text = "[center]The color picker at the bottom-right updates the level state. This change persists until the game is reset.
The label at the bottom-center displays the current input action detected, if any are setup for the project.[/center]"
fit_content = true

View File

@ -0,0 +1,11 @@
[gd_scene load_steps=3 format=3 uid="uid://c63l6okbko3xp"]
[ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_8i8ik"]
[ext_resource type="Script" uid="uid://1j5xbugtakig" path="res://menus/scenes/loading_screen/loading_screen.gd" id="2_3hi1w"]
[node name="LevelLoadingScreen" instance=ExtResource("1_8i8ik")]
script = ExtResource("2_3hi1w")
_in_progress = "Loading Level..."
_in_progress_waiting = "Still Loading Level..."
_in_progress_still_waiting = "Still Loading Level... (%d seconds)"
_complete = "Loading Level Complete!"

View File

@ -0,0 +1 @@
extends LoadingScreen

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://dshcs2ioahnvg"]
[ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_rqt5e"]
[ext_resource type="Script" uid="uid://1j5xbugtakig" path="res://menus/scenes/loading_screen/loading_screen.gd" id="2_t84qw"]
[node name="LoadingScreen" instance=ExtResource("1_rqt5e")]
script = ExtResource("2_t84qw")

View File

@ -0,0 +1,91 @@
extends LoadingScreen
@export_dir var _spatial_shader_material_dir : String
@export_file("*.tscn") var _cache_shaders_scene : String
@export var _mesh : Mesh
@export_group("Advanced")
@export var _matching_extensions : Array[String] = [".tres", ".material", ".res"]
@export var _ignore_subfolders : Array[String] = [".", ".."]
@export var _shader_delay_timer : float = 0.1
var _loading_shader_cache : bool = false
var _caching_progress : float = 0.0 :
set(value):
if value <= _caching_progress:
return
_caching_progress = value
update_total_loading_progress()
_reset_loading_stage()
func can_load_shader_cache() -> bool:
return not _spatial_shader_material_dir.is_empty() and \
not _cache_shaders_scene.is_empty() and \
SceneLoader.is_loading_scene(_cache_shaders_scene)
func update_total_loading_progress() -> void:
var partial_total := _scene_loading_progress
if can_load_shader_cache():
partial_total += _caching_progress
partial_total /= 2
_total_loading_progress = partial_total
func _set_scene_loading_complete() -> void:
super._set_scene_loading_complete()
if can_load_shader_cache() and not _loading_shader_cache:
_loading_shader_cache = true
_show_all_draw_passes_once()
if can_load_shader_cache() and _caching_progress < 1.0:
return
SceneLoader._background_loading = false
SceneLoader.set_process(true)
func _show_all_draw_passes_once() -> void:
var all_materials := _traverse_folders(_spatial_shader_material_dir)
var total_material_count := all_materials.size()
var cached_material_count := 0
for material_path in all_materials:
_load_material(material_path)
cached_material_count += 1
_caching_progress = float(cached_material_count) / total_material_count
if _shader_delay_timer > 0:
await(get_tree().create_timer(_shader_delay_timer).timeout)
func _traverse_folders(dir_path:String) -> PackedStringArray:
var material_list:PackedStringArray = []
if not dir_path.ends_with("/"):
dir_path += "/"
var dir := DirAccess.open(dir_path)
if not dir:
push_error("failed to access the path ", dir_path)
return []
if dir.list_dir_begin() != OK:
push_error("failed to access the path ", dir_path)
return []
var file_name := dir.get_next()
while file_name != "":
if not dir.current_is_dir():
var matches : bool = false
for extension in _matching_extensions:
if file_name.ends_with(extension):
matches = true
break
if matches:
material_list.append(dir_path + file_name)
else:
var subfolder_name := file_name
if not subfolder_name in _ignore_subfolders:
material_list.append_array(_traverse_folders(dir_path + subfolder_name))
file_name = dir.get_next()
return material_list
func _load_material(path:String) -> void:
var material_shower := MeshInstance3D.new()
material_shower.mesh = _mesh
var material := ResourceLoader.load(path) as Material
material_shower.set_surface_override_material(0, material)
%SpatialShaderTypeCaches.add_child(material_shower)
func _ready() -> void:
SceneLoader._background_loading = true

View File

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

View File

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://b8sfwmevux8s1"]
[ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_b2x1j"]
[ext_resource type="Script" uid="uid://cit747gi4v6jd" path="res://menus/scenes/loading_screen/loading_screen_with_shader_caching.gd" id="2_n73ts"]
[sub_resource type="QuadMesh" id="QuadMesh_klnwy"]
[node name="LoadingScreen" instance=ExtResource("1_b2x1j")]
script = ExtResource("2_n73ts")
_spatial_shader_material_dir = ""
_cache_shaders_scene = "res://menus/scenes/game_scene/game_ui.tscn"
_mesh = SubResource("QuadMesh_klnwy")
_matching_extensions = Array[String]([".tres", ".material", ".res"])
_ignore_subfolders = Array[String]([".", ".."])
_shader_delay_timer = 0.1
[node name="SpatialShaderTypeCaches" type="Node3D" parent="." index="2"]
unique_name_in_owner = true
[node name="Camera3D" type="Camera3D" parent="SpatialShaderTypeCaches" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.408)
current = true

View File

@ -0,0 +1,33 @@
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.
@onready var level_buttons_container: ItemList = %LevelButtonsContainer
@onready var scene_lister: SceneLister = $SceneLister
signal level_selected
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()
var max_level_reached := GameState.get_max_level_reached()
var level_iter := 0
for file_path in scene_lister.files:
if level_iter > max_level_reached : break
level_iter += 1
var file_name := 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)
func _on_level_buttons_container_item_activated(index: int) -> void:
GameState.set_current_level(index)
level_selected.emit()

View File

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

View File

@ -0,0 +1,49 @@
[gd_scene load_steps=4 format=3 uid="uid://fybssggvts5q"]
[ext_resource type="Script" uid="uid://x734txqgcn84" path="res://menus/scenes/menus/level_select_menu/level_select_menu.gd" id="1_wxb4a"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_oixp6"]
[ext_resource type="Script" uid="uid://wjq7li836lwj" path="res://addons/maaacks_game_template/extras/scripts/scene_lister.gd" id="3_stdqw"]
[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_wxb4a")
[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_oixp6")
[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_stdqw")
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://cns18c1ywt06b

View File

@ -0,0 +1,12 @@
[gd_scene load_steps=5 format=3 uid="uid://1on734grcvxa"]
[ext_resource type="PackedScene" uid="uid://c6k5nnpbypshi" path="res://addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.tscn" id="1_557p1"]
[ext_resource type="Script" uid="uid://cns18c1ywt06b" path="res://menus/scenes/menus/main_menu/main_menu.gd" id="2_wwoqg"]
[ext_resource type="PackedScene" uid="uid://bq2ti3hrjlgdl" path="res://menus/scenes/menus/options_menu/master_options_menu_with_tabs.tscn" id="3_n1pnu"]
[ext_resource type="PackedScene" uid="uid://ct0yseu6qy88d" path="res://menus/scenes/credits/scrollable_credits.tscn" id="4_0emlv"]
[node name="MainMenu" instance=ExtResource("1_557p1")]
script = ExtResource("2_wwoqg")
game_scene_path = "res://menus/scenes/game_scene/game_ui.tscn"
options_packed_scene = ExtResource("3_n1pnu")
credits_packed_scene = ExtResource("4_0emlv")

View File

@ -0,0 +1,69 @@
extends MainMenu
@export var level_select_packed_scene: PackedScene
var level_select_scene : Node
var animation_state_machine : AnimationNodeStateMachinePlayback
func load_game_scene() -> void:
GameState.start_game()
super.load_game_scene()
func new_game() -> void:
GlobalState.reset()
load_game_scene()
func intro_done() -> void:
animation_state_machine.travel("OpenMainMenu")
func _is_in_intro() -> bool:
return animation_state_machine.get_current_node() == "Intro"
func _event_is_mouse_button_released(event : InputEvent) -> bool:
return event is InputEventMouseButton and not event.is_pressed()
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 : Node) -> void:
super._open_sub_menu(menu)
animation_state_machine.travel("OpenSubMenu")
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 _add_level_select_if_set() -> void:
if level_select_packed_scene == null: return
if GameState.get_max_level_reached() <= 0 : return
level_select_scene = level_select_packed_scene.instantiate()
level_select_scene.hide()
%LevelSelectContainer.call_deferred("add_child", level_select_scene)
if level_select_scene.has_signal("level_selected"):
level_select_scene.connect("level_selected", load_game_scene)
%LevelSelectButton.show()
func _show_continue_if_set() -> void:
if GameState.has_game_state():
%ContinueGameButton.show()
func _ready() -> void:
super._ready()
_add_level_select_if_set()
_show_continue_if_set()
animation_state_machine = $MenuAnimationTree.get("parameters/playback")
func _on_continue_game_button_pressed() -> void:
load_game_scene()
func _on_level_select_button_pressed() -> void:
_open_sub_menu(level_select_scene)

View File

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

View File

@ -0,0 +1,417 @@
[gd_scene load_steps=18 format=3 uid="uid://vm22i5sv3p3s"]
[ext_resource type="PackedScene" uid="uid://c6k5nnpbypshi" path="res://addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.tscn" id="1_my8ii"]
[ext_resource type="Script" uid="uid://c0ntfmiuw4ttg" path="res://menus/scenes/menus/main_menu/main_menu_with_animations.gd" id="2_nyjay"]
[ext_resource type="PackedScene" uid="uid://bq2ti3hrjlgdl" path="res://menus/scenes/menus/options_menu/master_options_menu_with_tabs.tscn" id="3_f368h"]
[ext_resource type="PackedScene" uid="uid://ct0yseu6qy88d" path="res://menus/scenes/credits/scrollable_credits.tscn" id="4_85otm"]
[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("FlowControlContainer: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("FlowControlContainer/FlowControl/BackButton:visible")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("FlowControlContainer:mouse_filter")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [2]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("MenuContainer: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("VersionMargin/VersionContainer:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 1)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer:lock")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/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("FlowControlContainer/FlowControl/BackButton:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("MenuContainer: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)]
}
[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("FlowControlContainer/FlowControl/BackButton:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
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),
"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/SubTitleMargin/SubTitleContainer: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("MenuContainer/MenuButtonsMargin/MenuButtonsContainer:modulate")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("FlowControlContainer:mouse_filter")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [2]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("MenuContainer: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("VersionMargin/VersionContainer:modulate")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(1, 1, 1, 0)]
}
tracks/7/type = "value"
tracks/7/imported = false
tracks/7/enabled = true
tracks/7/path = NodePath("MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer:lock")
tracks/7/interp = 1
tracks/7/loop_wrap = true
tracks/7/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" instance=ExtResource("1_my8ii")]
script = ExtResource("2_nyjay")
level_select_packed_scene = null
game_scene_path = "uid://cxbskue0lj2gv"
options_packed_scene = ExtResource("3_f368h")
credits_packed_scene = ExtResource("4_85otm")
[node name="MenuAnimationPlayer" type="AnimationPlayer" parent="." index="1"]
libraries = {
&"": SubResource("AnimationLibrary_2kqig")
}
[node name="MenuAnimationTree" type="AnimationTree" parent="." index="2"]
tree_root = SubResource("AnimationNodeStateMachine_vikuh")
anim_player = NodePath("../MenuAnimationPlayer")
parameters/conditions/intro_done = false
[node name="BackgroundMusicPlayer" parent="." index="3"]
bus = &"Master"
[node name="VersionContainer" parent="VersionMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="TitleContainer" parent="MenuContainer/TitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="TitleLabel" parent="MenuContainer/TitleMargin/TitleContainer" index="0"]
text = "Movement tests"
[node name="SubTitleContainer" parent="MenuContainer/SubTitleMargin" index="0"]
modulate = Color(1, 1, 1, 0)
[node name="SubTitleLabel" parent="MenuContainer/SubTitleMargin/SubTitleContainer" index="0"]
text = "A prototype"
[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="ContinueGameButton" type="Button" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="1"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Continue"
[node name="LevelSelectButton" type="Button" parent="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer" index="2"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Level Select"
[node name="LevelSelectContainer" type="MarginContainer" parent="." index="9"]
unique_name_in_owner = true
layout_mode = 0
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 2
theme_override_constants/margin_left = 16
theme_override_constants/margin_top = 32
theme_override_constants/margin_right = 16
theme_override_constants/margin_bottom = 32
[connection signal="pressed" from="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer/ContinueGameButton" to="." method="_on_continue_game_button_pressed"]
[connection signal="pressed" from="MenuContainer/MenuButtonsMargin/MenuButtonsContainer/MenuButtonsBoxContainer/LevelSelectButton" to="." method="_on_level_select_button_pressed"]

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://cx21fockjcehv

View File

@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=3 uid="uid://cimjrqopk7trl"]
[ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="1_xywkw"]
[ext_resource type="Script" uid="uid://cx21fockjcehv" path="res://menus/scenes/menus/options_menu/audio/audio_input_option_control.gd" id="2_cgbct"]
[node name="AudioInputOptionControl" instance=ExtResource("1_xywkw")]
script = ExtResource("2_cgbct")
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 @@
extends AudioOptionsMenu

View File

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

View File

@ -0,0 +1,11 @@
[gd_scene load_steps=4 format=3 uid="uid://c7ulxshxe636e"]
[ext_resource type="PackedScene" uid="uid://c8vnncjwqcpab" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/audio/audio_options_menu.tscn" id="1_8yusf"]
[ext_resource type="Script" uid="uid://ccd8k37glks2h" path="res://menus/scenes/menus/options_menu/audio/audio_options_menu.gd" id="2_85b82"]
[ext_resource type="PackedScene" uid="uid://cimjrqopk7trl" path="res://menus/scenes/menus/options_menu/audio/audio_input_option_control.tscn" id="3_3g00r"]
[node name="Audio" instance=ExtResource("1_8yusf")]
script = ExtResource("2_85b82")
[node name="AudioInputOptionControl" parent="VBoxContainer" index="2" instance=ExtResource("3_3g00r")]
layout_mode = 2

View File

@ -0,0 +1,4 @@
extends Control
func _on_ResetGameControl_reset_confirmed() -> void:
GlobalState.reset()

View File

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

View File

@ -0,0 +1,26 @@
[gd_scene load_steps=4 format=3 uid="uid://csyeb55n3u6bs"]
[ext_resource type="Script" uid="uid://do8gkcahgjpj2" path="res://menus/scenes/menus/options_menu/game/game_options_menu.gd" id="1_u06ei"]
[ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_vwave"]
[ext_resource type="PackedScene" uid="uid://dfjkn4yl3q1am" path="res://menus/scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_hu6k8"]
[node name="Game" type="MarginContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
theme_override_constants/margin_top = 24
theme_override_constants/margin_bottom = 24
script = ExtResource("1_u06ei")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
custom_minimum_size = Vector2(400, 0)
layout_mode = 2
size_flags_horizontal = 4
alignment = 1
script = ExtResource("2_vwave")
search_depth = 2
[node name="ResetGameControl" parent="VBoxContainer" instance=ExtResource("3_hu6k8")]
layout_mode = 2
[connection signal="reset_confirmed" from="VBoxContainer/ResetGameControl" to="." method="_on_ResetGameControl_reset_confirmed"]

View File

@ -0,0 +1,13 @@
extends HBoxContainer
signal reset_confirmed
func _on_ResetButton_pressed() -> void:
$ConfirmResetDialog.popup_centered()
$ResetButton.disabled = true
func _on_ConfirmResetDialog_confirmed() -> void:
reset_confirmed.emit()
func _on_confirm_reset_dialog_canceled() -> void:
$ResetButton.disabled = false

View File

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

View File

@ -0,0 +1,27 @@
[gd_scene load_steps=2 format=3 uid="uid://dfjkn4yl3q1am"]
[ext_resource type="Script" uid="uid://bijygd7ul853x" path="res://menus/scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd" id="1_feltj"]
[node name="ResetGameControl" type="HBoxContainer"]
custom_minimum_size = Vector2(0, 32)
offset_top = 210.0
offset_right = 305.0
offset_bottom = 242.0
script = ExtResource("1_feltj")
[node name="ResetLabel" type="Label" parent="."]
layout_mode = 2
size_flags_horizontal = 3
text = "Reset Game :"
[node name="ResetButton" type="Button" parent="."]
custom_minimum_size = Vector2(72, 32)
layout_mode = 2
text = "Reset"
[node name="ConfirmResetDialog" type="ConfirmationDialog" parent="."]
dialog_text = "Do you want to reset your game data?"
[connection signal="pressed" from="ResetButton" to="." method="_on_ResetButton_pressed"]
[connection signal="canceled" from="ConfirmResetDialog" to="." method="_on_confirm_reset_dialog_canceled"]
[connection signal="confirmed" from="ConfirmResetDialog" to="." method="_on_ConfirmResetDialog_confirmed"]

View File

@ -0,0 +1,65 @@
[gd_scene load_steps=3 format=3 uid="uid://ceehkbh6emrdm"]
[ext_resource type="Script" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="1_goga1"]
[ext_resource type="PackedScene" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/slider_option_control.tscn" id="2_iyvrj"]
[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_goga1")
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_iyvrj")]
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_iyvrj")]
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,2 @@
@tool
extends InputOptionsMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://cmoeybw5t652d"]
[ext_resource type="PackedScene" uid="uid://dp3rgqaehb3xu" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_options_menu.tscn" id="1_7pp6d"]
[ext_resource type="Script" uid="uid://crmckg7rtbwok" path="res://menus/scenes/menus/options_menu/input/input_options_menu.gd" id="2_0afnv"]
[node name="Controls" instance=ExtResource("1_7pp6d")]
script = ExtResource("2_0afnv")

View File

@ -0,0 +1,41 @@
[gd_scene load_steps=4 format=3 uid="uid://6ykdvf4srto5"]
[ext_resource type="PackedScene" uid="uid://dp3rgqaehb3xu" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_options_menu.tscn" id="1_mva3c"]
[ext_resource type="Script" uid="uid://crmckg7rtbwok" path="res://menus/scenes/menus/options_menu/input/input_options_menu.gd" id="2_2ceeu"]
[ext_resource type="PackedScene" uid="uid://cl416gdb1fgwr" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/slider_option_control.tscn" id="3_pecdw"]
[node name="Controls" instance=ExtResource("1_mva3c")]
script = ExtResource("2_2ceeu")
[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("3_pecdw")]
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 @@
extends MasterOptionsMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://bh2anuw21xdwu"]
[ext_resource type="PackedScene" uid="uid://bvwl11s2p0hd" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.tscn" id="1_ma1jo"]
[ext_resource type="Script" uid="uid://bml584x67xpj2" path="res://menus/scenes/menus/options_menu/master_options_menu.gd" id="2_mk4ln"]
[node name="MasterOptionsMenu" instance=ExtResource("1_ma1jo")]
script = ExtResource("2_mk4ln")

View File

@ -0,0 +1,39 @@
[gd_scene load_steps=8 format=3 uid="uid://bq2ti3hrjlgdl"]
[ext_resource type="PackedScene" uid="uid://bvwl11s2p0hd" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.tscn" id="1_iwcoa"]
[ext_resource type="Script" uid="uid://bml584x67xpj2" path="res://menus/scenes/menus/options_menu/master_options_menu.gd" id="2_36oo7"]
[ext_resource type="PackedScene" uid="uid://cmoeybw5t652d" path="res://menus/scenes/menus/options_menu/input/input_options_menu.tscn" id="3_l1ye5"]
[ext_resource type="PackedScene" uid="uid://ceehkbh6emrdm" path="res://menus/scenes/menus/options_menu/input/input_extras_menu.tscn" id="4_w27xj"]
[ext_resource type="PackedScene" uid="uid://c7ulxshxe636e" path="res://menus/scenes/menus/options_menu/audio/audio_options_menu.tscn" id="5_f0yn1"]
[ext_resource type="PackedScene" uid="uid://ct0i2rcp47pm7" path="res://menus/scenes/menus/options_menu/video/video_options_menu_with_extras.tscn" id="6_7ovpx"]
[ext_resource type="PackedScene" uid="uid://csyeb55n3u6bs" path="res://menus/scenes/menus/options_menu/game/game_options_menu.tscn" id="7_q1wy3"]
[node name="MasterOptionsMenu" instance=ExtResource("1_iwcoa")]
script = ExtResource("2_36oo7")
[node name="TabContainer" parent="." index="0"]
current_tab = 0
[node name="Controls" parent="TabContainer" index="1" instance=ExtResource("3_l1ye5")]
layout_mode = 2
metadata/_tab_index = 0
[node name="Inputs" parent="TabContainer" index="2" instance=ExtResource("4_w27xj")]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="Audio" parent="TabContainer" index="3" instance=ExtResource("5_f0yn1")]
visible = false
layout_mode = 2
metadata/_tab_index = 2
[node name="Video" parent="TabContainer" index="4" instance=ExtResource("6_7ovpx")]
visible = false
layout_mode = 2
metadata/_tab_index = 3
[node name="Game" parent="TabContainer" index="5" instance=ExtResource("7_q1wy3")]
visible = false
layout_mode = 2
metadata/_tab_index = 4

View File

@ -0,0 +1 @@
extends MiniOptionsMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://bia3medhlsg3j"]
[ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_8lxe7"]
[ext_resource type="Script" uid="uid://d230xsd8s1bgc" path="res://menus/scenes/menus/options_menu/mini_options_menu.gd" id="2_ptjhm"]
[node name="MiniOptionsMenu" instance=ExtResource("1_8lxe7")]
script = ExtResource("2_ptjhm")

View File

@ -0,0 +1,4 @@
extends MiniOptionsMenu
func _on_reset_game_control_reset_confirmed() -> void:
GlobalState.reset()

View File

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

View File

@ -0,0 +1,13 @@
[gd_scene load_steps=4 format=3 uid="uid://foajscu2dqkk"]
[ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_gcivb"]
[ext_resource type="Script" uid="uid://ceg0gjjapg77k" path="res://menus/scenes/menus/options_menu/mini_options_menu_with_reset.gd" id="2_oof6u"]
[ext_resource type="PackedScene" uid="uid://dfjkn4yl3q1am" path="res://menus/scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_gss4d"]
[node name="MiniOptionsMenu" instance=ExtResource("1_gcivb")]
script = ExtResource("2_oof6u")
[node name="ResetGameControl" parent="." index="3" instance=ExtResource("3_gss4d")]
layout_mode = 2
[connection signal="reset_confirmed" from="ResetGameControl" to="." method="_on_reset_game_control_reset_confirmed"]

View File

@ -0,0 +1 @@
extends VideoOptionsMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://df8nj4p82ic65"]
[ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="1_kdy5u"]
[ext_resource type="Script" uid="uid://dihvdjypwmb1w" path="res://menus/scenes/menus/options_menu/video/video_options_menu.gd" id="2_2gjg5"]
[node name="Video" instance=ExtResource("1_kdy5u")]
script = ExtResource("2_2gjg5")

View File

@ -0,0 +1,33 @@
[gd_scene load_steps=4 format=3 uid="uid://ct0i2rcp47pm7"]
[ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="1_iqoga"]
[ext_resource type="Script" uid="uid://dihvdjypwmb1w" path="res://menus/scenes/menus/options_menu/video/video_options_menu.gd" id="2_ti4vq"]
[ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="3_nxs4g"]
[node name="Video" instance=ExtResource("1_iqoga")]
script = ExtResource("2_ti4vq")
[node name="AntiAliasingControl" parent="VBoxContainer" index="3" instance=ExtResource("3_nxs4g")]
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("3_nxs4g")]
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 @@
extends "res://addons/maaacks_game_template/base/scenes/opening/opening.gd"

View File

@ -0,0 +1 @@
uid://656mrvlybxv8

View File

@ -0,0 +1,8 @@
[gd_scene load_steps=3 format=3 uid="uid://dygcj05sb15ld"]
[ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/scenes/opening/opening.tscn" id="1_dit3p"]
[ext_resource type="Script" uid="uid://656mrvlybxv8" path="res://menus/scenes/opening/opening.gd" id="2_tudjo"]
[node name="Opening" instance=ExtResource("1_dit3p")]
script = ExtResource("2_tudjo")
next_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"

View File

@ -0,0 +1,13 @@
[gd_scene load_steps=4 format=3 uid="uid://dwo50456dv6va"]
[ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/scenes/opening/opening.tscn" id="1_e0yng"]
[ext_resource type="Script" uid="uid://656mrvlybxv8" path="res://menus/scenes/opening/opening.gd" id="2_qjsl3"]
[ext_resource type="Texture2D" uid="uid://6vwgmbr7eylm" path="res://menus/assets/godot_engine_logo/logo_vertical_color_dark.png" id="3_voviu"]
[node name="Opening" instance=ExtResource("1_e0yng")]
script = ExtResource("2_qjsl3")
next_scene = "res://menus/scenes/menus/main_menu/main_menu_with_animations.tscn"
images = Array[Texture2D]([ExtResource("3_voviu")])
[node name="BackgroundMusicPlayer" parent="." index="0"]
bus = &"Master"

View File

@ -0,0 +1 @@
extends GameWonMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://dmq0tpdodtomh"]
[ext_resource type="PackedScene" uid="uid://4brssbq1ghsw" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/game_won_menu.tscn" id="1_qj15s"]
[ext_resource type="Script" uid="uid://cb5f86vwhucv1" path="res://menus/scenes/overlaid_menus/game_won_menu.gd" id="2_5yetg"]
[node name="GameWonMenu" instance=ExtResource("1_qj15s")]
script = ExtResource("2_5yetg")

View File

@ -0,0 +1 @@
extends LevelLostMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://ciyq8eiv1mtie"]
[ext_resource type="PackedScene" uid="uid://dkq3nhkmhu4je" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/level_lost_menu.tscn" id="1_ql4ov"]
[ext_resource type="Script" uid="uid://rhnj8gy1tp6x" path="res://menus/scenes/overlaid_menus/level_lost_menu.gd" id="2_swrtm"]
[node name="LevelLostMenu" instance=ExtResource("1_ql4ov")]
script = ExtResource("2_swrtm")

View File

@ -0,0 +1 @@
extends LevelWonMenu

View File

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

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://b46jlduh4lllk"]
[ext_resource type="PackedScene" uid="uid://y3vtx0e0shv4" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/level_won_menu.tscn" id="1_sf5pg"]
[ext_resource type="Script" uid="uid://c4uqtcx5p2yip" path="res://menus/scenes/overlaid_menus/level_won_menu.gd" id="2_vajr3"]
[node name="LevelWonMenu" instance=ExtResource("1_sf5pg")]
script = ExtResource("2_vajr3")

View File

@ -0,0 +1,7 @@
[gd_scene load_steps=3 format=3 uid="uid://dim045la3mijk"]
[ext_resource type="PackedScene" uid="uid://cikf3o5omnunl" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/mini_options_overlaid_menu.tscn" id="1_5piya"]
[ext_resource type="PackedScene" uid="uid://foajscu2dqkk" path="res://menus/scenes/menus/options_menu/mini_options_menu_with_reset.tscn" id="2_3u5po"]
[node name="MiniOptionsOverlaidMenu" instance=ExtResource("1_5piya")]
menu_scene = ExtResource("2_3u5po")

Some files were not shown because too many files have changed in this diff Show More