1
0
mirror of https://github.com/JohnBreaux/Boat-Battle.git synced 2024-11-15 05:25:57 +00:00
Boat-Battle/godot_ship/script/options/OptionsController.gd

77 lines
2.0 KiB
GDScript

extends Node
# signals
# Subscribe to these if you want to be notified about changes to the volume
signal change_theme (theme)
# Option variables
var f = File.new()
var options_file = "user://options.save"
var theme = "dark"
var mas_vol = 0
var mus_vol = 0
var sfx_vol = 0
func _ready():
load_options()
# Setters
func set_theme(theme_name):
match theme_name:
"dark","light":
theme = String(theme_name)
save_options()
emit_signal("change_theme", theme)
save_options()
func set_vol(volume, type):
if type == "mas_vol":
mas_vol = volume
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), mas_vol)
elif type == "mus_vol":
mus_vol = volume
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("BGM"), mus_vol)
elif type == "sfx_vol":
sfx_vol = volume
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), sfx_vol)
save_options()
#func set_mas_vol(volume):
# mas_vol = volume
# AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), mas_vol)
#func set_mus_vol(volume):
# mus_vol = volume
# AudioServer.set_bus_volume_db(AudioServer.get_bus_index("BGM"), mus_vol)
#func set_sfx_vol(volume):
# sfx_vol = volume
# AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), sfx_vol)
#Option Save File
func save_options():
f.open(options_file, File.WRITE)
f.store_var(theme)
f.store_var(mas_vol)
f.store_var(mus_vol)
f.store_var(sfx_vol)
f.close()
func load_options():
if f.file_exists(options_file):
f.open(options_file, File.READ)
theme = f.get_var()
mas_vol = f.get_var()
mus_vol = f.get_var()
sfx_vol = f.get_var()
f.close()
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("Master"), mus_vol)
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("BGM"), mus_vol)
AudioServer.set_bus_volume_db(AudioServer.get_bus_index("SFX"), sfx_vol)
# Getters
func get_theme():
return theme
func get_mas_volume():
return mas_vol
func get_mus_volume():
return mus_vol
func get_sfx_volume():
return sfx_vol