Editing Module:VariantDetails

From Eco - English Wiki

Your changes will be displayed to readers once an authorized user accepts them. (help)

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

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 = {}


local Utils = require('Module:Utils')
-- Grabs args from the parent frame
local L = require('Module:Localization')
-- 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
 
-- Build an Varient Card
function variantBox( args, itemData )
    -- check that all necessary arguments are passed correctly
    if args.name == nil or args.name == '' then
        return '\'name\' must be specified.'
    end
   
local varientName = args.name
local itemTable = itemData.items[varientName]


-- build a variant card
if itemTable == nil then
function buildVariant(variantName, variant)
return varientName .. ' could not be found in Module:ItemData.'
-- variant does not exist as an item then just return
if variant == nil then
return "No variant here"
end
end
 
local itemimagename = string.gsub(variant.untranslated, ' ', '')
    local itemType = itemTable.type
local itemEN = string.sub (itemType, 1, -5)
local itemimagename = string.gsub(itemEN, ' ', '')
   
    -- string used to build the varientCard
    local varientCard = '{|class=\"card mb-3\" style=\"background: #d1ecf1; border: 5px solid #7BC2CE; width: fit-content;\"\n'
      
      
    -- string used to build the card
    local card = '<div class="col mb-4"><div class="card h-100" style="width: 300px; background: #d1ecf1; border: 5px solid #7BC2CE;">'
   
-- Name of card
card = card .. '<div class="card-header" style="color: white; background-color: #1165AF; text-align: center; padding:.1rem;">' .. variantName .. '</div>'


-- Variant: Icon Image
-- Name of VarientCard
varientCard = varientCard .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. varientName .. '</big>\'\'\'\n'
 
-- Varient: 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]]'
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Icon.png|[[Category:Pages_with_missing_icon]]'
-- find the image file if it exists
if mw.title.makeTitle('File', itemimagename .. '_Icon.png').file.exists then
if mw.title.makeTitle('File', itemimagename .. '_Icon.png').file.exists then
image = itemimagename .. '_Icon.png'
image = itemimagename .. '_Icon.png'
elseif mw.title.makeTitle('File', itemimagename .. '_Icon.jpg').file.exists then
elseif mw.title.makeTitle('File', itemimagename .. '_Icon.jpg').file.exists then
image = itemimagename .. '_Icon.jpg'
image = itemimagename .. '_Icon.jpg'
end -- if image file found
end
-- create image cell
varientCard = varientCard .. '|-\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'
card = card .. '<div class="iconContainer"><div class="iconStack">[[File:' .. image .. '|frameless|class=iconBlue]]</div><div class=iconBorder style=\"position:absolute;\"></div></div>'
-- 'Housing' section (if there is a Room Category)
if itemTable.roomCategory ~= nil then 
-- Housing Header
varientCard = varientCard .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Housing\'\'\'\n'
   
--roomCategory
varientCard = varientCard .. '|-\n| Room Category:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomCategory .. '\n'


if itemTable.roomCategory ~= 'Industrial' then
if itemTable.furnitureType ~= nil then
--furnitureType
varientCard = varientCard .. '|-\n| Furniture Type:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.furnitureType .. '\n'
           
--Value of the object
varientCard = varientCard .. '|-\n| Value:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.skillValue .. '\n'
           
--Dim. Return % of Object 
varientCard = varientCard .. '|-\n| Dim. Return %:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.repeatsDepreciation .. '\n'   
end
end
if itemTable.roomCategory == 'Industrial' then
varientCard = varientCard .. '|- style=\"background-color: red; text-align: center;\"\n| colspan=\"2\" | \'\'\'ALL ROOM VALUE LOST\'\'\'\n'
end
end
-- Object Placed Image
-- 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]]'
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Placed.png|[[Category:Pages_with_missing_placed]]'
Line 41: Line 88:
image = itemimagename .. '_Placed.jpg'
image = itemimagename .. '_Placed.jpg'
end
end
card = card .. ' <p class="card-img-bottom" style="text-align-last: center;"[[File:' .. image .. '|250px]] </p> </div></div>'
varientCard = varientCard .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
return card
varientCard = varientCard .. '|}'
end
 
-- build all variant cards
function p.main(frame) 
local args = Utils.normaliseArgs(frame)
-- check that all necessary arguments are passed correctly
    if args.name == nil or args.name == '' then
        return '\'name\' must be specified.'
    end
   
-- name passed in will be the default recipe variant
local defaultName = args.name
-- need both crafting recipes to find variants
return varientCard
local recipeData =  mw.loadData( "Module:CraftingRecipes" )
-- get the tables from the modules
end
local recipeList = recipeData.recipes
-- get the main recipe
local defaultRecipe = recipeList[defaultName]
-- break if defaultName not found
if (defaultRecipe == nil) then
return defaultName .. " could not be found in the recipe data"
end -- if default is nil
-- get the variants for the recipe
local variants = defaultRecipe.variants
local numVariants = tonumber(defaultRecipe.numberOfVariants)
-- break if no variants. return blank to not break page flow.
if (variants == nil or numVariants <= 1) then
return "No Variants to find"
end -- if variants don't exist
-- create variable to store returned text
local text = ""
text = text .. '<div class="card-deck">'
text = text .. '<h2>' .. L.t('Variants') .. '</h2>\n'
text = text .. "'''" .. L.t('Note') .. ":'''''" .. L.t("The Infobox displays information for all Variants as they have the same stats. World Object item variants are crafted using different recipe materials which usually means the items come in a variety of different colours depending on the material used.") .. "''\n"
text = text .. '<div class="row row-cols-1 row-cols-md-3" style="text-align:-webkit-center;">'
for k,v in pairs(variants) do
--skip the default variant
if (k ~= defaultName) then
-- build the text for each variant
text = text .. buildVariant(k, v) .. ''
end -- if variant is not default
end -- for each variant
text = text ..'</div></div>'
return text
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
Please note that all contributions to Eco - English Wiki are considered to be released under the CC BY-NC-SA 4.0 (see Eco:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)

Template used on this page: