Editing Module:Infobox Animal/sandbox
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 7: | Line 7: | ||
function animalBox( args, animalData ) | function animalBox( args, animalData ) | ||
-- check that all necessary arguments are passed correctly | -- check that all necessary arguments are passed correctly | ||
if args.name == nil or args.name == '' then | |||
return 'ERROR: \'name\' must be specified.' | |||
end | |||
local animal = args.name | |||
local animalTable = animalData.animals[animal] | |||
--Check Passes | |||
if animalTable == nil then | |||
return 'ERROR: \'' .. animal .. '\' could not be found in Module:AnimalData.' | |||
end | |||
local animalEN = animalTable.untranslated | local animalEN = animalTable.untranslated | ||
local animalimagename = string.gsub(animalEN, ' ', '') | |||
local | -- string used to build the infobox | ||
local | local infobox = '{| class=\"infobox\"\n' | ||
local alternateRowColor = ' bgcolor=\"#c3e2ec\"' -- Mixed in 10% Green Blue Crayola from the palette with the table background color. | |||
local headerStyle = ' style=\"background-color: #4688C0; text-align: center;\"' | |||
local valueColumnStyle = ' style=\"text-align: right; padding: 3px;\" ' | |||
-- name of the animal | -- name of the animal | ||
infobox = infobox .. '|- | infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. animal .. '</big>\'\'\'\n' | ||
-- Water, Flying or Land Animal | -- Water, Flying or Land Animal | ||
infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: ' | |||
if animalTable.isSwimming == 'Swimming' then | if animalTable.isSwimming == 'Swimming' then | ||
infobox = infobox .. ' | infobox = infobox .. '#65a9e6;\"\n| colspan=\"2\" | \'\'\'Water Animal\'\'\'[[Category:Animals]]\n' | ||
elseif animalTable.isFlying == 'Flying' then | elseif animalTable.isFlying == 'Flying' then | ||
infobox = infobox .. ' | infobox = infobox .. '#e3bd27;\"\n| colspan=\"2\" | \'\'\'Flying Animal\'\'\'[[Category:Animals]]\n' | ||
else | else | ||
infobox = infobox .. ' | infobox = infobox .. '#11af53;\"\n| colspan=\"2\" | \'\'\'Land Animal\'\'\'[[Category:Animals]]\n' | ||
end | end | ||
-- Animals Icon Image | -- Animals Icon Image | ||
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. animalimagename .. '_Animal.png|[[Category:Pages_with_missing_animal]]' | |||
if mw.title.makeTitle('File', animalimagename .. '_Animal.png').file.exists then | |||
image = animalimagename .. '_Animal.png' | |||
elseif mw.title.makeTitle('File', animalimagename .. '_Animal.jpg').file.exists then | |||
image = animalimagename .. '_Animal.jpg' | |||
end | |||
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|250x250px]]\n' | |||
-- 'General' section header | -- 'General' section header | ||
infobox = infobox .. | infobox = infobox .. '|-' .. headerStyle .. '\n| colspan=\"2\" | \'\'\'General\'\'\'\n' | ||
-- Health | |||
if animalTable.health ~= nil then | |||
infobox = infobox .. '|-\n| Health:\n|' .. valueColumnStyle .. '| ' .. animalTable.health .. '\n' | |||
end | |||
-- Idle Speed | |||
if animalTable.wanderingSpeed ~= nil then | |||
infobox = infobox .. '|-' .. alternateRowColor .. '\n| Idle Speed:\n|' .. valueColumnStyle .. '| ' .. Unit._unit(animalTable.wanderingSpeed, 'm/s') .. '\n' | |||
end | |||
-- Eats | |||
if animalTable.foodSources ~= nil then | |||
infobox = infobox .. '|-\n| Eats:\n|' .. valueColumnStyle .. '| ' .. AnimalUtils.formatFoodSources(animalTable.foodSources) .. '\n' | |||
end | |||
-- Climbing | |||
if animalTable.climbHeight ~= nil then | |||
infobox = infobox .. '|--' .. alternateRowColor .. '\n| Climb Height:\n|' .. valueColumnStyle .. '| ' .. Unit._unit(animalTable.climbHeight, 'm') .. '\n' | |||
end | |||
-- Carbon Released | |||
if animalTable.carbonRelease ~= nil then | |||
infobox = infobox .. '|-\n| Carbon Released:\n|' .. valueColumnStyle .. '| ' .. Unit._unit(animalTable.carbonRelease, 'ppm') .. '\n' | |||
end | |||
-- 'Hunting Information' section header | -- 'Hunting Information' section header | ||
infobox = infobox .. | infobox = infobox .. '|-' .. headerStyle .. '\n| colspan=\"2\" | \'\'\'Hunting\'\'\'\n' | ||
-- Harvest | |||
if animalTable.resourceItem ~= nil then | |||
infobox = infobox .. '|-\n| Harvest Item:\n|' .. valueColumnStyle .. '| ' .. animalTable.resourceItem .. '\n' | |||
end | |||
-- Flees | |||
infobox = infobox .. '|--' .. alternateRowColor .. '\n| Flees:\n|' .. valueColumnStyle .. '| ' .. Utils.formatNilToYesNo(animalTable.flees) .. '\n' | |||
-- Animals Fear | |||
if animalTable.fearFactor ~= nil then | |||
infobox = infobox .. '|-\n| [[Fear Factor]]:\n|' .. valueColumnStyle .. '| ' .. animalTable.fearFactor .. '\n' | |||
end | |||
-- Running Speed | |||
if animalTable.speed ~= nil then | |||
infobox = infobox .. '|-' .. alternateRowColor .. '\n| Flee Speed:\n|' .. valueColumnStyle .. '| ' .. Unit._unit(animalTable.speed, 'm/s') .. '\n' | |||
end | |||
-- Attack Chance | -- Attack Chance | ||
if animalTable.chanceToAttack ~= nil then | if animalTable.chanceToAttack ~= nil then | ||
infobox = infobox .. '|-\n| Attack Chance:\n|' .. | infobox = infobox .. '|-\n| Attack Chance:\n|' .. valueColumnStyle .. '| ' .. (animalTable.chanceToAttack*100) .. ' % \n' | ||
end | end | ||
-- Attack Damage | |||
if animalTable.damage ~= nil then | |||
infobox = infobox .. '|-' .. alternateRowColor .. '\n| Attack Damage:\n|' .. valueColumnStyle .. '| ' .. animalTable.damage .. '\n' | |||
end | |||
-- Detect Range | |||
if animalTable.detectRange ~= nil then | |||
infobox = infobox .. '|-\n| Detect Range:\n|' .. valueColumnStyle .. '| ' .. Unit._unit(animalTable.detectRange, 'm') .. '\n' | |||
end | |||
-- Attack Range | |||
if animalTable.attackRange ~= nil then | |||
infobox = infobox .. '|-' .. alternateRowColor .. '\n| Attack Range:\n|' .. valueColumnStyle .. '| ' .. Unit._unit(animalTable.attackRange, 'm') .. '\n' | |||
end | |||
infobox = infobox .. '|}' | infobox = infobox .. '|}' | ||
return infobox | return infobox | ||
end | end | ||
-- Main entry point for the Module | -- Main entry point for the Module | ||
function p.AnimalMain(frame) | function p.AnimalMain(frame) | ||
-- get args from the Template | -- get args from the Template | ||
local args = Utils.normaliseArgs(frame) | |||
-- get animal data | -- get animal data | ||
Line 130: | Line 136: | ||
return animalBox( args, animalData ) | return animalBox( args, animalData ) | ||
end | end | ||
return p | return p |