73 lines
2.5 KiB
Plaintext
73 lines
2.5 KiB
Plaintext
local new_art = {}
|
|
--[[
|
|
categories:
|
|
section -> {
|
|
section = name of category
|
|
articles = section name (title, append _text for info)
|
|
}
|
|
]]
|
|
-- just holds the new categories
|
|
local new_cat = {}
|
|
|
|
function parse_cat()
|
|
local ini_cat = ini_file("plugins\\encyclopedia_custom\\categories\\importer.ltx")
|
|
ini_cat:section_for_each(function(section)
|
|
printf("category: processing %s", section)
|
|
table.insert(new_cat, section)
|
|
end)
|
|
|
|
local ini_art = ini_file("plugins\\encyclopedia_custom\\articles\\importer.ltx")
|
|
ini_art:section_for_each(function(section)
|
|
printf("article: processing %s", section)
|
|
local line_count = ini_art:line_count(section) or 0
|
|
for i=0,line_count-1 do
|
|
local junk1, article, category = ini_art:r_line(section, i, "", "")
|
|
if not new_art[category] then new_art[category] = {section = category} end
|
|
if not new_art[category].articles then new_art[category].articles = {} end
|
|
table.insert(new_art[category].articles, article)
|
|
end
|
|
end)
|
|
end
|
|
|
|
InitArticles = ui_pda_encyclopedia_tab.pda_encyclopedia_tab.InitArticles
|
|
function ui_pda_encyclopedia_tab.pda_encyclopedia_tab:InitArticles(section_c)
|
|
InitArticles(self, section_c)
|
|
if new_art[section_c] then
|
|
local category = new_art[section_c]
|
|
local articles = category and category.articles or nil
|
|
if (not articles) then return end
|
|
-- Create each article item and add it to the category.
|
|
local item = nil
|
|
local section = nil
|
|
local n = 1
|
|
for i = 1, #articles do
|
|
section = articles[i]
|
|
if (section) then
|
|
local clr = ui_pda_encyclopedia_tab.UpdateColor(section)
|
|
item = ui_pda_encyclopedia_tab.pda_encyclopedia_entry(section, n, clr)
|
|
self.article_list:AddExistingItem(item)
|
|
n = n + 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
InitCategories = ui_pda_encyclopedia_tab.pda_encyclopedia_tab.InitCategories
|
|
function ui_pda_encyclopedia_tab.pda_encyclopedia_tab:InitCategories()
|
|
InitCategories(self)
|
|
printf("there are %s new categories", #new_cat)
|
|
for k,v in pairs(new_cat) do
|
|
local clr = ui_pda_encyclopedia_tab.UpdateColor(v)
|
|
item = ui_pda_encyclopedia_tab.pda_encyclopedia_entry(v, k, clr)
|
|
self.category_list:AddExistingItem(item)
|
|
end
|
|
end
|
|
|
|
function on_game_load()
|
|
parse_cat()
|
|
end
|
|
|
|
|
|
function on_game_start()
|
|
RegisterScriptCallback("on_game_load",on_game_load)
|
|
end |