62 lines
1.5 KiB
GDScript
62 lines
1.5 KiB
GDScript
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()
|