|
|
| (2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) |
| Zeile 1: |
Zeile 1: |
| local p = {} | | local p = {} |
| | local Utils = require('Module:Utils') |
| | local RecipeUtils = require('Module:RecipeUtils') |
| | local IconUtils = require('Module:IconUtils') |
|
| |
|
| -- Grabs args from the parent frame
| | local Lang = Utils.getLanguageName() |
| -- 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 Animal Infobox
| |
| function animalBox( args, animalData )
| |
| -- check that all necessary arguments are passed correctly
| |
| if args.name == nil or args.name == '' then
| |
| return '\'name\' must be specified.'
| |
| end
| |
|
| |
| local animal = args.name
| |
| local animalTable = animalData.animals[animal]
| |
| | |
| --Check Passes
| |
| if animalTable == nil then
| |
| return animal .. ' could not be found in Module:AnimalData.'
| |
| end
| |
|
| |
|
| local animalEN = animalTable.untranslated
| | function p.main(frame) |
| local animalimagename = string.gsub(animalEN, ' ', '') | | local PageName = frame.args[1] |
| | if (Lang == 'English') then AnimalName = PageName else AnimalName = Utils.AnimalSearch(PageName) end |
| | local AnimalData = require( "Module:AnimalData" ) |
| | local Animal = AnimalData.animals[AnimalName] |
| | local WikiText ='' |
| | | |
| -- string used to build the infobox
| | WikiText = WikiText ..'__NOTOC__' |
| local infobox = '{| class=\"infobox\"\n'
| | WikiText = WikiText ..'page name get test: ' .. PageName ..'</br>' |
|
| | WikiText = WikiText ..'Animal name get test: ' .. AnimalName ..'</br>' |
| -- name of the animal
| |
| infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. animal .. '</big>\'\'\'\n'
| |
|
| |
| -- Water, Flying or Land Animal
| |
| infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: '
| |
| if animalTable.isSwimming == 'Schwimmen' then
| |
| infobox = infobox .. '#65a9e6;\"\n| colspan=\"2\" | \'\'\'Wassertier\'\'\'\n'
| |
| elseif animalTable.isFlying == 'Fliegend' then
| |
| infobox = infobox .. '#e3bd27;\"\n| colspan=\"2\" | \'\'\'Fliegendes Tier\'\'\'\n'
| |
| else
| |
| infobox = infobox .. '#11af53;\"\n| colspan=\"2\" | \'\'\'Land-Tier\'\'\'\n'
| |
| end
| |
| | | |
| -- Animals Icon Image
| | WikiText = WikiText .. '<div class="row gy-4 gx-5"><div class="col-md-6">' |
| local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. animalimagename .. '_Animal.png|[[Category:Pages_with_missing_animal]]' | | local GalleryImagesList = AnimalName .. "_Animal.jpg|" .. AnimalName .."\n" .. AnimalName .. "_Animal.jpg" |
| if mw.title.makeTitle('File', animalimagename .. '_Animal.png').file.exists then | | WikiText = WikiText .. frame:callParserFunction{ name = '#tag:gallery', args = { mode = 'slideshow', widths = '100%', ''.. GalleryImagesList .. '' , showthumbnails = 'true'} } |
| image = animalimagename .. '_Animal.png'
| | WikiText = WikiText .. '</div>' |
| elseif mw.title.makeTitle('File', animalimagename .. '_Animal.jpg').file.exists then
| | WikiText = WikiText ..'<div class="col-md-6"><div class="card border-primary"><div class="card-body">' |
| image = animalimagename .. '_Animal.jpg'
| | WikiText = WikiText ..'<h2 class="card-title fs-40">' .. IconUtils.main{name = Animal.Name[Lang], id = Animal.ID , size = 48, style = 1} .. ' ' .. Animal.Name[Lang] .. '</h2>' |
| end | | WikiText = WikiText ..'<p class="col-lg-10 card-text">' .. Animal.Description[Lang] .. '</p>' |
|
| | WikiText = WikiText .. '<table class="table table-striped table-bordered w-80"><tr class="thead-dark">'; |
| infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|250x250px]]\n'
| | WikiText = WikiText .. '<th>' .. Utils.Translate("Name") .. '</th><th>' .. Utils.Translate("Value") .. '</th>' |
|
| |
| -- 'General' section header
| |
| infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'General\'\'\'\n' | |
| | |
| -- Health
| |
| if animalTable.health ~= nil then
| |
| infobox = infobox .. '|-\n| Gesundheit:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.health .. '\n'
| |
| end
| |
|
| |
| -- Idle Speed
| |
| if animalTable.wanderingSpeed ~= nil then
| |
| infobox = infobox .. '|-\n| Leerlauf:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.wanderingSpeed .. ' mps\n'
| |
| end
| |
| | |
| -- Eats
| |
| if animalTable.foodSources ~= nil then
| |
| infobox = infobox .. '|-\n| Isst:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.foodSources .. '\n'
| |
| end
| |
|
| |
| -- Climbing
| |
| if animalTable.climbHeight ~= nil then
| |
| infobox = infobox .. '|-\n| Kletterhöhe:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.climbHeight .. ' m \n'
| |
| end
| |
|
| |
| -- Carbon Released
| |
| if animalTable.carbonRelease ~= nil then
| |
| infobox = infobox .. '|-\n| Kohlenstoff freigesetzt:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.carbonRelease .. ' ppm \n'
| |
| end
| |
| | |
| | | |
| -- 'Hunting Infomation' section header
| | WikiText = WikiText .. '</table>' |
| infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Jagd\'\'\'\n'
| | WikiText = WikiText ..'</div></div></div></div>' |
| | |
| -- Harvest
| |
| if animalTable.resourceItem ~= nil then
| |
| infobox = infobox .. '|-\n| Ernteartikel:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.resourceItem .. '\n'
| |
| end
| |
|
| |
| -- Flees
| |
| if animalTable.flees ~= nil then
| |
| infobox = infobox .. '|-\n| Flieht:\n| style=\"text-align: right; padding: 3px;\" | Yes \n'
| |
| else
| |
| infobox = infobox .. '|-\n| Flieht:\n| style=\"text-align: right; padding: 3px;\" | No \n'
| |
| end
| |
| | |
| -- Animals Fear
| |
| if animalTable.fearFactor ~= nil then
| |
| infobox = infobox .. '|-\n| [[Angstfaktor]]:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.fearFactor .. '\n'
| |
| end
| |
|
| |
| -- Running Speed
| |
| if animalTable.speed ~= nil then
| |
| infobox = infobox .. '|-\n| Fluchtgeschwindigkeit:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.speed .. ' mps \n'
| |
| end
| |
| | |
| -- Attack Chance
| |
| if animalTable.chanceToAttack ~= nil then
| |
| infobox = infobox .. '|-\n| Angriffschance:\n| style=\"text-align: right; padding: 3px;\" | ' .. (animalTable.chanceToAttack*100) .. ' % \n'
| |
| end
| |
|
| |
| -- Attack Damage
| |
| if animalTable.damage ~= nil then
| |
| infobox = infobox .. '|-\n| Angriffsschaden:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.damage .. '\n'
| |
| end
| |
|
| |
| -- Detect Range
| |
| if animalTable.detectRange ~= nil then
| |
| infobox = infobox .. '|-\n| Reichweite erkennen:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.detectRange .. ' m \n'
| |
| end
| |
| | |
| -- Attack Range
| |
| if animalTable.attackRange ~= nil then
| |
| infobox = infobox .. '|-\n| Angriffsreichweite:\n| style=\"text-align: right; padding: 3px;\" | ' .. animalTable.attackRange .. ' m \n'
| |
| end
| |
| | | |
| infobox = infobox .. '|}'
| |
| | | |
| return infobox
| | return WikiText |
| end | | end |
|
| |
|
| |
| -- Main entry point for the Module
| |
| function p.AnimalMain()
| |
| -- get args from the Template
| |
| local args = norm()
| |
|
| |
| -- get animal data
| |
| local animalData = require( "Module:AnimalData" )
| |
|
| |
| return animalBox( args, animalData )
| |
|
| |
| end
| |
|
| |
|
| |
|
| return p | | return p |
local p = {}
local Utils = require('Module:Utils')
local RecipeUtils = require('Module:RecipeUtils')
local IconUtils = require('Module:IconUtils')
local Lang = Utils.getLanguageName()
function p.main(frame)
local PageName = frame.args[1]
if (Lang == 'English') then AnimalName = PageName else AnimalName = Utils.AnimalSearch(PageName) end
local AnimalData = require( "Module:AnimalData" )
local Animal = AnimalData.animals[AnimalName]
local WikiText =''
WikiText = WikiText ..'__NOTOC__'
WikiText = WikiText ..'page name get test: ' .. PageName ..'</br>'
WikiText = WikiText ..'Animal name get test: ' .. AnimalName ..'</br>'
WikiText = WikiText .. '<div class="row gy-4 gx-5"><div class="col-md-6">'
local GalleryImagesList = AnimalName .. "_Animal.jpg|" .. AnimalName .."\n" .. AnimalName .. "_Animal.jpg"
WikiText = WikiText .. frame:callParserFunction{ name = '#tag:gallery', args = { mode = 'slideshow', widths = '100%', ''.. GalleryImagesList .. '' , showthumbnails = 'true'} }
WikiText = WikiText .. '</div>'
WikiText = WikiText ..'<div class="col-md-6"><div class="card border-primary"><div class="card-body">'
WikiText = WikiText ..'<h2 class="card-title fs-40">' .. IconUtils.main{name = Animal.Name[Lang], id = Animal.ID , size = 48, style = 1} .. ' ' .. Animal.Name[Lang] .. '</h2>'
WikiText = WikiText ..'<p class="col-lg-10 card-text">' .. Animal.Description[Lang] .. '</p>'
WikiText = WikiText .. '<table class="table table-striped table-bordered w-80"><tr class="thead-dark">';
WikiText = WikiText .. '<th>' .. Utils.Translate("Name") .. '</th><th>' .. Utils.Translate("Value") .. '</th>'
WikiText = WikiText .. '</table>'
WikiText = WikiText ..'</div></div></div></div>'
return WikiText
end
return p