diff --git a/scripts/exportlegends.lua b/scripts/exportlegends.lua index 82cdf0ab1..537feacb8 100644 --- a/scripts/exportlegends.lua +++ b/scripts/exportlegends.lua @@ -161,8 +161,7 @@ function export_more_legends_xml() file:write("\t\t\t\n") file:write("\t\t\t\t"..buildingV.id.."\n") file:write("\t\t\t\t"..df.abstract_building_type[buildingV:getType()]:lower().."\n") - if (df.abstract_building_type[buildingV:getType()]:lower() ~= "underworld_spire") then - -- if spire: unk_50 should be name and unk_bc some kind of flag + if (df.abstract_building_type[buildingV:getType()]:lower() ~= "underworld_spire" or table.containskey(buildingV,"name")) then file:write("\t\t\t\t"..dfhack.df2utf(dfhack.TranslateName(buildingV.name, 1)).."\n") file:write("\t\t\t\t"..dfhack.df2utf(dfhack.TranslateName(buildingV.name)).."\n") end @@ -226,7 +225,7 @@ function export_more_legends_xml() if (table.containskey(artifactV.item,"description")) then file:write("\t\t"..dfhack.df2utf(artifactV.item.description:lower()).."\n") end - if (artifactV.item:getMaterial() ~= -1 and artifactV.item:getMaterialIndex() ~= -1) then + if artifactV.item:getMaterial() ~= -1 then file:write("\t\t"..dfhack.matinfo.toString(dfhack.matinfo.decode(artifactV.item:getMaterial(), artifactV.item:getMaterialIndex())).."\n") end file:write("\t\n") @@ -312,7 +311,39 @@ function export_more_legends_xml() for xK, xVal in ipairs(entityV.claims.unk2.x) do file:write(xVal..","..entityV.claims.unk2.y[xK].."|") end - file:write("\n") + file:write("\t\t\n") + if (table.containskey(entityV,"occasion_info") and entityV.occasion_info ~= nil) then + for occasionK, occasionV in pairs(entityV.occasion_info.occasions) do + file:write("\t\t\n") + file:write("\t\t\t"..occasionV.id.."\n") + file:write("\t\t\t"..dfhack.df2utf(dfhack.TranslateName(occasionV.name,1)).."\n") + file:write("\t\t\t"..occasionV.event.."\n") + for scheduleK, scheduleV in pairs(occasionV.schedule) do + file:write("\t\t\t\n") + file:write("\t\t\t\t"..scheduleK.."\n") + file:write("\t\t\t\t"..df.occasion_schedule_type[scheduleV.type]:lower().."\n") + if(scheduleV.type == df.occasion_schedule_type.THROWING_COMPETITION) then + file:write("\t\t\t\t"..df.item_type[scheduleV.reference]:lower().."\n") + file:write("\t\t\t\t"..getItemSubTypeName(scheduleV.reference,scheduleV.reference2).."\n") + else + file:write("\t\t\t\t"..scheduleV.reference.."\n") + file:write("\t\t\t\t"..scheduleV.reference2.."\n") + end + for featureK, featureV in pairs(scheduleV.features) do + file:write("\t\t\t\t\n") + if(df.occasion_schedule_feature[featureV.feature] ~= nil) then + file:write("\t\t\t\t\t"..df.occasion_schedule_feature[featureV.feature]:lower().."\n") + else + file:write("\t\t\t\t\t"..featureV.feature.."\n") + end + file:write("\t\t\t\t\t"..featureV.reference.."\n") + file:write("\t\t\t\t\n") + end + file:write("\t\t\t\n") + end + file:write("\t\t\n") + end + end file:write("\t\n") end file:write("\n") @@ -411,7 +442,7 @@ function export_more_legends_xml() or event:getType() == df.history_event_type.MASTERPIECE_CREATED_ARCH_CONSTRUCT or event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM or event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT - or event:getType() == df.history_event_type.MASTERPIECE_CREATED_FOOD -- Missing item subtype + or event:getType() == df.history_event_type.MASTERPIECE_CREATED_FOOD or event:getType() == df.history_event_type.MASTERPIECE_CREATED_ENGRAVING or event:getType() == df.history_event_type.MASTERPIECE_LOST or event:getType() == df.history_event_type.ENTITY_ACTION @@ -483,16 +514,23 @@ function export_more_legends_xml() file:write("\t\t"..df.histfig_site_link_type[v]:lower().."\n") elseif (event:getType() == df.history_event_type.ITEM_STOLEN or event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM or - event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT + event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT or + event:getType() == df.history_event_type.MASTERPIECE_CREATED_DYE_ITEM ) and k == "item_type" then file:write("\t\t"..df.item_type[v]:lower().."\n") elseif (event:getType() == df.history_event_type.ITEM_STOLEN or event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM or - event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT + event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT or + event:getType() == df.history_event_type.MASTERPIECE_CREATED_DYE_ITEM ) and k == "item_subtype" then --if event.item_type > -1 and v > -1 then file:write("\t\t<"..k..">"..getItemSubTypeName(event.item_type,v).."\n") --end + elseif event:getType() == df.history_event_type.MASTERPIECE_CREATED_FOOD and k == "item_subtype" then + --if event.item_type > -1 and v > -1 then + file:write("\t\tfood\n") + file:write("\t\t<"..k..">"..getItemSubTypeName(df.item_type.FOOD,v).."\n") + --end elseif event:getType() == df.history_event_type.ITEM_STOLEN and k == "mattype" then if (v > -1) then if (dfhack.matinfo.decode(event.mattype, event.matindex) == nil) then @@ -503,7 +541,9 @@ function export_more_legends_xml() end end elseif (event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM or - event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT + event:getType() == df.history_event_type.MASTERPIECE_CREATED_ITEM_IMPROVEMENT or + event:getType() == df.history_event_type.MASTERPIECE_CREATED_FOOD or + event:getType() == df.history_event_type.MASTERPIECE_CREATED_DYE_ITEM ) and k == "mat_type" then if (v > -1) then if (dfhack.matinfo.decode(event.mat_type, event.mat_index) == nil) then @@ -522,6 +562,15 @@ function export_more_legends_xml() file:write("\t\t"..dfhack.matinfo.toString(dfhack.matinfo.decode(event.imp_mat_type, event.imp_mat_index)).."\n") end end + elseif event:getType() == df.history_event_type.MASTERPIECE_CREATED_DYE_ITEM and k == "dye_mat_type" then + if (v > -1) then + if (dfhack.matinfo.decode(event.dye_mat_type, event.dye_mat_index) == nil) then + file:write("\t\t"..event.dye_mat_type.."\n") + file:write("\t\t"..event.dye_mat_index.."\n") + else + file:write("\t\t"..dfhack.matinfo.toString(dfhack.matinfo.decode(event.dye_mat_type, event.dye_mat_index)).."\n") + end + end elseif event:getType() == df.history_event_type.ITEM_STOLEN and k == "matindex" then --skip