Bearbeiten von „Modul:Infobox Item

Aus Eco - Deutsches Wiki
Wechseln zu:Navigation, Suche
Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
-- Credit: Original Infobox (now known as Infobox_Item) created by Pradoxzon was then edited by Nesphit and TreeNuts0. Fyre (FishAus) and Scotty (ZeelNightwolf) further edited the Infobox_Item. They then duplicated and used as a base for Infobox_Skill, Infobox_Plant, and Infobox_Animal.
-- Credit: Die von Pradoxzon erstellte Original-Infobox (jetzt als Infobox_Item bekannt) wurde dann von Nesphit und TreeNuts0 bearbeitet. Fyre (FishAus) und Scotty (ZeelNightwolf) haben das Infobox_Item weiter bearbeitet. Sie wurden dann dupliziert und als Basis für Infobox_Skill, Infobox_Plant und Infobox_Animal verwendet.
local p = {}


local p = {}
-- Grabs args from the parent frame
local Utils = require('Module:Utils')
-- Trims and parses the args into a table, then returns the table
local L = require('Module:Localization')
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 Item Infobox
-- Build an Item Infobox
function itemBox(args, itemData)
function itemBox( args, itemData )
     -- check that all necessary arguments are passed correctly
     -- 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 itemTable = itemData.items[item]


    local item = args.name
if itemTable == nil then
    local itemTable = itemData.items[item]
return item .. 'Konnte nicht in Modul: ItemData gefunden werden.'
 
end
    if itemTable == nil then
        return item .. ' could not be found in Module:ItemData.'
    end


     local itemType = itemTable.type
     local itemType = itemTable.type
    local itemEN = string.sub(itemType, 1, -5)
local itemEN = string.sub (itemType, 1, -5)
    local itemimagename = string.gsub(itemEN, ' ', '')
local itemimagename = string.gsub(itemEN, ' ', '')
 
   
     -- string used to build the infobox
     -- string used to build the infobox
     local infobox = '{| class=\"infobox\"\n'
     local infobox = '{| class=\"infobox\"\n'
   
-- 'Name and Image' section
-- name of the item
infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. item .. '</big>\'\'\'\n'
   
-- the item's type (ItemData - group)
infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: '
if itemTable.group == 'Nahrung' then
infobox = infobox .. '#85D66B;\"\n| colspan=\"2\" | \'\'\'Nahrung\'\'\'\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
    infobox = infobox .. '|-\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 == 'Fertigkeitsbücher' then
infobox = infobox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
-- Items:Skill Book Icon Image
infobox = infobox .. '|-\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'


    -- 'Name and Image' section
elseif itemTable.group == 'Skilschriftrollen' then
    -- name of the item
infobox = infobox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
    infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. item .. '</big>\'\'\'\n'
-- Items:Skill Scrolls Icon Image
 
infobox = infobox .. '|-\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'
    -- the item's type (ItemData - group)
    infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: '
 
    local text_colour = '#78B1FF'
 
    if itemTable.group == L.t('Food') then
        text_colour = '#85D66B'
    elseif itemTable.group == L.t('Skill Books') or itemTable.group == L.t('Skill Scrolls') then
        text_colour = '#FFCF4D'
    elseif itemTable.group == L.t('Skill Scrolls') then
        text_colour = '#FFCF4D'
    end
 
    infobox = infobox .. text_colour .. ';\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
    local icon = Utils.build_icon(item)
    infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | '..icon .. '\n'
 
    -- 'Description' section header
    infobox = infobox .. sectionHeader('Description')
 
    if itemTable.description == nil or itemTable.description == '' then
        infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'' .. L.t('None') .. '\'\'\'\n'
    else
        infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. itemTable.description .. '\n'
    end
 
    --Crafting
    local craftingRecipes = mw.loadData("Module:CraftingRecipes")
 
    infobox = infobox .. generalSection(item, itemTable, craftingRecipes, args)
 
    infobox = infobox .. IDsSection(itemTable)
 
    -- Tags Header
    if itemTable.tagGroups ~= nil and itemTable.tagGroups ~= {} then
        infobox = infobox .. tagSection(itemTable, itemData)
    end
 
    -- 'Item' World Object header (if itemTable.group = Placeable or Blocks)
    if itemTable.group == L.t('Block Items') or itemTable.group == L.t('World Object Items') then
        infobox = infobox .. placementSection(itemTable, itemimagename)
 
        -- Object Form Image
        if itemTable.group == L.t('Block Items') then
            infobox = infobox .. objectFormSection(itemTable, itemimagename)
        end


        -- 'Housing' section (if there is a Room Category)
