extends Node @export var master_bus_index : int = 0 @export var music_bus_index : int = 1 @export var sfx_bus_index : int = 2 const resolutions_dictionary : Dictionary = { "800x600" : Vector2(800, 600), "1024x546" : Vector2(1024, 546), "1152x648" : Vector2(1152, 648), "1600x900" : Vector2(1600, 900), "1366x768" : Vector2(1366, 768), "1920x1080" : Vector2(1920, 1080), "1920x1200" : Vector2(1920, 1200), "2560x1440" : Vector2(2560, 1440), "3840x2160" : Vector2(3840, 2160), } # Video Global Settings func set_display_mode(value: int) -> void: Save.game_data.display_mode = value Save.save_data() if value == 0: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) elif value == 1: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) elif value == 2: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MAXIMIZED) elif value == 3: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_MINIMIZED) elif value == 4: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_EXCLUSIVE_FULLSCREEN) else: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_FULLSCREEN) pass func toggle_vsync(value : bool) -> void: Save.game_data.vsync_on = value Save.save_data() if value: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) else: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_DISABLED) pass func set_resolution(index): Save.game_data.current_resolution_index = index Save.save_data() for i in resolutions_dictionary.keys().size(): if i == index: DisplayServer.window_set_size(resolutions_dictionary.values()[i]) # Audio Global Settings func update_master_volume(vol : int) -> void: Save.game_data.master_volume = vol Save.save_data() AudioServer.set_bus_volume_db(master_bus_index, vol) pass func update_music_volume(vol : int) -> void: Save.game_data.music_volume = vol Save.save_data() AudioServer.set_bus_volume_db(music_bus_index, vol) pass func update_sfx_volume(vol : int) -> void: Save.game_data.sfx_volume = vol Save.save_data() AudioServer.set_bus_volume_db(sfx_bus_index, vol) pass