83 lines
2.0 KiB
GDScript
83 lines
2.0 KiB
GDScript
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
|