Compare commits

...

7 commits

Author SHA1 Message Date
8b9bf7e52d Merge branch 'dev-menu' into dev-base
Fuck you AXVIII3 You changed files your not supposed to change your in branch, ending with a fucking hell of a merge commit
2023-04-09 17:10:55 +02:00
AXVIII3
ea9cb71f9a Resolutions Dropdown and Typo 2023-04-09 18:34:49 +05:30
AXVIII3
9d878116f0 Music system 2023-04-09 17:47:11 +05:30
AXVIII3
03192a25bf Main Menu, Settings Menu and Save system 2023-04-09 17:30:52 +05:30
f6eb10f644 Seting Up Theme so that It can be Used 2023-04-07 20:10:23 +02:00
dfb751f37f Set Resize Mode 2023-04-07 19:58:16 +02:00
b7ead67e58 Starting To Build UI Theme 2023-04-07 17:51:40 +02:00
40 changed files with 1359 additions and 20 deletions

Binary file not shown.

View file

@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://cnjan4pbb0t7y"
path="res://.godot/imported/dogica.ttf-cca28cc7d16ed3c13206eee2bc7c7b52.fontdata"
[deps]
source_file="res://Assets/Fonts/Dogica/dogica.ttf"
dest_files=["res://.godot/imported/dogica.ttf-cca28cc7d16ed3c13206eee2bc7c7b52.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View file

@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://b3gehhp8onguu"
path="res://.godot/imported/dogicabold.ttf-7a6b755be6795c57e32ed0bf4e1f5470.fontdata"
[deps]
source_file="res://Assets/Fonts/Dogica/dogicabold.ttf"
dest_files=["res://.godot/imported/dogicabold.ttf-7a6b755be6795c57e32ed0bf4e1f5470.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View file

@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://dqdeftjkwxe64"
path="res://.godot/imported/dogicapixel.ttf-3989b977d2a1d83a86699e4542933e5f.fontdata"
[deps]
source_file="res://Assets/Fonts/Dogica/dogicapixel.ttf"
dest_files=["res://.godot/imported/dogicapixel.ttf-3989b977d2a1d83a86699e4542933e5f.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

Binary file not shown.

View file

@ -0,0 +1,33 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://ymsnpcoeg07j"
path="res://.godot/imported/dogicapixelbold.ttf-304a51366a90ea0cf00d3f76893ac3ec.fontdata"
[deps]
source_file="res://Assets/Fonts/Dogica/dogicapixelbold.ttf"
dest_files=["res://.godot/imported/dogicapixelbold.ttf-304a51366a90ea0cf00d3f76893ac3ec.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
hinting=1
subpixel_positioning=1
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[]
language_support={}
script_support={}
opentype_features={}

BIN
Assets/Sprites/Cross.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 B

View file

@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dwkjfno8mjrdp"
path="res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex"
uid="uid://dkotcqflp3e32"
path="res://.godot/imported/Egg 1.png-1b589e8341e1098857da93ae736df578.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/ColorPallet.png"
dest_files=["res://.godot/imported/ColorPallet.png-9feaa0f98adb7b976a9666999fd546c6.ctex"]
source_file="res://Assets/Sprites/Easter Egg/Egg 1.png"
dest_files=["res://.godot/imported/Egg 1.png-1b589e8341e1098857da93ae736df578.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

View file

@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://db70wcy5ua3jd"
path="res://.godot/imported/jesus_spritesheet.png-2f2e431acd4617eba93529f5420694c6.ctex"
uid="uid://c3yg6u8yncau3"
path="res://.godot/imported/Egg 2.png-3ecb9a3c38d8804b494043f6efeaf5ee.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Jesus/jesus_spritesheet.png"
dest_files=["res://.godot/imported/jesus_spritesheet.png-2f2e431acd4617eba93529f5420694c6.ctex"]
source_file="res://Assets/Sprites/Easter Egg/Egg 2.png"
dest_files=["res://.godot/imported/Egg 2.png-3ecb9a3c38d8804b494043f6efeaf5ee.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://daat37cyg0go5"
path="res://.godot/imported/Egg 3.png-c72e63a8a820676347949adf94a3512a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Easter Egg/Egg 3.png"
dest_files=["res://.godot/imported/Egg 3.png-c72e63a8a820676347949adf94a3512a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://tjxkew3m4v8m"
path="res://.godot/imported/Shadow.png-763630734c7fdb0535d00bfd3d40a6b3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Easter Egg/Shadow.png"
dest_files=["res://.godot/imported/Shadow.png-763630734c7fdb0535d00bfd3d40a6b3.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://y532moy2ihmn"
path="res://.godot/imported/good bunny.png-cdfb0a89f8fe9779f6b55c0cc997e43c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Good Bunny/good bunny.png"
dest_files=["res://.godot/imported/good bunny.png-cdfb0a89f8fe9779f6b55c0cc997e43c.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
Assets/Sprites/Jesus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

View file

@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bqi3ddjrcj2bh"
path="res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex"
uid="uid://cnrja43wk2mmd"
path="res://.godot/imported/Jesus.png-03798d7c17250d4d3d3b4253b34b9eae.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/TileMap.png"
dest_files=["res://.godot/imported/TileMap.png-5a8ebee45e38c1e4c53b5e5cf69bfe18.ctex"]
source_file="res://Assets/Sprites/Jesus.png"
dest_files=["res://.godot/imported/Jesus.png-03798d7c17250d4d3d3b4253b34b9eae.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c5jj6s5orw6mi"
path="res://.godot/imported/crucefix.png-cb219c7b600f79e2811b5e89faa1becb.ctex"
uid="uid://dhvvw4yckl8x7"
path="res://.godot/imported/Cake.png-a1299373d3c2f4ed321393ceaefc7ccc.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/crucefix.png"
dest_files=["res://.godot/imported/crucefix.png-cb219c7b600f79e2811b5e89faa1becb.ctex"]
source_file="res://Assets/Sprites/Props/Cake.png"
dest_files=["res://.godot/imported/Cake.png-a1299373d3c2f4ed321393ceaefc7ccc.ctex"]
[params]

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dpbyjnyg765r7"
path="res://.godot/imported/awesomeness.wav-59f1c1423f54ec46cf96ddbcf1a5f126.sample"
[deps]
source_file="res://Assets/Temp Music/awesomeness.wav"
dest_files=["res://.godot/imported/awesomeness.wav-59f1c1423f54ec46cf96ddbcf1a5f126.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

View file

@ -0,0 +1,16 @@
[gd_resource type="AudioBusLayout" format=3 uid="uid://df0inyse5slni"]
[resource]
bus/0/volume_db = 0.796078
bus/1/name = &"Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = 0.0
bus/1/send = &"Master"
bus/2/name = &"SFX"
bus/2/solo = false
bus/2/mute = false
bus/2/bypass_fx = false
bus/2/volume_db = 0.0
bus/2/send = &"Master"

Binary file not shown.

View file

@ -0,0 +1,24 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://c6nf5s6xy2uii"
path="res://.godot/imported/omw-to-beat-the-big-bad.wav-7f8a9a2e19afe1786d6b9f29ff762163.sample"
[deps]
source_file="res://Assets/Temp Music/omw-to-beat-the-big-bad.wav"
dest_files=["res://.godot/imported/omw-to-beat-the-big-bad.wav-7f8a9a2e19afe1786d6b9f29ff762163.sample"]
[params]
force/8_bit=false
force/mono=false
force/max_rate=false
force/max_rate_hz=44100
edit/trim=false
edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=0

109
Assets/Theme.tres Normal file
View file

@ -0,0 +1,109 @@
[gd_resource type="Theme" load_steps=13 format=3 uid="uid://o3vg845para"]
[ext_resource type="FontFile" uid="uid://dqdeftjkwxe64" path="res://Assets/Fonts/Dogica/dogicapixel.ttf" id="1_43hgj"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rmi2t"]
bg_color = Color(0.427451, 0.423529, 0.8, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0, 0, 0, 1)
expand_margin_left = 7.0
expand_margin_right = 7.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_47cud"]
bg_color = Color(0.427451, 0.423529, 0.8, 1)
border_width_left = 4
border_width_bottom = 4
border_color = Color(0.317647, 0.301961, 0.658824, 1)
corner_radius_top_left = 2
corner_radius_bottom_right = 2
expand_margin_left = 7.0
expand_margin_right = 7.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2i81h"]
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
border_width_left = 4
border_width_bottom = 4
border_color = Color(0.262745, 0.243137, 0.556863, 1)
corner_radius_top_left = 2
corner_radius_bottom_right = 2
expand_margin_left = 10.0
expand_margin_right = 10.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_vel2s"]
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
expand_margin_left = 7.0
expand_margin_right = 7.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_7k6ml"]
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
expand_margin_right = 10.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_11k4d"]
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_nyi0q"]
bg_color = Color(0.392157, 0.380392, 0.760784, 1)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_qky0m"]
bg_color = Color(0.313726, 0.231373, 0.4, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_width_bottom = 4
border_color = Color(0.313726, 0.231373, 0.4, 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_lleuj"]
bg_color = Color(0.941176, 0.964706, 0.909804, 1)
border_width_left = 5
border_width_top = 5
border_width_right = 5
border_width_bottom = 5
border_color = Color(0.65098, 0.741176, 0.509804, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rcukk"]
bg_color = Color(0.941176, 0.964706, 0.909804, 1)
border_width_left = 3
border_width_top = 3
border_width_right = 3
border_color = Color(0.658824, 0.74902, 0.517647, 1)
expand_margin_left = 5.0
expand_margin_top = 5.0
expand_margin_right = 5.0
expand_margin_bottom = 5.0
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_44exv"]
bg_color = Color(0.894118, 0.94902, 0.835294, 1)
border_width_left = 4
border_width_top = 4
border_width_right = 4
border_color = Color(0.635294, 0.756863, 0.482353, 1)
expand_margin_left = 4.0
expand_margin_top = 4.0
expand_margin_right = 4.0
[resource]
default_font = ExtResource("1_43hgj")
Button/styles/focus = SubResource("StyleBoxFlat_rmi2t")
Button/styles/hover = SubResource("StyleBoxFlat_47cud")
Button/styles/normal = SubResource("StyleBoxFlat_2i81h")
Button/styles/pressed = SubResource("StyleBoxFlat_vel2s")
CheckButton/styles/hover_pressed = SubResource("StyleBoxFlat_7k6ml")
HSlider/styles/grabber_area = SubResource("StyleBoxFlat_11k4d")
HSlider/styles/grabber_area_highlight = SubResource("StyleBoxFlat_nyi0q")
HSlider/styles/slider = SubResource("StyleBoxFlat_qky0m")
TabContainer/colors/font_selected_color = Color(0.0980392, 0.0980392, 0.0980392, 1)
TabContainer/colors/font_unselected_color = Color(0.435294, 0.435294, 0.435294, 1)
TabContainer/styles/panel = SubResource("StyleBoxFlat_lleuj")
TabContainer/styles/tab_selected = SubResource("StyleBoxFlat_rcukk")
TabContainer/styles/tab_unselected = SubResource("StyleBoxFlat_44exv")

289
Scenes/MainMenu.tscn Normal file
View file

@ -0,0 +1,289 @@
[gd_scene load_steps=13 format=3 uid="uid://c061h8kte43oy"]
[ext_resource type="Script" path="res://Scripts/MainMenuManager.gd" id="1_0vcve"]
[ext_resource type="Script" path="res://Scripts/MenuButton.gd" id="1_croa2"]
[ext_resource type="Texture2D" uid="uid://ce6njuef2g4vy" path="res://Assets/Sprites/Cross.png" id="1_joe3h"]
[ext_resource type="Texture2D" uid="uid://tjxkew3m4v8m" path="res://Assets/Sprites/Easter Egg/Shadow.png" id="4_8qs7j"]
[ext_resource type="Texture2D" uid="uid://daat37cyg0go5" path="res://Assets/Sprites/Easter Egg/Egg 3.png" id="5_1ocdn"]
[ext_resource type="Texture2D" uid="uid://dhvvw4yckl8x7" path="res://Assets/Sprites/Props/Cake.png" id="5_5gyoe"]
[ext_resource type="Texture2D" uid="uid://cnrja43wk2mmd" path="res://Assets/Sprites/Jesus.png" id="6_ag6vh"]
[ext_resource type="Texture2D" uid="uid://c3yg6u8yncau3" path="res://Assets/Sprites/Easter Egg/Egg 2.png" id="8_cha7m"]
[ext_resource type="Texture2D" uid="uid://y532moy2ihmn" path="res://Assets/Sprites/Good Bunny/good bunny.png" id="8_j5v2i"]
[ext_resource type="Texture2D" uid="uid://dkotcqflp3e32" path="res://Assets/Sprites/Easter Egg/Egg 1.png" id="9_ujgvg"]
[ext_resource type="Theme" uid="uid://o3vg845para" path="res://Assets/Theme.tres" id="10_dmxwi"]
[ext_resource type="PackedScene" path="res://Scenes/MusicPlayer.tscn" id="12_x3k6e"]
[node name="MainMenu" type="Node" node_paths=PackedStringArray("button_to_focus_on_start")]
script = ExtResource("1_0vcve")
button_to_focus_on_start = NodePath("MainVBox/ButtonsVbox/PlayButton")
[node name="ColorRect" type="ColorRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.576471, 0.831373, 0.709804, 1)
[node name="Decorations" type="Control" parent="."]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Left Decor" type="CenterContainer" parent="Decorations"]
custom_minimum_size = Vector2(576, 0)
layout_mode = 1
anchors_preset = 9
anchor_bottom = 1.0
grow_vertical = 2
[node name="Shadow" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(226.563, 338.875)
scale = Vector2(22.7773, 15.6953)
texture = ExtResource("4_8qs7j")
[node name="Egg3" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(134, 477)
scale = Vector2(4.6875, 4.625)
texture = ExtResource("5_1ocdn")
[node name="Jesus" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(220, 335)
scale = Vector2(7.0431, 6.97321)
texture = ExtResource("6_ag6vh")
[node name="Cake" type="Sprite2D" parent="Decorations/Left Decor"]
position = Vector2(310, 491)
scale = Vector2(2.59375, 2.32031)
texture = ExtResource("5_5gyoe")
[node name="Right Decor" type="CenterContainer" parent="Decorations"]
custom_minimum_size = Vector2(576, 0)
layout_mode = 1
anchors_preset = 11
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 0
grow_vertical = 2
[node name="Shadow2" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(351, 403)
scale = Vector2(19.0938, 11.8125)
texture = ExtResource("4_8qs7j")
[node name="Egg2" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(294, 487)
rotation = -1.5708
scale = Vector2(4.89203, 5.21732)
texture = ExtResource("8_cha7m")
[node name="Egg1" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(420.75, 471.25)
scale = Vector2(4.89062, 4.95313)
texture = ExtResource("9_ujgvg")
[node name="GoodBunny" type="Sprite2D" parent="Decorations/Right Decor"]
position = Vector2(331, 458.5)
scale = Vector2(7.14286, 7.02941)
texture = ExtResource("8_j5v2i")
hframes = 6
[node name="MainVBox" type="VBoxContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("10_dmxwi")
[node name="CenterContainer" type="CenterContainer" parent="MainVBox"]
custom_minimum_size = Vector2(0, 150)
layout_mode = 2
[node name="Label" type="Label" parent="MainVBox/CenterContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 50
text = "HOPPY EASTER GAME THING"
horizontal_alignment = 1
vertical_alignment = 1
[node name="ButtonsVbox" type="VBoxContainer" parent="MainVBox"]
custom_minimum_size = Vector2(0, 495)
layout_mode = 2
theme_override_constants/separation = 10
alignment = 1
[node name="PlayButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../QuitButton")
focus_neighbor_top = NodePath("../QuitButton")
focus_neighbor_right = NodePath("../SettingsButton")
focus_neighbor_bottom = NodePath("../SettingsButton")
focus_next = NodePath("../SettingsButton")
focus_previous = NodePath("../QuitButton")
mouse_default_cursor_shape = 2
script = ExtResource("1_croa2")
text = "Play"
pointer_margin_from_center = 80
leftPointer = NodePath("LeftPointer")
rightPointer = NodePath("RightPointer")
textBox = NodePath("RichTextLabel")
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/PlayButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_font_sizes/normal_font_size = 30
bbcode_enabled = true
text = "[center]Play[/center]"
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/PlayButton"]
visible = false
position = Vector2(502, 12)
rotation = 1.5708
texture = ExtResource("1_joe3h")
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/PlayButton"]
visible = false
position = Vector2(650, 12)
rotation = -1.5708
texture = ExtResource("1_joe3h")
[node name="SettingsButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../PlayButton")
focus_neighbor_top = NodePath("../PlayButton")
focus_neighbor_right = NodePath("../AboutButton")
focus_neighbor_bottom = NodePath("../AboutButton")
focus_next = NodePath("../AboutButton")
focus_previous = NodePath("../PlayButton")
mouse_default_cursor_shape = 2
script = ExtResource("1_croa2")
text = "Settings"
pointer_margin_from_center = 130
leftPointer = NodePath("LeftPointer")
rightPointer = NodePath("RightPointer")
textBox = NodePath("RichTextLabel")
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/SettingsButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_font_sizes/normal_font_size = 30
bbcode_enabled = true
text = "[center]Settings[/center]"
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/SettingsButton"]
visible = false
position = Vector2(502, 12)
rotation = 1.5708
texture = ExtResource("1_joe3h")
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/SettingsButton"]
visible = false
position = Vector2(650, 12)
rotation = -1.5708
texture = ExtResource("1_joe3h")
[node name="AboutButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../SettingsButton")
focus_neighbor_top = NodePath("../SettingsButton")
focus_neighbor_right = NodePath("../QuitButton")
focus_neighbor_bottom = NodePath("../QuitButton")
focus_next = NodePath("../QuitButton")
focus_previous = NodePath("../SettingsButton")
mouse_default_cursor_shape = 2
script = ExtResource("1_croa2")
text = "About"
pointer_margin_from_center = 95
leftPointer = NodePath("LeftPointer")
rightPointer = NodePath("RightPointer")
textBox = NodePath("RichTextLabel")
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/AboutButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_font_sizes/normal_font_size = 30
bbcode_enabled = true
text = "[center]About[/center]"
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/AboutButton"]
visible = false
position = Vector2(502, 12)
rotation = 1.5708
texture = ExtResource("1_joe3h")
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/AboutButton"]
visible = false
position = Vector2(650, 12)
rotation = -1.5708
texture = ExtResource("1_joe3h")
[node name="QuitButton" type="TextureButton" parent="MainVBox/ButtonsVbox" node_paths=PackedStringArray("leftPointer", "rightPointer", "textBox")]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
focus_neighbor_left = NodePath("../AboutButton")
focus_neighbor_top = NodePath("../AboutButton")
focus_neighbor_right = NodePath("../PlayButton")
focus_neighbor_bottom = NodePath("../PlayButton")
focus_next = NodePath("../PlayButton")
focus_previous = NodePath("../AboutButton")
mouse_default_cursor_shape = 2
script = ExtResource("1_croa2")
text = "Quit"
pointer_margin_from_center = 80
leftPointer = NodePath("LeftPointer")
rightPointer = NodePath("RightPointer")
textBox = NodePath("RichTextLabel")
[node name="RichTextLabel" type="RichTextLabel" parent="MainVBox/ButtonsVbox/QuitButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
theme_override_font_sizes/normal_font_size = 30
bbcode_enabled = true
text = "[center]Quit[/center]"
[node name="LeftPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/QuitButton"]
visible = false
position = Vector2(502, 12)
rotation = 1.5708
texture = ExtResource("1_joe3h")
[node name="RightPointer" type="Sprite2D" parent="MainVBox/ButtonsVbox/QuitButton"]
visible = false
position = Vector2(650, 12)
rotation = -1.5708
texture = ExtResource("1_joe3h")
[node name="MusicPlayer" parent="." instance=ExtResource("12_x3k6e")]
[connection signal="pressed" from="MainVBox/ButtonsVbox/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="pressed" from="MainVBox/ButtonsVbox/SettingsButton" to="." method="_on_settings_button_pressed"]
[connection signal="pressed" from="MainVBox/ButtonsVbox/AboutButton" to="." method="_on_about_button_pressed"]
[connection signal="pressed" from="MainVBox/ButtonsVbox/QuitButton" to="." method="_on_quit_button_pressed"]

8
Scenes/MusicPlayer.tscn Normal file
View file

@ -0,0 +1,8 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="AudioStream" uid="uid://c6nf5s6xy2uii" path="res://Assets/Temp Music/omw-to-beat-the-big-bad.wav" id="1_wb1gf"]
[node name="MusicPlayer" type="AudioStreamPlayer"]
stream = ExtResource("1_wb1gf")
autoplay = true
bus = &"Music"

View file

@ -0,0 +1,42 @@
[gd_scene load_steps=7 format=3 uid="uid://ccgpsim5nfxd6"]
[ext_resource type="Script" path="res://Scripts/PlayerController.gd" id="1_x3102"]
[ext_resource type="TileSet" uid="uid://b7cqbf6xdbeal" path="res://Assets/Test_Tileset.tres" id="3_0at2g"]
[ext_resource type="Script" path="res://Scripts/MapGenerator.gd" id="4_8st0q"]
[ext_resource type="Texture2D" uid="uid://cnrja43wk2mmd" path="res://Assets/Sprites/Jesus.png" id="4_lpajj"]
[ext_resource type="PackedScene" path="res://Scenes/MusicPlayer.tscn" id="5_4vnv3"]
[ext_resource type="AudioStream" uid="uid://dpbyjnyg765r7" path="res://Assets/Temp Music/awesomeness.wav" id="6_2do7l"]
[node name="Node2D" type="Node2D"]
[node name="TileMap" type="TileMap" parent="."]
tile_set = ExtResource("3_0at2g")
cell_quadrant_size = 8
collision_visibility_mode = 1
format = 2
script = ExtResource("4_8st0q")
[node name="CharacterBody2D" type="CharacterBody2D" parent="."]
position = Vector2(512, 300)
scale = Vector2(0.25, 0.25)
script = ExtResource("1_x3102")
speed = 80
[node name="Sprite2D" type="Sprite2D" parent="CharacterBody2D"]
position = Vector2(0.75, 3.99997)
scale = Vector2(1.05172, 1)
texture = ExtResource("4_lpajj")
[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="CharacterBody2D"]
polygon = PackedVector2Array(16, 32, -14, 32, -12, -24, 16, -24)
[node name="Camera2D" type="Camera2D" parent="CharacterBody2D"]
zoom = Vector2(10, 10)
position_smoothing_enabled = true
drag_horizontal_enabled = true
drag_vertical_enabled = true
editor_draw_limits = true
editor_draw_drag_margin = true
[node name="MusicPlayer" parent="." instance=ExtResource("5_4vnv3")]
stream = ExtResource("6_2do7l")

290
Scenes/SettingsMenu.tscn Normal file
View file

@ -0,0 +1,290 @@
[gd_scene load_steps=4 format=3 uid="uid://dosnlh8axkov6"]
[ext_resource type="Script" path="res://Scripts/SettingsMenu.gd" id="1_2rgd2"]
[ext_resource type="Theme" uid="uid://o3vg845para" path="res://Assets/Theme.tres" id="2_swcn6"]
[ext_resource type="Script" path="res://Scripts/RemapButton.gd" id="3_gktg3"]
[node name="SettingsMenu" type="Node" node_paths=PackedStringArray("display_options_button", "vsync_toggle", "resolutions_options_button", "master_volume_slider", "music_volume_slider", "sfx_volume_slider")]
script = ExtResource("1_2rgd2")
display_options_button = NodePath("MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings/DisplayModeOptions")
vsync_toggle = NodePath("MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings/VsyncButton")
resolutions_options_button = NodePath("MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings/ResolutionsOptions")
master_volume_slider = NodePath("MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider")
music_volume_slider = NodePath("MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider")
sfx_volume_slider = NodePath("MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider")
[node name="ColorRect" type="ColorRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0.576471, 0.831373, 0.709804, 1)
[node name="MainVBox" type="VBoxContainer" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme = ExtResource("2_swcn6")
theme_override_constants/separation = 0
[node name="TitleContainer" type="CenterContainer" parent="MainVBox"]
custom_minimum_size = Vector2(0, 100)
layout_mode = 2
[node name="Label" type="Label" parent="MainVBox/TitleContainer"]
layout_mode = 2
theme_override_font_sizes/font_size = 35
text = "SETTINGS MENU"
[node name="TabsContainer" type="CenterContainer" parent="MainVBox"]
custom_minimum_size = Vector2(0, 475)
layout_mode = 2
[node name="SettingsTabs" type="TabContainer" parent="MainVBox/TabsContainer"]
custom_minimum_size = Vector2(1050, 475)
layout_mode = 2
theme_override_font_sizes/font_size = 29
[node name="Video" type="VBoxContainer" parent="MainVBox/TabsContainer/SettingsTabs"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="MainVBox/TabsContainer/SettingsTabs/Video"]
custom_minimum_size = Vector2(0, 425)
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="VideoSettings" type="GridContainer" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer"]
layout_mode = 2
columns = 2
[node name="DisplayModeLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Display Mode"
vertical_alignment = 1
[node name="DisplayModeOptions" type="OptionButton" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
item_count = 5
selected = 0
popup/item_0/text = "Full-Screen"
popup/item_0/id = 0
popup/item_1/text = "Windowed"
popup/item_1/id = 1
popup/item_2/text = "Maximized"
popup/item_2/id = 2
popup/item_3/text = "Minimized"
popup/item_3/id = 3
popup/item_4/text = "Exclusive Full-Screen"
popup/item_4/id = 4
[node name="VSync Label" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "VSync
"
vertical_alignment = 1
[node name="VsyncButton" type="CheckButton" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
text = "Vsync"
[node name="ResolutionsLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Resolutions
"
vertical_alignment = 1
[node name="ResolutionsOptions" type="OptionButton" parent="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
fit_to_longest_item = false
[node name="Audio" type="VBoxContainer" parent="MainVBox/TabsContainer/SettingsTabs"]
visible = false
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="MainVBox/TabsContainer/SettingsTabs/Audio"]
custom_minimum_size = Vector2(0, 425)
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="AudioSettings" type="GridContainer" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer"]
layout_mode = 2
columns = 2
[node name="MasterVolLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Master Volume
"
vertical_alignment = 1
[node name="MasterVolumeSlider" type="HSlider" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
min_value = -72.0
max_value = 0.0
[node name="MusicVolLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Music Volume
"
vertical_alignment = 1
[node name="MusicVolSlider" type="HSlider" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
min_value = -72.0
max_value = 0.0
[node name="SFXVolLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "SFX Volume"
vertical_alignment = 1
[node name="SFXVolSlider" type="HSlider" parent="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
min_value = -72.0
max_value = 0.0
[node name="Controls" type="VBoxContainer" parent="MainVBox/TabsContainer/SettingsTabs"]
visible = false
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="MainVBox/TabsContainer/SettingsTabs/Controls"]
custom_minimum_size = Vector2(0, 425)
layout_mode = 2
theme_override_constants/margin_left = 25
theme_override_constants/margin_top = 25
theme_override_constants/margin_right = 25
theme_override_constants/margin_bottom = 25
[node name="ControlSettings" type="GridContainer" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer"]
layout_mode = 2
columns = 2
[node name="MoveUpLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Move Up"
vertical_alignment = 1
[node name="MoveUpRemapButton" type="Button" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
toggle_mode = true
script = ExtResource("3_gktg3")
input_action_name = "move_up"
[node name="MoveLeftLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Move Left"
vertical_alignment = 1
[node name="MoveLeftRemapButton" type="Button" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
toggle_mode = true
script = ExtResource("3_gktg3")
input_action_name = "move_left"
[node name="MoveDownLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Move Down"
vertical_alignment = 1
[node name="MoveDownRemapButton" type="Button" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
toggle_mode = true
script = ExtResource("3_gktg3")
input_action_name = "move_down"
[node name="MoveRightLabel" type="Label" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(400, 40)
layout_mode = 2
theme_override_colors/font_color = Color(0, 0, 0, 1)
theme_override_font_sizes/font_size = 20
text = "Move RIght"
vertical_alignment = 1
[node name="MoveRightRemapButton" type="Button" parent="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
size_flags_horizontal = 10
toggle_mode = true
script = ExtResource("3_gktg3")
input_action_name = "move_right"
[node name="ButtonContainer" type="CenterContainer" parent="MainVBox"]
custom_minimum_size = Vector2(0, 73)
layout_mode = 2
[node name="Back" type="Button" parent="MainVBox/ButtonContainer"]
custom_minimum_size = Vector2(500, 40)
layout_mode = 2
theme_override_font_sizes/font_size = 23
text = "Back"
[connection signal="item_selected" from="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings/DisplayModeOptions" to="." method="_on_display_mode_options_item_selected"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings/VsyncButton" to="." method="_on_vsync_button_toggled"]
[connection signal="item_selected" from="MainVBox/TabsContainer/SettingsTabs/Video/MarginContainer/VideoSettings/ResolutionsOptions" to="." method="_on_resolutions_options_item_selected"]
[connection signal="drag_ended" from="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider" to="." method="_on_master_volume_slider_drag_ended"]
[connection signal="value_changed" from="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MasterVolumeSlider" to="." method="_on_master_volume_slider_value_changed"]
[connection signal="drag_ended" from="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider" to="." method="_on_music_vol_slider_drag_ended"]
[connection signal="value_changed" from="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/MusicVolSlider" to="." method="_on_music_vol_slider_value_changed"]
[connection signal="drag_ended" from="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider" to="." method="_on_sfx_vol_slider_drag_ended"]
[connection signal="value_changed" from="MainVBox/TabsContainer/SettingsTabs/Audio/MarginContainer/AudioSettings/SFXVolSlider" to="." method="_on_sfx_vol_slider_value_changed"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" to="." method="_on_move_up_remap_button_toggled"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" to="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" method="_on_move_up_remap_button_toggled"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" to="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveUpRemapButton" method="_on_toggled"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveLeftRemapButton" to="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" method="_on_move_left_remap_button_toggled"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveDownRemapButton" to="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" method="_on_move_down_remap_button_toggled"]
[connection signal="toggled" from="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings/MoveRightRemapButton" to="MainVBox/TabsContainer/SettingsTabs/Controls/MarginContainer/ControlSettings" method="_on_move_right_remap_button_toggled"]
[connection signal="pressed" from="MainVBox/ButtonContainer/Back" to="." method="_on_back_pressed"]
[connection signal="pressed" from="MainVBox/ButtonContainer/Back" to="." method="_on_button_pressed"]

32
Scripts/GameDataSaver.gd Normal file
View file

@ -0,0 +1,32 @@
extends Node
const SAVE_FILE : String = "user://SAVEFILE.save"
var game_data = {}
# Engine callbacks
func _ready():
load_data()
func load_data():
var file = FileAccess.open(SAVE_FILE, FileAccess.READ)
if file == null:
game_data = {
"display_mode": 0,
"vsync_on": false,
"current_resolution_index": 0,
"master_volume": 0,
"music_volume": 0,
"sfx_volume": 0,
}
save_data()
else:
game_data = file.get_var()
file.close()
file.flush()
pass
func save_data():
var file = FileAccess.open(SAVE_FILE, FileAccess.WRITE)
file.store_var(game_data)
file.close()
file.flush()

61
Scripts/GlobalSettings.gd Normal file
View file

@ -0,0 +1,61 @@
extends Node
@export var master_bus_index : int = 0
@export var music_bus_index : int = 1
@export var sfx_bus_index : int = 2
const resolutions_dictionary : Dictionary = {
"800x600" : Vector2(800, 600),
"1024x546" : Vector2(1024, 546),
"1152x648" : Vector2(1152, 648),
"1600x900" : Vector2(1600, 900),
"1366x768" : Vector2(1366, 768),
"1920x1080" : Vector2(1920, 1080),
"1920x1200" : Vector2(1920, 1200),
"2560x1440" : Vector2(2560, 1440),
"3840x2160" : Vector2(3840, 2160),
}
# Video Global Settings
func set_display_mode(value: int) -> void:
Save.game_data.display_mode = value
Save.save_data()
if value == 0: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
elif value == 1: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED)
elif value == 2: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MAXIMIZED)
elif value == 3: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED)
elif value == 4: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN)
else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN)
pass
func toggle_vsync(value : bool) -> void:
Save.game_data.vsync_on = value
Save.save_data()
if value: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED)
else: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED)
pass
func set_resolution(index):
Save.game_data.current_resolution_index = index
Save.save_data()
for i in resolutions_dictionary.keys().size():
if i == index: DisplayServer.window_set_size(resolutions_dictionary.values()[i])
# Audio Global Settings
func update_master_volume(vol : int) -> void:
Save.game_data.master_volume = vol
Save.save_data()
AudioServer.set_bus_volume_db(master_bus_index, vol)
pass
func update_music_volume(vol : int) -> void:
Save.game_data.music_volume = vol
Save.save_data()
AudioServer.set_bus_volume_db(music_bus_index, vol)
pass
func update_sfx_volume(vol : int) -> void:
Save.game_data.sfx_volume = vol
Save.save_data()
AudioServer.set_bus_volume_db(sfx_bus_index, vol)
pass

View file

@ -0,0 +1,34 @@
extends Node
@export var game_scene_path : String = "res://Scenes/PlayerMovement.tscn"
@export var options_scene_path : String = "res://Scenes/SettingsMenu.tscn"
@export var button_to_focus_on_start : TextureButton
# Engine Callbackss
func _ready():
GlobalSettings.set_display_mode(Save.game_data.display_mode)
GlobalSettings.toggle_vsync(Save.game_data.vsync_on)
GlobalSettings.set_resolution(Save.game_data.current_resolution_index)
GlobalSettings.update_master_volume(Save.game_data.master_volume)
GlobalSettings.update_music_volume(Save.game_data.music_volume)
GlobalSettings.update_sfx_volume(Save.game_data.sfx_volume)
button_to_focus_on_start.grab_focus()
pass
func _on_play_button_pressed():
get_tree().change_scene_to_file(game_scene_path)
pass
func _on_settings_button_pressed():
var options_scene = load(options_scene_path).instantiate()
get_tree().current_scene.add_child(options_scene)
pass
func _on_about_button_pressed():
OS.shell_open("https://git.euph.dev/GameDev/HoppyEaster")
pass
func _on_quit_button_pressed():
get_tree().quit()
pass

41
Scripts/MenuButton.gd Normal file
View file

@ -0,0 +1,41 @@
extends TextureButton
@export var text : String = "Sample Text"
@export var pointer_margin_from_center : int = 100
@export var leftPointer : Sprite2D
@export var rightPointer : Sprite2D
@export var textBox : RichTextLabel
# Engine Callbacks
func _ready():
textBox.parse_bbcode("[center] %s [/center]" % [text])
pass
func _process(delta):
handle_hover_and_focus()
handle_x_position()
func handle_hover_and_focus() -> void:
if has_focus():
leftPointer.visible = true
rightPointer.visible = true
elif is_hovered():
leftPointer.visible = true
leftPointer.modulate.a = 0.5
rightPointer.visible = true
rightPointer.modulate.a = 0.5
else:
leftPointer.visible = false
leftPointer.modulate.a = 1
rightPointer.visible = false
rightPointer.modulate.a = 1
pass
func handle_x_position() -> void:
var center_x = get_parent().position.x + (get_parent().size.x / 2.0)
leftPointer.global_position.x = center_x - pointer_margin_from_center
rightPointer.global_position.x = center_x + pointer_margin_from_center
pass

30
Scripts/RemapButton.gd Normal file
View file

@ -0,0 +1,30 @@
extends Button
@export var input_action_name : String
# Called when the node enters the scene tree for the first timde.d
func _ready():
set_process_unhandled_key_input(false)
pass
func _unhandled_key_input(event):
remap_key(event)
pass
func display_key ():
text = "%s" % InputMap.action_get_events(input_action_name)[0].as_text()
pass
func remap_key(event):
InputMap.action_erase_events(input_action_name)
InputMap.action_add_event(input_action_name, event)
text = "%s" % event.as_text()
pass
func _on_toggled(button_pressed):
set_process_unhandled_key_input(button_pressed)
if button_pressed: text = "..."
else: display_key()
pass

63
Scripts/SettingsMenu.gd Normal file
View file

@ -0,0 +1,63 @@
extends Node
# Video Settings UI References
@export var display_options_button : OptionButton
@export var vsync_toggle : CheckButton
@export var resolutions_options_button : OptionButton
# Audio Settings UI References
@export var master_volume_slider : Slider
@export var music_volume_slider : Slider
@export var sfx_volume_slider : Slider
# Engine Callbacks
func _ready():
add_resolution_items()
display_options_button.select(Save.game_data.display_mode)
GlobalSettings.set_display_mode(Save.game_data.display_mode)
vsync_toggle.set_pressed_no_signal(Save.game_data.vsync_on)
GlobalSettings.toggle_vsync(Save.game_data.vsync_on)
resolutions_options_button.select(Save.game_data.current_resolution_index)
GlobalSettings.set_resolution(Save.game_data.current_resolution_index)
master_volume_slider.value = Save.game_data.master_volume
GlobalSettings.update_master_volume(Save.game_data.master_volume)
music_volume_slider.value = Save.game_data.music_volume
GlobalSettings.update_music_volume(Save.game_data.music_volume)
sfx_volume_slider.value = Save.game_data.sfx_volume
GlobalSettings.update_sfx_volume(Save.game_data.sfx_volume)
pass
func add_resolution_items():
for key in GlobalSettings.resolutions_dictionary.keys():
resolutions_options_button.add_item(key)
# Other Buttons
func _on_back_pressed():
queue_free()
pass
# Video Settings
func _on_display_mode_options_item_selected(index):
GlobalSettings.set_display_mode(index)
pass
func _on_vsync_button_toggled(button_pressed):
GlobalSettings.toggle_vsync(button_pressed)
pass
func _on_resolutions_options_item_selected(index):
GlobalSettings.set_resolution(index)
pass
# Audio Settings
func _on_master_volume_slider_value_changed(value):
GlobalSettings.update_master_volume(value)
pass
func _on_music_vol_slider_value_changed(value):
GlobalSettings.update_music_volume(value)
pass
func _on_sfx_vol_slider_value_changed(value):
GlobalSettings.update_sfx_volume(value)
pass

View file

@ -11,6 +11,7 @@ config_version=5
[application]
config/name="HoppyEaster"
run/main_scene="res://Scenes/Test.tscn"
config/features=PackedStringArray("4.0", "GL Compatibility")
config/icon="res://icon.svg"
@ -22,38 +23,79 @@ window/size/viewport_height=720
window/stretch/mode="viewport"
window/stretch/aspect="expand"
[audio]
buses/default_bus_layout="res://Assets/Temp Music/default_bus_layout.tres"
[autoload]
GlobalSettings="*res://Scripts/GlobalSettings.gd"
Save="*res://Scripts/GameDataSaver.gd"
[dotnet]
project/assembly_name="HoppyEaster"
[gui]
theme/custom="res://Assets/UI_Theme.tres"
[input]
ui_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":4194319,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"echo":false,"script":null)
]
}
ui_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":4194321,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null)
]
}
ui_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":4194320,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"echo":false,"script":null)
]
}
ui_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":4194322,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null)
]
}
move_left={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
move_right={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
move_up={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
move_down={
"deadzone": 0.5,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null)
, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null)
]
}
attack={