Module:Resources: Difference between revisions
From Nova Roma Official Wiki
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
local icons = { | local icons = { | ||
apples = "[[File:icon_apples.png|30px|link=Apples]]", | |||
bread = "[[File:resource bread.png|30px|link=Bread]]", | |||
charcoal = "[[File:resource charcoal.png|30px|link=Charcoal]]", | |||
clay = "[[File:icon_clay.png|30px|link=Clay]]", | |||
fish = "[[File:icon_fish.png|30px|link=Fish]]", | |||
gold = "[[File:icon_gold.png|30px|link=Gold]]", | gold = "[[File:icon_gold.png|30px|link=Gold]]", | ||
grapes = "[[File:icon_grapes.png|30px|link=Grapes]]", | grapes = "[[File:icon_grapes.png|30px|link=Grapes]]", | ||
marble = "[[File:icon_marble.png|30px|link=Marble]]", | |||
meat = "[[File:icon_pork.png|30px|link=Meat]]", | |||
olives = "[[File:icon_olives.png|30px|link=Olives]]", | olives = "[[File:icon_olives.png|30px|link=Olives]]", | ||
oliveoil = "[[File:icon_oliveoil.png|30px|link=Olive Oil]]", | oliveoil = "[[File:icon_oliveoil.png|30px|link=Olive Oil]]", | ||
pottery = "[[File:icon_pottery.png|30px|link=Pottery]]", | |||
salt = "[[File:icon_salt.png|30px|link=Salt]]", | salt = "[[File:icon_salt.png|30px|link=Salt]]", | ||
stone = "[[File:icon_stone.png|30px|link=Stone]]", | |||
tools = "[[File:icon_tools.png|30px|link=Tools]]", | |||
weapons = "[[File:icon_armament.png|30px|link=Armament]]", | |||
wheat = "[[File:icon_wheat.png|30px|link=Wheat]]", | |||
wine = "[[File:icon_wine.png|30px|link=Wine]]", | |||
wood = "[[File:icon_wood.png|30px|link=Wood]]", | |||
} | } | ||
Revision as of 00:41, 13 March 2026
Documentation for this module may be created at Module:Resources/doc
local p = {}
local icons = {
apples = "[[File:icon_apples.png|30px|link=Apples]]",
bread = "[[File:resource bread.png|30px|link=Bread]]",
charcoal = "[[File:resource charcoal.png|30px|link=Charcoal]]",
clay = "[[File:icon_clay.png|30px|link=Clay]]",
fish = "[[File:icon_fish.png|30px|link=Fish]]",
gold = "[[File:icon_gold.png|30px|link=Gold]]",
grapes = "[[File:icon_grapes.png|30px|link=Grapes]]",
marble = "[[File:icon_marble.png|30px|link=Marble]]",
meat = "[[File:icon_pork.png|30px|link=Meat]]",
olives = "[[File:icon_olives.png|30px|link=Olives]]",
oliveoil = "[[File:icon_oliveoil.png|30px|link=Olive Oil]]",
pottery = "[[File:icon_pottery.png|30px|link=Pottery]]",
salt = "[[File:icon_salt.png|30px|link=Salt]]",
stone = "[[File:icon_stone.png|30px|link=Stone]]",
tools = "[[File:icon_tools.png|30px|link=Tools]]",
weapons = "[[File:icon_armament.png|30px|link=Armament]]",
wheat = "[[File:icon_wheat.png|30px|link=Wheat]]",
wine = "[[File:icon_wine.png|30px|link=Wine]]",
wood = "[[File:icon_wood.png|30px|link=Wood]]",
}
function p.format(frame)
local input = frame.args[1] or ""
local result = {}
-- Split by comma and process each resource
for resource in input:gmatch("[^,]+") do
resource = resource:match("^%s*(.-)%s*$") -- trim whitespace
local amount, name = resource:match("(%d+)%s+(%w+)")
if amount and name and icons[name] then
-- If amount exists: "icon amount" with <br>
table.insert(result, {icons[name] .. " " .. amount, true})
else
-- If only name: "icon" with space
name = resource:match("(%w+)")
if name and icons[name] then
table.insert(result, {icons[name], false})
end
end
end
-- Join with <br> for amounts, space for names only
local output = {}
for i, item in ipairs(result) do
table.insert(output, item[1])
end
local final = ""
for i, item in ipairs(result) do
final = final .. item[1]
if item[2] and i < #result then
final = final .. "<br>"
elseif not item[2] and i < #result then
final = final .. " "
end
end
return final
end
return p


