extends Control var settings_filename = "user://settings.save" var settings = {} func _ready(): if has_settings(): load_settings() apply_settings() else: # apply defaults settings = {'Fullscreen':true, 'Sensitivity':0.5, 'ip':'liblast.unfa.xyz', 'player color':Color(1, 0, 0, 1), 'username':'nameless' } apply_settings() save_settings() func has_settings(): var filecheck = File.new() return filecheck.file_exists(settings_filename) func set_setting(key, value): settings[key] = value save_settings() func save_settings(): var file = File.new() file.open(settings_filename, File.WRITE) file.store_var(settings) file.close() func load_settings(): var file = File.new() file.open(settings_filename, File.READ) settings = file.get_var() file.close() if typeof(settings) != TYPE_DICTIONARY: settings = {} func apply_settings(): for key in settings.keys(): match key: "Fullscreen": toggle_fullscreen(settings[key]) "Sensitivity": set_mouse_sensitivity(settings[key]) # These functions are for applying settings changes func quit_game(): var main = get_tree().get_root().get_node("Main") var pid = main.get_multiplayer_authority() var player_node = main.get_node("Players").get_node(str(pid)) #main.get_node("HUD/Chat").rpc(&'chat_notification', "Player " + str(pid) +" left the game.") #player_node.rpc(&'die', -1) #main.rpc(&'disconnect_player', pid) # tell everyone we're leaving #main.multiplayer = null get_tree().multiplayer.multiplayer_peer = null get_tree().quit() func toggle_fullscreen(is_fullscreen): if is_fullscreen: get_tree().get_root().mode = Window.MODE_FULLSCREEN else: get_tree().get_root().mode = Window.MODE_WINDOWED func toggle_lighting(is_enabled): var map = get_tree().get_root().get_node("Main").get_node("Map") map.get_node("Lights").visible = is_enabled map.get_node("Decals").visible = is_enabled map.get_node("ReflectionProbes").visible = is_enabled func set_mouse_sensitivity(sensitivity): pass