Chelimbalo/gui/client_settings/client_settings.gd
2025-12-12 18:45:31 +05:00

49 lines
1.2 KiB
GDScript

extends Node
const PLAYER_CFG = "user://client_settings"
var NICKNAME: StringName = "MyNameIs"
var SENSITIVITY: float = 0.004
var TOGGLE_CROUCH: bool = false
var TOGGLE_SCOPE: bool = false
var TOGGLE_WALK: bool = false
func _ready() -> void:
load_settings()
multiplayer.connected_to_server.connect(send_client_data)
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))
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