125 lines
4.2 KiB
GDScript
125 lines
4.2 KiB
GDScript
extends Control
|
|
|
|
var config = ConfigFile.new()
|
|
var category = ""
|
|
var item = ""
|
|
var stats = []
|
|
|
|
var items = []
|
|
|
|
var module_scene
|
|
|
|
func _enter_tree() -> void:
|
|
config.load("res://02 - Configurations/" + category + ".ini")
|
|
create_book()
|
|
|
|
func create_book():
|
|
var conf_modules = ConfigFile.new()
|
|
conf_modules.load("res://02 - Configurations/campaign/modules.ini")
|
|
stats = conf_modules.get_section_keys(category)
|
|
print(str(stats))
|
|
for i in stats:
|
|
module_scene = load("res://01 - Menus/04 - Modules/module.tscn").instantiate()
|
|
module_scene.size.x = %container.size.x
|
|
%container.add_child(module_scene)
|
|
module_scene.text = i
|
|
module_scene.custom_minimum_size = Vector2(256,64)
|
|
var module = conf_modules.get_value(category,i,"").split(":",true)
|
|
create_module(module,i)
|
|
|
|
func create_module(module,i):
|
|
match module[0]:
|
|
"Array":
|
|
match module[1]:
|
|
"int":
|
|
var fixed_array = [0]
|
|
fixed_array.resize(int(module[2]))
|
|
fixed_array.fill(0)
|
|
var value = config.get_value(item,i,fixed_array)
|
|
for j in value:
|
|
module_scene.module_type = LineEdit
|
|
module_scene.value = j
|
|
module_scene.init()
|
|
"list":
|
|
match module[2]:
|
|
"rec":
|
|
pass
|
|
"multi":
|
|
for j in config.get_value(item,i,[]):
|
|
module_scene.module_type = Button
|
|
module_scene.value = j
|
|
module_scene.init()
|
|
var conf_category = ConfigFile.new()
|
|
conf_category.load("res://02 - Configurations/" + i + ".ini")
|
|
var add_stat = OptionButton.new()
|
|
add_stat.add_separator("Add " + i)
|
|
add_stat.set_item_disabled(0,true)
|
|
for j in conf_category.get_sections():
|
|
if not config.get_value(item,i,[]).has(j):
|
|
add_stat.add_item(j)
|
|
add_stat.select(0)
|
|
module_scene.get_child(0).get_child(1).add_child(add_stat)
|
|
"single":
|
|
var conf_category = ConfigFile.new()
|
|
conf_category.load("res://02 - Configurations/" + i + ".ini")
|
|
var add_stat = OptionButton.new()
|
|
add_stat.add_separator("Select " + i)
|
|
add_stat.set_item_disabled(0,true)
|
|
for j in conf_category.get_sections():
|
|
add_stat.add_item(j)
|
|
add_stat.select(1 + conf_category.get_sections().find(config.get_value(item,i,[""])[0]))
|
|
module_scene.get_child(0).get_child(1).add_child(add_stat)
|
|
"Text":
|
|
match module[1]:
|
|
"short":
|
|
module_scene.module_type = LineEdit
|
|
module_scene.value = str(config.get_value(item,i,""))
|
|
module_scene.init()
|
|
"long":
|
|
module_scene.module_type = TextEdit
|
|
module_scene.value = str(config.get_value(item,i,""))
|
|
module_scene.init()
|
|
|
|
#func rec(i,conf,k):
|
|
#var conff = "res://02 - Configurations/" + conf + ".ini"
|
|
#config = ConfigFile.new()
|
|
#config.load(conff)
|
|
#print("modules_list:rec:1 conff = " + conff)
|
|
#print("modules_list:rec:2 sections = " + str(config.get_section_keys(k)))
|
|
#print("modules_list:rec:3 k = " + str(k))
|
|
#print("modules_list:rec:4 i = " + str(i))
|
|
#if config.get_section_keys(k).has(i):
|
|
#var m = config.get_value(k,i)
|
|
#print("modules_list:rec:5 " + (k) + " has " + str(m) + " as " + str(i))
|
|
#if module == i:
|
|
#print("modules_list:rec:6 " + str(items))
|
|
#for b in config.get_value(k,i,[]):
|
|
#print("modules_list:rec:10 " + str(b) + str(items))
|
|
#if not items.has(b) and b != "":
|
|
#items = items + [b]
|
|
#print("modules_list:rec:11 adding " + b + " to list")
|
|
#if item_filter == "":
|
|
#%list.add_item(str(b))
|
|
#%list.set_item_tooltip(%list.item_count - 1, k)
|
|
#if conf != category:
|
|
#%list.set_item_custom_bg_color(%list.item_count - 1,"black")
|
|
#elif item_filter.to_lower() in b.to_lower():
|
|
#%list.add_item(str(b))
|
|
#else:
|
|
#%list.item_count = %list.item_count -1
|
|
#print("modules_list:rec:12 " + i + " " + str(category))
|
|
#if i != category:
|
|
#print("modules_list:rec:7 " + str(rec_helper.slice(rec_helper.find(i),-1)))
|
|
#print("modules_list:rec:8 " + str(m))
|
|
#for o in rec_helper.slice(rec_helper.find(i),rec_helper.size()):
|
|
#print(str(o))
|
|
#for j in m:
|
|
#print("modules_list:rec:9 rec " + o + " - " + i + " - " + j)
|
|
#rec(o,i,j)
|
|
|
|
func _on_close_button_up() -> void:
|
|
queue_free()
|
|
|
|
func redraw():
|
|
for i in %container.get_children():
|
|
i.resize()
|