64 lines
1.7 KiB
GDScript
64 lines
1.7 KiB
GDScript
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))
|