cultists_of_campath/01 - Menus/03 - Sheets/sheet.gd
2026-01-26 17:35:55 +01:00

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()