Editing Module:VariantDetails
From Eco - English Wiki
Your changes will be displayed to readers once an authorized user accepts them. (help)
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
-- Credit: | -- Credit: | ||
local p = {} | local p = {} | ||
-- Grabs args from the parent frame | |||
local | -- Trims and parses the args into a table, then returns the table | ||
function norm() | |||
local origArgs = mw.getCurrentFrame():getParent().args | |||
local args = {} | |||
for k, v in pairs( origArgs ) do | |||
v = mw.text.trim( tostring( v ) ) | |||
if v ~= '' then | |||
args[k] = v | |||
end | |||
end | |||
return args | |||
end | end | ||
-- | -- Build an Item varientBox | ||
function | function variantBox( args, itemData ) | ||
-- check that all necessary arguments are passed correctly | |||
if args.name == nil or args.name == '' then | if args.name == nil or args.name == '' then | ||
return '\'name\' must be specified.' | return '\'name\' must be specified.' | ||
end | end | ||
local item = args.name | |||
local | local itemTable = itemData.items[item] | ||
if itemTable == nil then | |||
return item .. ' could not be found in Module:ItemData.' | |||
end | |||
local itemType = itemTable.type | |||
local itemEN = string.sub (itemType, 1, -5) | |||
local itemimagename = string.gsub(itemEN, ' ', '') | |||
-- string used to build the varientBox | |||
local varientBox = '{| class=\"wikitable\"\n' | |||
-- 'Name and Image' section | |||
-- name of the item | |||
varientBox = varientBox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. item .. '</big>\'\'\'\n' | |||
-- the item's type (ItemData - group) | |||
varientBox = varientBox .. '|- style=\"text-align: center; color: white; background-color: ' | |||
if itemTable.group == 'Food' then | |||
varientBox = varientBox .. '#85D66B;\"\n| colspan=\"2\" | \'\'\'Food\'\'\'\n' | |||
-- Items:Food Icon Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Icon.png|[[Category:Pages_with_missing_icon]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Icon.png').file.exists then | |||
image = itemimagename .. '_Icon.png' | |||
elseif mw.title.makeTitle('File', itemimagename .. '_Icon.jpg').file.exists then | |||
image = itemimagename .. '_Icon.jpg' | |||
end | |||
varientBox = varientBox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconGreen]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
elseif itemTable.group == 'Skill Books' then | |||
varientBox = varientBox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n' | |||
-- Items:Skill Book Icon Image | |||
varientBox = varientBox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:SkillBook.png|link=https://wiki.play.eco/File:SkillBook.png|frameless|class=iconGold]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
elseif itemTable.group == 'Skill Scrolls' then | |||
varientBox = varientBox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n' | |||
-- Items:Skill Scrolls Icon Image | |||
varientBox = varientBox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:SkillScroll.png|link=https://wiki.play.eco/File:SkillScroll.png|frameless|class=iconGold]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
else | |||
varientBox = varientBox .. '#78B1FF;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n' | |||
-- Items: Other Icon Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Icon.png|[[Category:Pages_with_missing_icon]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Icon.png').file.exists then | |||
image = itemimagename .. '_Icon.png' | |||
elseif mw.title.makeTitle('File', itemimagename .. '_Icon.jpg').file.exists then | |||
image = itemimagename .. '_Icon.jpg' | |||
end | |||
varientBox = varientBox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | <div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconBlue]]</div><div class=iconBorder style=\"position:absolute;\"></div></div> \n' | |||
end | |||
-- Object Placed Image | |||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Placed.png|[[Category:Pages_with_missing_placed]]' | |||
if mw.title.makeTitle('File', itemimagename .. '_Placed.png').file.exists then | |||
image = itemimagename .. '_Placed.png' | |||
elseif mw.title.makeTitle('File', itemimagename .. '_Placed.jpg').file.exists then | |||
image = itemimagename .. '_Placed.jpg' | |||
end | |||
varientBox = varientBox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n' | |||
-- 'Housing' section (if there is a Room Category) | |||
if itemTable.roomCategory ~= nil then | |||
-- Housing Header | |||
varientBox = varientBox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Housing\'\'\'\n' | |||
--roomCategory | |||
varientBox = varientBox .. '|-\n| Room Category:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomCategory .. '\n' | |||
if itemTable.roomCategory ~= 'Industrial' then | |||
if itemTable.furnitureType ~= nil then | |||
--furnitureType | |||
varientBox = varientBox .. '|-\n| Furniture Type:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.furnitureType .. '\n' | |||
end | |||
--Value of the object | |||
varientBox = varientBox .. '|-\n| Value:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.skillValue .. '\n' | |||
--Dim. Return % of Object | |||
varientBox = varientBox .. '|-\n| Dim. Return %:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.repeatsDepreciation .. '\n' | |||
end | |||
end | |||
if itemTable.roomCategory == 'Industrial' then | |||
varientBox = varientBox .. '|- style=\"background-color: red; text-align: center;\"\n| colspan=\"2\" | \'\'\'ALL ROOM VALUE LOST\'\'\'\n' | |||
end | |||
end | |||
varientBox = varientBox .. '|}' | |||
return varientBox | |||
end | |||
-- Main entry point for the Module | |||
function p.main() | |||
-- get args from the Template | |||
local args = norm() | |||
-- get item data | |||
local itemData = require( "Module:ItemData" ) | |||
return variantBox( args, itemData ) | |||
end | |||
return p | return p |