else
        if itemTable.roomCategory ~= nil then
infobox = infobox .. '#78B1FF;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
            infobox = infobox .. housingSection(itemTable)
-- Items: Other Icon Image
        end
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
        -- 'Storage' Section (if inventorySlots is not nil)
image = itemimagename .. '_Icon.png'
        if itemTable.inventorySlots ~= nil then
elseif mw.title.makeTitle('File', itemimagename .. '_Icon.jpg').file.exists then
            infobox = infobox .. storageSection(itemTable)
image = itemimagename .. '_Icon.jpg'
        end
end
 
    infobox = infobox .. '|-\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'
        -- 'Power' section (if EngeryType is ``not nil)
end
        if itemTable.energyType ~= nil then
   
            infobox = infobox .. powerSection(itemTable)
  -- 'Description' section header
 
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Beschreibung\'\'\'\n'
        end
 
if itemTable.description == nil then
        -- 'Fuel' Section (if fuelsUsed by Object)
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'None\'\'\'\n'
        if itemTable.fuelsUsed ~= nil then
elseif itemTable.description == '' then
            infobox = infobox .. fuelsSection(itemTable)
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'None\'\'\'\n'
        end
else
 
infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. itemTable.description .. '\n'
        -- 'Fluid' section (if fludisUsed is not nil)
end
        if itemTable.fluidsUsed ~= nil or itemTable.fluidsProduced ~= nil then
            infobox = infobox .. fluidsSection(itemTable)
        end
    end
 
    -- Road Object header (if group == Road Items)
    if itemTable.group == L.t('Road Items') then
        infobox = infobox .. roadItemsSection(itemTable, itemimagename)
    end
    infobox = infobox .. '|}'
    return infobox
end
 
function sectionHeader(title, count)
    return "|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | '''" .. L.t(title, count) .. "'''\n"
end
 
function sectionRow(label, content, count, unit)
    if unit ~= nil then
        content = tonumber(content)
        unit = L.t(unit, content)
        local lang = mw.getContentLanguage()
        content = lang:formatNum(content)
    else
        unit = ''
    end
    return '|-\n| ' .. L.t(label, count) .. ':\n| style=\"text-align: right; padding: 3px;\" | ' .. content .. unit .. '\n'
end
 
function sectionImage(imageName, suffix)
    local image = checkImage(imageName, suffix)
    return '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
end
 
local function addToSet(set, key)
    set[key] = true
end
 
local function setNotContains(set, key)
    return set[key] == nil
end
 
