Initial commit
This commit is contained in:
73
script/featuremanager.gd
Normal file
73
script/featuremanager.gd
Normal file
@@ -0,0 +1,73 @@
|
||||
extends Node
|
||||
|
||||
@onready var syncedFeatures: ConfigFile = ConfigFile.new()
|
||||
@onready var settingsmenu = $/root/Main/Settingsmenu/VBoxContainer/MarginContainer2/HBoxContainer/VBoxContainer
|
||||
@onready var config : ConfigFile = ConfigFile.new()
|
||||
@export var debug : bool = false
|
||||
|
||||
func _ready() -> void:
|
||||
var ms = MultiplayerSynchronizer.new()
|
||||
var spg = SceneReplicationConfig.new()
|
||||
var ppath = name + ":syncedFeatures"
|
||||
spg.add_property(ppath)
|
||||
ms.name = "ConfigSynchronizer"
|
||||
ms.replication_config = spg
|
||||
$/root.add_child.call_deferred(ms)
|
||||
loadConfig()
|
||||
update_menu()
|
||||
|
||||
func update_menu():
|
||||
for feature in config.get_sections():
|
||||
var container = HBoxContainer.new()
|
||||
container.size_flags_vertical = Control.SIZE_EXPAND_FILL
|
||||
container.name = feature
|
||||
var label = Label.new()
|
||||
label.text = feature
|
||||
container.add_child(label)
|
||||
var control : Control
|
||||
match config.get_value(feature,"mode","_"):
|
||||
"check":
|
||||
control = CheckButton.new()
|
||||
"color:":
|
||||
control = ColorPickerButton.new()
|
||||
"text":
|
||||
control = LineEdit.new()
|
||||
"menu":
|
||||
control = OptionButton.new()
|
||||
"button":
|
||||
control = Button.new()
|
||||
_:
|
||||
control = Button.new()
|
||||
container.add_child(control)
|
||||
settingsmenu.add_child(container)
|
||||
func loadConfig():
|
||||
var err : Error = config.load("user://config.cfg") if not debug else config.load("res://defaultconfig.cfg")
|
||||
match err:
|
||||
OK:
|
||||
print("Config loaded.")
|
||||
return
|
||||
ERR_FILE_NOT_FOUND:
|
||||
push_error("Config not found. Loading default config.")
|
||||
_:
|
||||
push_error("Failed to load config: error " + str(err))
|
||||
var err2 : Error = config.load("res://defaultconfig.cfg")
|
||||
match err2:
|
||||
OK:
|
||||
push_warning("Default config loaded successfully.")
|
||||
ERR_PARSE_ERROR:
|
||||
push_error("Invalid default config")
|
||||
return
|
||||
_:
|
||||
push_error("Yay a bug " + str(err2))
|
||||
return
|
||||
if ResourceLoader.exists("user://config.cfg"):
|
||||
return
|
||||
var err3 : Error = config.save("user://config.cfg")
|
||||
match err3:
|
||||
OK:
|
||||
print("Saved new config file")
|
||||
ERR_FILE_NO_PERMISSION:
|
||||
push_error("No permission to save new config file.")
|
||||
_:
|
||||
push_error("Could not save new config file: " + str(err3))
|
||||
return
|
||||
Reference in New Issue
Block a user