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