options skeleton :D

This commit is contained in:
pennyrigate 2023-02-24 21:31:10 -05:00
parent 22fc792664
commit 8b247304e6
12 changed files with 649 additions and 7 deletions

View file

@ -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"

64
autoloads/options.gd Normal file
View file

@ -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))

3
autoloads/options.tscn Normal file
View file

@ -0,0 +1,3 @@
[gd_scene format=2]
[node name="Options" type="Node"]