x12 windowing system

This commit is contained in:
martyTF 2025-12-09 20:17:57 +01:00
parent e16b468e23
commit e6ab1fb39a
60 changed files with 701 additions and 877 deletions

View file

@ -0,0 +1,130 @@
extends Control
var config = ConfigFile.new()
var category = ""
var item = ""
var stats = []
var items = []
var module_scene
# Called when the node enters the scene tree for the first time.
func _enter_tree() -> void:
config.load("res://02 - Configurations/" + category + ".ini")
%scroll.size = $".".size
create_book()
func set_items():
for i in %container.get_children():
match i.tooltip_text:
"Text:long":
i.get_child(1).custom_minimum_size = Vector2(%scroll.size.x - 400,192)
"Array:int":
var count = i.get_child(1).get_child_count()
for j in count:
i.get_child(1).get_child(j).custom_minimum_size.x = (%scroll.size.x - 96) / count
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.set_stat_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.set_value(LineEdit,j)
"list":
match module[2]:
"rec":
pass
"multi":
for j in config.get_value(item,i,[]):
module_scene.set_value(LineEdit,j)
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)
"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]))
"Text":
match module[1]:
"short":
var stat = LineEdit.new()
stat.text = str(config.get_value(item,i,""))
"long":
var stat = TextEdit.new()
stat.wrap_mode = 1
stat.clip_contents = false
stat.text = config.get_value(item,i,"")
set_items()
#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()