mirror of
https://github.com/Relintai/broken_seals.git
synced 2024-12-21 13:16:49 +01:00
75 lines
1.9 KiB
GDScript
75 lines
1.9 KiB
GDScript
tool
|
|
extends ConfirmationDialog
|
|
|
|
const DataManagerAddonSettings = preload("res://addons/data_manager/resources/data_manager_addon_settings.gd")
|
|
|
|
var _settings : DataManagerAddonSettings = null
|
|
var _module = null
|
|
|
|
signal folders_created
|
|
|
|
func _enter_tree():
|
|
if !is_connected("confirmed", self, "on_confirmed"):
|
|
connect("confirmed", self, "on_confirmed")
|
|
|
|
func setup() -> void:
|
|
var entry_container : Control = $ScrollContainer/VBoxContainer
|
|
|
|
for ch in entry_container.get_children():
|
|
ch.queue_free()
|
|
|
|
var dir : Directory = Directory.new()
|
|
|
|
var label_str : String = "= " + get_module_label_text(_module) + " ="
|
|
window_title = "Add folder(s) for " + label_str
|
|
|
|
var module_dir_base : String = _module.resource_path.get_base_dir()
|
|
|
|
for f in _settings.folders:
|
|
if dir.dir_exists(module_dir_base + "/" + f.folder):
|
|
continue
|
|
|
|
var ecb : CheckBox = CheckBox.new()
|
|
ecb.text = f.folder + " (" + f.type + ")"
|
|
ecb.set_meta("folder", f.folder)
|
|
entry_container.add_child(ecb)
|
|
|
|
func on_confirmed() -> void:
|
|
var entry_container : Control = $ScrollContainer/VBoxContainer
|
|
|
|
var dir : Directory = Directory.new()
|
|
var module_dir_base : String = _module.resource_path.get_base_dir()
|
|
|
|
for c in entry_container.get_children():
|
|
if !(c is CheckBox):
|
|
continue
|
|
|
|
if !c.pressed:
|
|
continue
|
|
|
|
var folder : String = c.get_meta("folder")
|
|
var d : String = module_dir_base + "/" + folder
|
|
if !dir.dir_exists(d):
|
|
dir.make_dir(d)
|
|
|
|
emit_signal("folders_created")
|
|
|
|
func set_module(module, settings : DataManagerAddonSettings) -> void:
|
|
_module = module
|
|
_settings = settings
|
|
setup()
|
|
#popup_centered()
|
|
|
|
popup_centered()
|
|
|
|
func get_module_label_text(module) -> String:
|
|
var label_str : String = module.resource_name
|
|
|
|
if label_str == "":
|
|
label_str = module.resource_path
|
|
label_str = label_str.replace("res://", "")
|
|
label_str = label_str.replace("/game_module.tres", "")
|
|
label_str = label_str.replace("game_module.tres", "")
|
|
|
|
return label_str
|