options screen functionality :):):):):)

This commit is contained in:
Haze Weathers 2023-03-08 16:46:23 -05:00
parent 89b4bc045e
commit 1fc44271f1
10 changed files with 271 additions and 36 deletions

View file

@ -1,30 +1,45 @@
extends Node
#Enums
enum ScalingModes {INTEGER,ASPECT,STRETCH}
enum Filters {NONE,CRT,LCD,BILINEAR}
enum ScalingMode {INTEGER,ASPECT,STRETCH}
enum Filter {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
var fullscreen = false setget _set_fullscreen
var scaling_mode = ScalingMode.INTEGER setget _set_scaling_mode
var transition_speed = TransSpeed.NORMAL setget _set_transition_speed
var transition_speed_secs setget , _get_transition_speed_sex
#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
var master_volume = 1.0 setget _set_master_volume
var music_volume = 1.0 setget _set_music_volume
var sound_volume = 1.0 setget _set_sound_volume
# default values
var defaults = null
func _ready():
# clone self into defaults before loading stored values
if defaults == null:
defaults = duplicate()
load_options()
func load_options():
var file = ConfigFile.new()
file.load("user://options.pr")
# game
rumble = file.get_value("game", "rumble", RumbleMode.NONE)
# video
_set_fullscreen(file.get_value("video", "fullscreen", false))
_set_scaling_mode(file.get_value("video", "scaling_mode", ScalingMode.INTEGER))
_set_transition_speed(file.get_value("video", "transition_speed", TransSpeed.NORMAL))
# audio
_set_master_volume(file.get_value("audio", "master_volume", 1.0))
_set_music_volume(file.get_value("audio", "music_volume", 1.0))
_set_sound_volume(file.get_value("audio", "sound_volume", 1.0))
func save_options():
var file = ConfigFile.new()
@ -42,13 +57,21 @@ func save_options():
# Setters
# video setters
func _set_fullscreen(value):
fullscreen = value
OS.set_window_fullscreen(value)
func _get_transition_speed():
func _set_scaling_mode(value):
scaling_mode = value
func _set_transition_speed(value):
transition_speed = value
func _get_transition_speed_sex():
return TRANS_SPEEDS[transition_speed]
# audio setters
func _set_master_volume(value):
master_volume = value
AudioServer.set_bus_volume_db(0, linear2db(value))