extends Node const PLAYER_CFG = "user://client_settings" signal locale_changed(StringName) var NICKNAME: StringName = "MyNameIs" var SENSITIVITY: float = 0.004 var TOGGLE_CROUCH: bool = false var TOGGLE_SCOPE: bool = false var TOGGLE_WALK: bool = false var LOCALE: StringName = "automatic": set(value): LOCALE = value locale_changed.emit(value) TranslationServer.set_locale(value) func _ready() -> void: load_settings() multiplayer.connected_to_server.connect(send_client_data) if LOCALE == "automatic": TranslationServer.set_locale(OS.get_locale_language()) func _exit_tree() -> void: save_settings() func send_client_data() -> void: var data = {} data["nick"] = NICKNAME if multiplayer.is_server(): Lobby.recieve_client_data(data) else: Lobby.recieve_client_data.rpc_id(1,data) func save_settings() -> void: var file = FileAccess.open(PLAYER_CFG,FileAccess.WRITE) file.store_line(NICKNAME) file.store_line(str(SENSITIVITY)) var compacted_toggles = 1 * int(TOGGLE_CROUCH) | 2 * int(TOGGLE_SCOPE) | 4 * int(TOGGLE_WALK) file.store_line(str(compacted_toggles)) file.store_line(TranslationServer.get_locale()) func load_settings() -> void: var file = FileAccess.open(PLAYER_CFG,FileAccess.READ) if file == null: return NICKNAME = file.get_line() SENSITIVITY = float(file.get_line()) var compacted_toggles = int(file.get_line()) TOGGLE_CROUCH = compacted_toggles & 1 TOGGLE_SCOPE = compacted_toggles & 2 TOGGLE_WALK = compacted_toggles & 4 LOCALE = file.get_line()