local function craftingSubSection(title, item, productsOrIngredients, recipes)
    local stations = {}
    local sortStations = {}
    local stationString = ''
    for _, recipeName in ipairs(productsOrIngredients[item]) do
        local currentRecipe = recipes[recipeName]
        if currentRecipe ~= nil then
            if currentRecipe.variants[recipeName] ~= nil then
                local currentStation = currentRecipe.craftStn[1][1]
                if setNotContains(stations, currentStation) then
                    addToSet(stations, currentStation)
                end
            end
        end
    end
 
    if stations then
        for a, _ in pairs(stations) do
            table.insert(sortStations, a)
        end
        table.sort(sortStations)
        for i, n in ipairs(sortStations) do
            stationString = stationString .. ' [[' .. n .. ']]'
            if (n ~= sortStations[#sortStations]) then
                -- add a comma
                stationString = stationString .. ', '
            end
        end
        return sectionRow(title, stationString)
    else
        return sectionRow(title, L.t('N/A'))
    end
end
 
function generalSection(item, itemTable, craftingRecipes, args)
     -- 'General' section header
     -- 'General' section header
    section = sectionHeader('General')
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'General\'\'\'\n'
 
   
    -- Is a product at these tables
-- -- created at
    if craftingRecipes.products[item] ~= nil and Utils.tableLen(craftingRecipes.products[item]) >= 1 then
-- local craftingRecipes = require( "Modul:CraftingRecipes" )
        section = section .. craftingSubSection('Created at', item, craftingRecipes.products, craftingRecipes.recipes)
-- local recipes = craftingRecipes.recipes
    end
 
-- local function addToSet(set, key)
    -- Is an ingredient at these tables
-- set[key] = true
    if craftingRecipes.ingredients[item] ~= nil and Utils.tableLen(craftingRecipes.ingredients[item]) >= 1 then
-- end
        section = section .. craftingSubSection('Used at', item, craftingRecipes.ingredients, craftingRecipes.recipes)
    end
-- local function setNotContains(set, key)
 
-- return set[key] == nil
    -- calories and nutrients (if itemTable.group == 'Food')
-- end
    if itemTable.group == L.t('Food') then
        section = section .. sectionRow('Calorie', itemTable.calories, tonumber(itemTable.calories), 'cal')
-- if craftingRecipes.items[item] ~= nil and #craftingRecipes.items[item] >= 1 then
        section = section .. '|- valign=\"center\"\n| rowspan=\"4\" | ' .. L.t('Nutrients') .. ':\n'
-- local count = 0
        section = section .. '| style=\"color: red; text-align: right; padding: 3px;\" | ' .. L.t('Carbs') .. ': ' .. itemTable.carbs .. '\n'
-- local stations = {}
        section = section .. '|- valign=\"center\"\n| style=\"color: orange; text-align: right; padding: 3px;\" | ' .. L.t('Protein') .. ': ' .. itemTable.protein .. '\n'
-- local sortStations = {}
        section = section .. '|- valign=\"center\"\n| style=\"color: yellow; text-align: right; padding: 3px;\" | ' .. L.t('Fat') .. ': ' .. itemTable.fat .. '\n'
-- local stationString = ''
        section = section .. '|- valign=\"center\"\n| style=\"color: limegreen; text-align: right; padding: 3px;\" | ' .. L.t('Vitamins') .. ': ' .. itemTable.vitamins .. '\n'
-- local found = false
        section = section .. sectionRow('Nutrition Density', L.t('%s per 100 cals'):format(itemTable.density))
-- for k, v in ipairs( craftingRecipes.items[item] ) do
    end
-- for num = 1, #recipes[v].numberOfVariants do
 
-- if (recipes[v].variants[v] ~= nil and recipes[v].numberOfVariants <= tostring(1)) then
    -- carried
-- if setNotContains(stations, recipes[v].craftStn[1]) then
    local carried
-- addToSet(stations, recipes[v].craftStn[1])
    if args.carried ~= nil and args.carried ~= '' then
-- count = count + 1
        carried = args.carried
-- end
    else
-- if found == false then
        carried = itemTable.carried
-- found = true
    end
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" |'
    section = section .. sectionRow('Carried in', carried)
-- end
 
-- end
    -- weight
-- end
    local weight
-- end
    if itemTable.weight ~= nil then
        weight = itemTable.weight
-- local track = 0
    else
-- if found == true then
        weight = '0.0'
-- for a, b in pairs(stations) do
    end
-- table.insert(sortStations, a)
    section = section .. sectionRow('Weight', weight, nil, 'kg')
-- end
 
-- table.sort(sortStations)
    -- stack limit
-- for i, n in ipairs(sortStations) do
    if itemTable.maxStack ~= nil then
-- stationString = stationString .. ' [[' .. n .. ']]'
        section = section .. sectionRow('Stack limit', itemTable.maxStack)
-- track = track + 1
    end
-- if track ~= count then -- Changed these line to produce comma if not last table.
 
-- stationString = stationString .. ','
    -- yield
-- end
    if itemTable.yield ~= nil then
-- end
        section = section .. sectionRow('Improve Gathering', itemTable.yield)
-- infobox = infobox .. stationString .. '\n'
    end
-- else
 
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" | N/A\n'
    -- fuel
-- end
    if itemTable.fuel ~= nil then
-- elseif args.created ~= nil and args.created ~= '' then
        section = section .. sectionRow('Fuel energy', itemTable.fuel, nil, 'J')
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" | ' .. args.created .. '\n'
    end
-- else
 
-- infobox = infobox .. '|-\n| Created at:\n| style=\"text-align: right; padding: 3px;\" | N/A\n'
    -- currency
-- end
    if itemTable.currency ~= nil then
        section = section .. "|- style=\"text-align: center;\"\n| colspan=\"2\" | " .. L.t('Can back a currency') .. "\n"
    end
    return section
end


function IDsSection(itemTable)
-- calories and nutrients (if itemTable.group == 'Food')
if itemTable.group == 'Nahrung' then
infobox = infobox .. '|-\n| Kalorien:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.calories .. '\n|- valign=\"center\"\n| rowspan=\"4\" | Nutrients:\n'
infobox = infobox .. '| style=\"color: red; text-align: right; padding: 3px;\" | Kohlenhydrate: ' .. itemTable.carbs .. '\n'
infobox = infobox .. '|- valign=\"center\"\n| style=\"color: orange; text-align: right; padding: 3px;\" | Protein: ' .. itemTable.protein .. '\n'
infobox = infobox .. '|- valign=\"center\"\n| style=\"color: yellow; text-align: right; padding: 3px;\" | Fett: ' .. itemTable.fat .. '\n'
infobox = infobox .. '|- valign=\"center\"\n| style=\"color: limegreen; text-align: right; padding: 3px;\" | Vitamine: ' .. itemTable.vitamins .. '\n'
infobox = infobox .. '|-\n| Nährstoffdichte:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.density .. ' per 100 cals\n'
end
-- carried
if args.carried ~= nil and args.carried ~= '' then
infobox = infobox .. '|-\n| Getragen :\n| style=\"text-align: right; padding: 3px;\" | ' .. args.carried .. '\n'
else
infobox = infobox .. '|-\n| Getragen: \n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.carried .. '\n'
end
   
-- weight
if itemTable.weight ~= nil then
infobox = infobox .. '|-\n| Gewicht:\n| style="text-align: right; padding: 3px;" | ' .. itemTable.weight .. ' kg\n'
else
infobox = infobox .. '|-\n| Gewicht:\n| style="text-align: right; padding: 3px;" | 0.00kg\n'
end
   
-- stack limit
if itemTable.maxStack ~= nil then
infobox = infobox .. '|-\n| Stapellimit:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.maxStack .. '\n'
end
-- yield
if itemTable.yield ~= nil then
infobox = infobox .. '|-\n| Ertrag verbessern: \n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.yield .. '\n'
end
-- fuel
if itemTable.fuel ~= nil then
infobox = infobox .. '|-\n| Kraftstoff:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.fuel .. ' J\n'
end
   
-- currency
if itemTable.currency ~= nil then
infobox = infobox .. '|-\n| Wird als Währung verwendet:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.currency .. '\n'
end
     -- 'IDs' section header
     -- 'IDs' section header
     section = sectionHeader('ID', 2)
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'IDs\'\'\'\n'
      
-- item id (type)
infobox = infobox .. '|- valign=\"center\"\n| Artikel-ID\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.type .. '\n'
   
-- id number (type id)
infobox = infobox .. '|- valign=\"center\"\n| ID-Nummer:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.typeID .. '\n'


    -- item id (type)
-- Tags Header
    section = section .. sectionRow('Item ID', itemTable.type)
if itemTable.tagGroups ~= nil and itemTable.tagGroups ~= {} then
 
            -- Tags Header
    -- id number (type id)
            infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Tags\'\'\'\n'
    section = section .. sectionRow('ID Number', itemTable.typeID)
            local tags = itemTable.tagGroups
 
            local list = ''
    return section
            -- for each item in the list (a is position, b is value)          
end
            for a,b in ipairs(tags) do
 
            --if not these tags listed here
function tagSection(itemTable, itemData)
                if (b ~='[[Object]]' or b ~= '[[World  Object]]' or b ~= '[[Housing  Object]]') then
    -- Tags Header
                    -- add the tag to the list
    local tags = itemTable.tagGroups
                    list = list .. b
    section = sectionHeader('Tag', Utils.tableLen(tags))
                end
    local list = ''
                -- if not the last item in the list
    -- for each item in the list (a is position, b is value)
                if (b ~= tags[#tags]) then
    for a, b in ipairs(tags) do
                    -- add a comma
        --if not these tags listed here
                    list = list .. ', '
        if (b ~= L.t('Object') or b ~= L.t('World  Object') or b ~= L.t('Housing  Object')) then
                 end
            -- add the tag to the list
            -- HACK: Some tag localisations have spaces in the tag name, but not in the tag data
            local tagLink
            -- Some tags have multiple spaces? Possible data quality issue
            bClean = b:gsub("%s+", " ")
            if itemData.tags[bClean] ~= nil then
                tagLink = L.t('%s Tag'):format(bClean)
            else
                 tagLink = L.t('%s Tag'):format(bClean:gsub(' ', ''))
             end
             end
 
            -- Now the list is made add it to the infobox
             list = list .. '[[' .. tagLink .. '|' .. bClean .. ']][[Category:' .. bClean .. ']]'
             infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. list .. '\n'
         end
         end
        -- if not the last item in the list
        if (b ~= tags[#tags]) then
            -- add a comma
            list = list .. ', '
        end
    end
    -- Now the list is made add it to the infobox
    section = section .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. list .. '\n'


     return section
     -- 'Item' World Object header (if itemTable.group = Placeable or Blocks)
end
if itemTable.group == 'Block Items' or itemTable.group == 'World Object Items' then
 
infobox = infobox .. '|- style=\"text-align: center; background-color: #517ab2;\"\n| colspan=\"2\" | \'\'\'World Object\'\'\'\n'
function placementSection(itemTable, itemImageName)
    section = sectionHeader('World Object')
-- 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]]'
    section = section .. sectionImage(itemImageName, 'Placed')
if mw.title.makeTitle('File', itemimagename .. '_Placed.png').file.exists then
 
image = itemimagename .. '_Placed.png'
    -- 'Placement' section
elseif mw.title.makeTitle('File', itemimagename .. '_Placed.jpg').file.exists then
    --Placement Header
image = itemimagename .. '_Placed.jpg'
    section = section .. sectionHeader('Placement')
end
 
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
    --Vechile
 
    if itemTable.mobile ~= nil then
-- 'Placement' section
        section = section .. sectionRow('Vehicle/Mobile Object', itemTable.mobile)
--Placement Header
    end
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Platzierung\'\'\'\n'


    --Dimensions
--Vechile
    if itemTable.footprint ~= nil then
if itemTable.mobile ~= nil then
        section = section .. sectionRow('Dimensions (X,Y,Z)', itemTable.footprint)
infobox = infobox .. '|-\n| Fahrzeug / mobiles Objekt:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.mobile .. '\n'
    end
end
 
    --Material Tier
--Dimensions  
    if itemTable.materialTier ~= nil or itemTable.materialTier == 0 then
if itemTable.footprint ~= nil then
        section = section .. sectionRow('Room Material', itemTable.materialTier) .. '[[Category:Tier ' .. itemTable.materialTier .. ']]\n'
infobox = infobox .. '|-\n| Maße (X,Y,Z):\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.footprint .. '\n'
    end
end
--Material Tier
if itemTable.materialTier ~= nil or itemTable.materialTier == 0 then
infobox = infobox .. '|-\n| Raummaterial:\n| style=\"text-align: right; padding: 3px;\" | Tier ' .. itemTable.materialTier .. '\n'
end
--Room Req.
if itemTable.roomContainReq ~= nil then
infobox = infobox .. '|-\n| Zimmer erforderlich:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomContainReq .. '\n'
end
--Room Size. Req.
if itemTable.roomSizeReq ~= nil then
infobox = infobox .. '|-\n| Raumgröße:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomSizeReq .. ' m³\n'
end
--Room Mat. Req.
if itemTable.roomMatReq ~= nil then
infobox = infobox .. '|-\n| Raummaterialien:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomMatReq .. '\n'
end
-- Object Form Image
if itemTable.group == 'Block Items' then
local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. itemimagename .. '_Form.png|[[Category:Pages_with_missing_form]]'
if mw.title.makeTitle('File', itemimagename .. '_Form.png').file.exists then
image = itemimagename .. '_Form.png'
elseif mw.title.makeTitle('File', itemimagename .. '_Form.jpg').file.exists then
image = itemimagename .. '_Form.jpg'
end
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
end


    --Room Req.
-- 'Housing' section (if there is a Room Category)
    if itemTable.roomContainReq ~= nil then
if itemTable.roomCategory ~= nil then
        section = section .. sectionRow('Room Required', itemTable.roomContainReq)
-- Housing Header
    end
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Gehäuse\'\'\'\n'
   
--roomCategory
infobox = infobox .. '|-\n| Zimmerkategorie:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.roomCategory .. '\n'


    --Room Size. Req.
if itemTable.roomCategory ~= 'Industrial' then
    if itemTable.roomSizeReq ~= nil then
if itemTable.furnitureType ~= nil then
        section = section .. sectionRow('Room Size', itemTable.roomSizeReq, nil, '')
--furnitureType
    end
infobox = infobox .. '|-\n| Möbeltyp:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.furnitureType .. '\n'
           
--Value of the object
infobox = infobox .. '|-\n| Wert:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.skillValue .. '\n'
           
--Dim. Return % of Object 
infobox = infobox .. '|-\n| Abnehmender Ertrag %:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.repeatsDepreciation .. '\n'   
end
end
if itemTable.roomCategory == 'Industrial' then
infobox = infobox .. '|- style=\"background-color: red; text-align: center;\"\n| colspan=\"2\" | \'\'\'Alle Zimmerwert verloren\'\'\'\n'
end
end
-- 'Storage' Section (if inventorySlots is not nil)
if itemTable.inventorySlots ~= nil then
-- Storage Header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Speicherung\'\'\'\n'


    --Room Mat. Req.
--Inventory Slots
    if itemTable.roomMatReq ~= nil then
infobox = infobox .. '|-\n| Inventarplätze:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.inventorySlots .. '\n'
        section = section .. sectionRow('Room Materials', itemTable.roomMatReq)
    end
--inventoryMaxWeight
    return section
if itemTable.inventoryMaxWeight ~= nil then
end
maxWeightKg = itemTable.inventoryMaxWeight/1000
infobox = infobox .. '|-\n| Inventar Max. Gewicht:\n| style=\"text-align: right; padding: 3px;\" | ' .. maxWeightKg .. ' Kg\n'
else
infobox = infobox .. '|-\n| Inventar Max. Gewicht:\n| style=\"text-align: right; padding: 3px;\" |Unbegrenzt \n'
end
end


function objectFormSection(itemTable, itemImageName)
-- 'Power' section (if EngeryType is ``not nil)
    return sectionImage(itemImageName, 'Form')
if itemTable.energyType ~= nil then 
end
-- Power Header
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Leistung\'\'\'\n'


function housingSection(itemTable)
--EngergyType
    -- Housing Header
infobox = infobox .. '|-\n| Energietyp:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.energyType .. '\n'
    section = sectionHeader('Housing')
--Grid Radius
infobox = infobox .. '|-\n| Gitterradius:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.gridRadius .. ' m\n'
--Energy Produced
infobox = infobox .. '|-\n|Energie produziert:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.energyProduced .. ' J\n'
--Energy Used
infobox = infobox .. '|-\n| Energieverbrauch:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.energyUsed .. ' J\n'
end


    --roomCategory
-- 'Fuel' Section (if fuelsUsed by Object)
    section = section .. sectionRow('Room Category', itemTable.roomCategory) .. '[[Category:' .. itemTable.roomCategory .. ']]\n'
if itemTable.fuelsUsed ~= nil then
 
-- Fuel Header
    if itemTable.roomCategory ~= L.t('Industrial') then
infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Kraftstoffe\'\'\'\n'
        if itemTable.furnitureType ~= nil then
            --furnitureType
--Fuels Used by Object
            section = section .. sectionRow('Furniture Type', itemTable.furnitureType) .. '[[Category:' .. itemTable.furnitureType .. ']]\n'
infobox = infobox .. '|-\n| Verwendete Kraftstoffe:\n| style=\"text-align: right; padding: 3px;\" | ' .. itemTable.fuelsUsed .. '\n'
 
end
            --Value of the object
            section = section .. sectionRow('Value', itemTable.skillValue)
-- 'Fluid' section (if fludisUsed is not nil)  
 
            if itemTable.fluidsUsed ~= nil then
            --Dim. Return % of Object
            -- Liquid/Gas Header
            section = section .. sectionRow('Dim. Return %', itemTable.repeatsDepreciation * 100, nil, '%')
                infobox = infobox .. '|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | \'\'\'Flüssigkeit / Gas\'\'\'\n'
        end
           
    end
                --Input (fludisUsed)  
 
                infobox = infobox .. '|-\n|Eingang: \n| style=\"text-align: right; padding: 3px;\" | '  
    if itemTable.roomCategory == L.t('Industrial') then
                    for a,b in ipairs(itemTable.fluidsUsed) do
        section = section .. "|- style=\"background-color: #red; text-align: center;\"\n| colspan=\"2\" | '''" .. L.t('ALL ROOM VALUE LOST') .. "'''\n"
                        local acceptedType = b[1]
    end
                        local cRateString = string.gsub(b[2], "%s+", "")
 
                        local consumingRate = tonumber(cRateString)
    return section
                        infobox = infobox .. acceptedType .. ' at ' .. consumingRate .. ' L'
end
                        if (a ~= #itemTable.fluidsUsed) then
 
                            infobox = infobox .. ', '
function storageSection(itemTable)
                        end
    -- Storage Header
                    end
    section = sectionHeader('Storage')
                infobox = infobox .. '\n'
 
    --Inventory Slots
--Output (liquidProduced)
    section = section .. sectionRow('Inventory Slots', itemTable.inventorySlots)
infobox = infobox .. '|-\n| Ausgabe: \n| style=\"text-align: right; padding: 3px;\" | '  
 
for a,b in ipairs(itemTable.fluidsProduced) do
    --inventoryMaxWeight
local producedType = b[1]
    if itemTable.inventoryMaxWeight ~= nil then
                        local pRateString = string.gsub(b[2], "%s+", "")
        maxWeightKg = itemTable.inventoryMaxWeight / 1000
                        local producingRate = tonumber(pRateString)
        section = section .. sectionRow('Inventory Max Weight', maxWeightKg, nil, 'kg')
if (producingRate == 0) then
    else
producingRate = 'Rate of Input'
        section = section .. sectionRow('Inventory Max Weight', L.t('Unlimited'))
end
    end
infobox = infobox .. producedType .. ' at ' .. producingRate .. ' L'
 
if (a ~= #itemTable.fluidsProduced) then
    return section
infobox = infobox .. ', '
end
end
 
end
function powerSection(itemTable)
infobox = infobox .. '\n'
    -- Power Header
end
    section = sectionHeader('Power')
end
 
    --EngergyType
-- Road Object header (if group == Road Items)
    section = section .. sectionRow('Energy Type', itemTable.energyType) .. '[[Category:' .. itemTable.energyType .. ']]\n'
if itemTable.group == 'Road Items' then
 
infobox = infobox .. '|- style=\"text-align: center; background-color: #517ab2;\"\n| colspan=\"2\" | \'\'\'Road Object\'\'\'\n'
    --Grid Radius
    section = section .. sectionRow('Grid Radius', itemTable.gridRadius, nil, 'm')
-- 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]]'
    --Energy Produced
if mw.title.makeTitle('File', itemimagename .. '_Placed.png').file.exists then
    section = section .. sectionRow('Energy Produced', itemTable.energyProduced, nil, 'w')
image = itemimagename .. '_Placed.png'
 
elseif mw.title.makeTitle('File', itemimagename .. '_Placed.jpg').file.exists then
    --Energy Used
image = itemimagename .. '_Placed.jpg'
    section = section .. sectionRow('Energy Used', itemTable.energyUsed, nil, 'w')
end
 
infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
    return section
end
end
 
infobox = infobox .. '|}'
function fuelsSection(itemTable)
return infobox
    -- Fuel Header
end
    section = sectionHeader('Fuel')
 
    --Fuels Used by Object
    section = section .. sectionRow('Fuels Used', '[[' .. L.t('%s Tag'):format(itemTable.fuelsUsed:gsub('[%[%]]+', '')) .. ']]')
 
    return section
end
 
function fluidsSection(itemTable)
    -- Liquid/Gas Header
    section = sectionHeader('Liquid/Gas')
 
    --Input (fludisUsed)
    if itemTable.fluidsUsed ~= nil then
        local list = ''
        for a, b in ipairs(itemTable.fluidsUsed) do
            local acceptedType = b[1]
            local cRateString = string.gsub(b[2], "%s+", "")
            local consumingRate = tonumber(cRateString)
            list = list .. L.t('%s at %sL'):format(acceptedType, consumingRate)
 
            if (a ~= #itemTable.fluidsUsed) then
                list = list .. ', '
            end
        end
        section = section .. sectionRow('Input', list)
    end
 
    --Output (liquidProduced)
    if itemTable.fluidsProduced ~= nil then
        local list = ''
        for a, b in ipairs(itemTable.fluidsProduced) do
            local producedType = b[1]
            local pRateString = string.gsub(b[2], "%s+", "")
            local producingRate = tonumber(pRateString)
            if (producingRate == 0) then
                producingRate = 'Rate of Input'
            end
            list = list .. L.t('%s at %sL'):format(producedType, producingRate)
            if (a ~= #itemTable.fluidsProduced) then
                list = list .. ', '
            end
        end
        section = section .. sectionRow('Output', list)
    end
 
    return section
end
 
function roadItemsSection(itemTable, itemImageName)
    section = sectionHeader('Road Object')
 
    -- Object Placed Image
    section = section .. sectionImage(itemImageName, 'Placed')
    return section
end
 
function checkImage(imageName, suffix)
    local image = 'NoImage.png|link=https://wiki.play.eco/index.php?title=Special:Upload&wpDestFile=' .. imageName .. '_' .. suffix .. '.png|[[Category:Pages_with_missing_' .. suffix:lower() .. ']]'
    if mw.title.makeTitle('File', imageName .. '_' .. suffix .. '.png').file.exists then
        image = imageName .. '_' .. suffix .. '.png'
    elseif mw.title.makeTitle('File', imageName .. '_' .. suffix .. '.jpg').file.exists then
        image = imageName .. '_' .. suffix .. '.jpg'
    end
    return image
end


-- Main entry point for the Module
-- Main entry point for the Module
function p.ItemMain(frame)
function p.ItemMain()
     -- get args from the Template
     -- get args from the Template
     local args = Utils.normaliseArgs(frame)
     local args = norm()
 
   
     -- get item data
     -- get item data
     local itemData = mw.loadData("Module:ItemData")
     local itemData = require( "Module:ItemData" )
     return itemBox(args, itemData)
     return itemBox( args, itemData )
end
end


return p
return p
Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Eco - Deutsches Wiki-Beiträge automatisch unter der „CC BY-NC-SA 4.0“ stehen (siehe Eco:Urheberrechte für Einzelheiten). Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Um das Wiki vor automatisiertem Bearbeitungsspam zu schützen, bitten wir dich, das folgende hCaptcha zu lösen:

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Die folgende Vorlage wird auf dieser Seite verwendet: