This repository has been archived on 2022-01-09. You can view files and clone it, but cannot push or open issues/pull-requests.
liblast/Game/Assets/UI/GUI.gd

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