Files
game-cards/addons/gut/scenes/TestGutGuiSettings.gd
2026-05-29 09:16:10 +08:00

63 lines
1.5 KiB
GDScript

extends Node2D
const RUNNER_JSON_PATH = 'user://test_gut_editor_config.json'
var GutConfigGui = load('res://addons/gut/gui/gut_config_gui.gd')
@onready var _ctrls = {
settings = $ColorRect/ScrollContainer/Settings,
issues = $Controls/VBox/Issues
}
var _gut_config = load('res://addons/gut/gut_config.gd').new()
var _gut_config_gui = null
var _settings_vbox = null
# Called when the node enters the scene tree for the first time.
func _ready():
_settings_vbox = _ctrls.settings.duplicate()
_gut_config.load_options(RUNNER_JSON_PATH)
_create_options()
func _clear_options():
if(_gut_config_gui != null):
_gut_config_gui.clear()
func _display_issues():
var issues : Array = _gut_config_gui.get_config_issues()
if(issues.size() > 0):
_ctrls.issues.text = "\n".join(issues)
else:
_ctrls.issues.text = "-- No Issues --"
func _create_options():
_gut_config_gui = GutConfigGui.new(_ctrls.settings)
_gut_config_gui.set_options(_gut_config.options)
func save_options():
_gut_config.options = _gut_config_gui.get_options(_gut_config.options)
var w_result = _gut_config.write_options(RUNNER_JSON_PATH)
if(w_result != OK):
push_error(str('Could not write options to ', RUNNER_JSON_PATH, ': ', w_result))
else:
_gut_config_gui.mark_saved()
func _on_save_pressed():
save_options()
_display_issues()
print('saved')
func _on_load_pressed():
_clear_options()
await get_tree().create_timer(.5).timeout
_create_options()
_display_issues()
print('loaded')
func _on_get_issues_pressed():
_display_issues()