From 8b247304e691e2ce64d04b39976bbff28884bebb Mon Sep 17 00:00:00 2001 From: pennyrigate Date: Fri, 24 Feb 2023 21:31:10 -0500 Subject: [PATCH] options skeleton :D --- autoloads/game.tscn | 13 +- autoloads/options.gd | 64 ++++ autoloads/options.tscn | 3 + default_bus_layout.tres | 15 + graphics/hud/hslider_grabber.png | Bin 0 -> 139 bytes graphics/hud/hslider_grabber.png.import | 35 ++ graphics/hud/hslider_slider.png | Bin 0 -> 130 bytes graphics/hud/hslider_slider.png.import | 35 ++ maps/test_room.tscn | 5 +- objects/hud/options_screen.tscn | 446 ++++++++++++++++++++++++ objects/hud/pause_screen.tscn | 6 +- ui/theme.tres | 34 +- 12 files changed, 649 insertions(+), 7 deletions(-) create mode 100644 autoloads/options.gd create mode 100644 autoloads/options.tscn create mode 100644 default_bus_layout.tres create mode 100644 graphics/hud/hslider_grabber.png create mode 100644 graphics/hud/hslider_grabber.png.import create mode 100644 graphics/hud/hslider_slider.png create mode 100644 graphics/hud/hslider_slider.png.import create mode 100644 objects/hud/options_screen.tscn diff --git a/autoloads/game.tscn b/autoloads/game.tscn index 589fcc5..e479506 100644 --- a/autoloads/game.tscn +++ b/autoloads/game.tscn @@ -6,23 +6,30 @@ pause_mode = 2 script = ExtResource( 1 ) +[node name="Music" type="AudioStreamPlayer" parent="."] +volume_db = -13.5 +bus = "music" + [node name="CollecitbleSound" type="AudioStreamPlayer" parent="."] volume_db = -8.0 +bus = "sound" [node name="JumpSound" type="AudioStreamPlayer" parent="."] volume_db = -12.0 +bus = "sound" [node name="ClimbSound" type="AudioStreamPlayer" parent="."] volume_db = -12.0 - -[node name="Music" type="AudioStreamPlayer" parent="."] -volume_db = -13.5 +bus = "sound" [node name="DieSound" type="AudioStreamPlayer" parent="."] volume_db = -12.0 +bus = "sound" [node name="CodeEntrySound" type="AudioStreamPlayer" parent="."] volume_db = -12.0 +bus = "sound" [node name="BossSound" type="AudioStreamPlayer" parent="."] volume_db = -12.0 +bus = "sound" diff --git a/autoloads/options.gd b/autoloads/options.gd new file mode 100644 index 0000000..1907b31 --- /dev/null +++ b/autoloads/options.gd @@ -0,0 +1,64 @@ +extends Node + +#Enums +enum ScalingModes {INTEGER,ASPECT,STRETCH} +enum Filters {NONE,CRT,LCD,BILINEAR} +enum RumbleMode {NONE,NORMAL,BPM} +enum TransSpeed {NONE = 0,SLOW = 1,NORMAL = 2,FAST = 3} +var TRANS_SPEEDS = [0.0000001, 0.8, 0.4, 0.2] +#Game +var rumble = RumbleMode.NONE +#Video +var fullscreen = false +var scaling_mode = ScalingModes.INTEGER +var transition_speed = TransSpeed.NORMAL setget , _get_transition_speed +#Audio +var master_volume = 100 setget _set_master_volume +var music_volume = 100 setget _set_music_volume +var sound_volume = 100 setget _set_sound_volume + + + +func _ready(): + load_options() + +func load_options(): + var file = ConfigFile.new() + file.load("user://options.pr") + +func save_options(): + var file = ConfigFile.new() + #Game + file.set_value("game","rumble",rumble) + #Video + file.set_value("video","fullscreen",fullscreen) + file.set_value("video","scaling_mode",scaling_mode) + file.set_value("video","transition_speed",transition_speed) + #Audio + file.set_value("audio","master_volume",master_volume) + file.set_value("audio","music_volume",music_volume) + file.set_value("audio","sound_volume",sound_volume) + file.save("user://options.pr") + +# Setters + +func _set_fullscreen(value): + fullscreen = value + OS.set_window_fullscreen(value) + +func _get_transition_speed(): + return TRANS_SPEEDS[transition_speed] + +func _set_master_volume(value): + master_volume = value + AudioServer.set_bus_volume_db(0, linear2db(value)) + +func _set_music_volume(value): + music_volume = value + var idx = AudioServer.get_bus_index("music") + AudioServer.set_bus_volume_db(idx, linear2db(value)) + +func _set_sound_volume(value): + sound_volume = value + var idx = AudioServer.get_bus_index("sound") + AudioServer.set_bus_volume_db(idx, linear2db(value)) diff --git a/autoloads/options.tscn b/autoloads/options.tscn new file mode 100644 index 0000000..4ce11bc --- /dev/null +++ b/autoloads/options.tscn @@ -0,0 +1,3 @@ +[gd_scene format=2] + +[node name="Options" type="Node"] diff --git a/default_bus_layout.tres b/default_bus_layout.tres new file mode 100644 index 0000000..5d90951 --- /dev/null +++ b/default_bus_layout.tres @@ -0,0 +1,15 @@ +[gd_resource type="AudioBusLayout" format=2] + +[resource] +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 = "sound" +bus/2/solo = false +bus/2/mute = false +bus/2/bypass_fx = false +bus/2/volume_db = 0.0 +bus/2/send = "Master" diff --git a/graphics/hud/hslider_grabber.png b/graphics/hud/hslider_grabber.png new file mode 100644 index 0000000000000000000000000000000000000000..2553c0f487c8c9562550ac21d4334d1a441eae6f GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^OhC-V!3HGfJ?-}dQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XB4ude`@%$AjKtTmh7sn8Z@MHxhgMaKy0?nLfSea~i(%jsR fwKcQz8!<54FlRgOHZ5BKsFuOg)z4*}Q$iB}59uJ* literal 0 HcmV?d00001 diff --git a/graphics/hud/hslider_grabber.png.import b/graphics/hud/hslider_grabber.png.import new file mode 100644 index 0000000..d67472d --- /dev/null +++ b/graphics/hud/hslider_grabber.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/hslider_grabber.png-c706e239e429c74f08afcd7244f24e5e.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://graphics/hud/hslider_grabber.png" +dest_files=[ "res://.import/hslider_grabber.png-c706e239e429c74f08afcd7244f24e5e.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/graphics/hud/hslider_slider.png b/graphics/hud/hslider_slider.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa1d39b17bd0c9a2fe3b0d6e7a31c19658fb922 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrA!3HEtFPV6O1d4;)ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!GcfQS24TkI`72U@g5sVojv*4^$p<+9F*6z~D