126 lines
5.1 KiB
GDScript
126 lines
5.1 KiB
GDScript
@tool
|
|
extends AcceptDialog
|
|
|
|
@export_file("*.tscn") var check_version_scene_path : String
|
|
@export_dir var input_prompts_directory_path : String
|
|
|
|
@onready var plugin_label : Label = %PluginLabel
|
|
@onready var update_label : Label = %UpdateLabel
|
|
@onready var update_check_box : CheckBox = %UpdateCheckBox
|
|
@onready var update_button : Button = %UpdateButton
|
|
@onready var copy_check_box : CheckBox = %CopyCheckBox
|
|
@onready var copy_button : Button = %CopyButton
|
|
@onready var delete_check_box : CheckBox = %DeleteCheckBox
|
|
@onready var delete_button : Button = %DeleteButton
|
|
@onready var set_main_scene_check_box : CheckBox = %SetMainSceneCheckBox
|
|
@onready var set_main_scene_button : Button = %SetMainSceneButton
|
|
@onready var set_default_theme_check_box : CheckBox = %SetDefaultThemeCheckBox
|
|
@onready var set_default_theme_button : Button = %SetDefaultThemeButton
|
|
@onready var add_input_icons_check_box : CheckBox = %AddInputIconsCheckBox
|
|
@onready var add_input_icons_button : Button = %AddInputIconsButton
|
|
|
|
func _refresh_plugin_details() -> void:
|
|
for enabled_plugin in ProjectSettings.get_setting("editor_plugins/enabled"):
|
|
if enabled_plugin.contains(MaaacksGameTemplatePlugin.get_settings_path()):
|
|
var config := ConfigFile.new()
|
|
var error = config.load(enabled_plugin)
|
|
if error != OK:
|
|
return
|
|
var current_plugin_version : String = config.get_value("plugin", "version", "0.0.0")
|
|
var plugin_name : String = config.get_value("plugin", "name", "Plugin")
|
|
plugin_label.text = "%s v%s" % [plugin_name, current_plugin_version]
|
|
|
|
func _show_plugin_versions_match() -> void:
|
|
update_label.text = "Using Latest Version"
|
|
update_check_box.button_pressed = true
|
|
update_button.disabled = true
|
|
|
|
func _enable_update_plugin_tool_option(tag_name : String) -> void:
|
|
update_label.text = "Update to Latest Version v%s" % tag_name
|
|
update_button.disabled = false
|
|
|
|
func _open_check_plugin_version() -> void:
|
|
if check_version_scene_path.is_empty():
|
|
push_warning("Variable \"check_version_scene_path\" is not set")
|
|
return
|
|
if ProjectSettings.get_setting(MaaacksGameTemplatePlugin.get_settings_path() + "disable_update_check", false):
|
|
update_label.text = "Check for Latest Version"
|
|
update_button.disabled = false
|
|
return
|
|
var check_version_scene : PackedScene = load(check_version_scene_path)
|
|
var check_version_instance : Node = check_version_scene.instantiate()
|
|
check_version_instance.auto_start = true
|
|
check_version_instance.new_version_detected.connect(_enable_update_plugin_tool_option)
|
|
check_version_instance.versions_matched.connect(_show_plugin_versions_match)
|
|
add_child(check_version_instance)
|
|
|
|
func _refresh_copy_and_delete_examples() -> void:
|
|
var examples_path = MaaacksGameTemplatePlugin.instance.get_plugin_examples_path()
|
|
if MaaacksGameTemplatePlugin.get_copy_path() != examples_path:
|
|
copy_check_box.button_pressed = true
|
|
var dir := DirAccess.open("res://")
|
|
if dir.dir_exists(examples_path):
|
|
copy_button.disabled = false
|
|
delete_button.disabled = false
|
|
else:
|
|
delete_check_box.button_pressed = true
|
|
|
|
func _refresh_main_scene() -> void:
|
|
if MaaacksGameTemplatePlugin.instance.is_main_scene_set():
|
|
set_main_scene_check_box.button_pressed = true
|
|
else:
|
|
set_main_scene_button.disabled = false
|
|
|
|
func _refresh_default_theme() -> void:
|
|
set_default_theme_button.disabled = false
|
|
if ProjectSettings.get_setting("gui/theme/custom", "") != "":
|
|
set_default_theme_check_box.button_pressed = true
|
|
|
|
func _refresh_input_prompts() -> void:
|
|
if input_prompts_directory_path.is_empty():
|
|
push_warning("Variable \"input_prompts_directory_path\" is not set")
|
|
return
|
|
if DirAccess.dir_exists_absolute(input_prompts_directory_path):
|
|
add_input_icons_check_box.button_pressed = true
|
|
add_input_icons_button.disabled = false
|
|
|
|
func _refresh_options():
|
|
_refresh_plugin_details()
|
|
_open_check_plugin_version()
|
|
_refresh_copy_and_delete_examples()
|
|
_refresh_main_scene()
|
|
_refresh_default_theme()
|
|
_refresh_input_prompts()
|
|
|
|
func _ready():
|
|
_refresh_options()
|
|
|
|
func _on_update_button_pressed():
|
|
if ProjectSettings.get_setting(MaaacksGameTemplatePlugin.get_settings_path() + "disable_update_check", false):
|
|
ProjectSettings.set_setting(MaaacksGameTemplatePlugin.get_settings_path() + "disable_update_check", false)
|
|
_open_check_plugin_version()
|
|
return
|
|
else:
|
|
tree_exited.connect(func(): MaaacksGameTemplatePlugin.instance.open_update_plugin())
|
|
queue_free()
|
|
|
|
func _on_copy_button_pressed():
|
|
tree_exited.connect(func(): MaaacksGameTemplatePlugin.instance.open_copy_and_edit_dialog())
|
|
queue_free()
|
|
|
|
func _on_delete_button_pressed():
|
|
tree_exited.connect(func(): MaaacksGameTemplatePlugin.instance.open_delete_examples_short_confirmation_dialog())
|
|
queue_free()
|
|
|
|
func _on_set_main_scene_button_pressed():
|
|
tree_exited.connect(func(): MaaacksGameTemplatePlugin.instance.open_main_scene_confirmation_dialog(MaaacksGameTemplatePlugin.get_copy_path()))
|
|
queue_free()
|
|
|
|
func _on_set_default_theme_button_pressed():
|
|
tree_exited.connect(func(): MaaacksGameTemplatePlugin.instance.open_theme_selection_dialog(MaaacksGameTemplatePlugin.get_copy_path()))
|
|
queue_free()
|
|
|
|
func _on_add_input_icons_button_pressed():
|
|
tree_exited.connect(func(): MaaacksGameTemplatePlugin.instance.open_input_icons_dialog())
|
|
queue_free()
|