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 6: Zeile 6:


-- 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 .. ' could not be found in Module:ItemData.'
  end


    if itemTable == nil then
  local itemType = itemTable.type
        return item .. ' could not be found in Module:ItemData.'
  local itemEN = string.sub (itemType, 1, -5)
    end
  local itemimagename = string.gsub(itemEN, ' ', '')


    local itemType = itemTable.type
  -- string used to build the infobox
    local itemEN = string.sub(itemType, 1, -5)
  local infobox = '{| class=\"infobox\"\n'
    local itemimagename = string.gsub(itemEN, ' ', '')


    -- string used to build the infobox
  -- 'Name and Image' section
    local infobox = '{| class=\"infobox\"\n'
  -- name of the item
  infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. item .. '</big>\'\'\'\n'


    -- 'Name and Image' section
  -- the item's type (ItemData - group)
    -- name of the item
  infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: '
    infobox = infobox .. '|- style=\"color: white; background-color: #1165AF; text-align: center;\"\n| colspan=\"2\" | \'\'\'<big>' .. item .. '</big>\'\'\'\n'


    -- the item's type (ItemData - group)
  if itemTable.group == L.t('Food') then
     infobox = infobox .. '|- style=\"text-align: center; color: white; background-color: '
     infobox = infobox .. '#85D66B;\"\n| colspan=\"2\" | \'\'\'' .. L.t('Food') .. '\'\'\'\n'
    -- Items:Food Icon Image
    local image = checkImage(itemimagename, 'Icon')


     local text_colour = '#78B1FF'
     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'


    if itemTable.group == L.t('Food') then
  elseif itemTable.group == L.t('Skill Books') then
        text_colour = '#85D66B'
    infobox = infobox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
    elseif itemTable.group == L.t('Skill Books') or itemTable.group == L.t('Skill Scrolls') then
     -- Items:Skill Book Icon Image
        text_colour = '#FFCF4D'
    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'
     elseif itemTable.group == L.t('Skill Scrolls') then
        text_colour = '#FFCF4D'
    end


     infobox = infobox .. text_colour .. ';\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
  elseif itemTable.group == L.t('Skill Scrolls') then
     local icon = Utils.build_icon(item)
     infobox = infobox .. '#FFCF4D;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
     infobox = infobox .. '|-\n| colspan=\"2\" style=\"padding: 10px;\" | '..icon .. '\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'


     -- 'Description' section header
  else
     infobox = infobox .. sectionHeader('Description')
    infobox = infobox .. '#78B1FF;\"\n| colspan=\"2\" | \'\'\'' .. itemTable.group .. '\'\'\'\n'
     -- Items: Other Icon Image
    local image = checkImage(itemimagename, 'Icon')
     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'
  end


    if itemTable.description == nil or itemTable.description == '' then
  -- 'Description' section header
        infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | \'\'\'' .. L.t('None') .. '\'\'\'\n'
  infobox = infobox .. sectionHeader('Description')
    else
        infobox = infobox .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. itemTable.description .. '\n'
    end


     --Crafting
  if itemTable.description == nil or itemTable.description == '' then
     local craftingRecipes = mw.loadData("Module:CraftingRecipes")
     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


    infobox = infobox .. generalSection(item, itemTable, craftingRecipes, args)
  --Crafting
  local craftingRecipes = mw.loadData( "Module:CraftingRecipes" )


    infobox = infobox .. IDsSection(itemTable)
  infobox = infobox .. generalSection(item, itemTable, craftingRecipes, args)


    -- Tags Header
  infobox = infobox .. IDsSection(itemTable)
    if itemTable.tagGroups ~= nil and itemTable.tagGroups ~= {} then
        infobox = infobox .. tagSection(itemTable, itemData)
    end


    -- 'Item' World Object header (if itemTable.group = Placeable or Blocks)
  -- Tags Header
    if itemTable.group == L.t('Block Items') or itemTable.group == L.t('World Object Items') then
  if itemTable.tagGroups ~= nil and itemTable.tagGroups ~= {} then
        infobox = infobox .. placementSection(itemTable, itemimagename)
    infobox = infobox .. tagSection(itemTable, itemData)
  end


        -- Object Form Image
  -- 'Item' World Object header (if itemTable.group = Placeable or Blocks)
        if itemTable.group == L.t('Block Items') then
  if itemTable.group == L.t('Block Items') or itemTable.group == L.t('World Object Items') then
            infobox = infobox .. objectFormSection(itemTable, itemimagename)
    infobox = infobox .. placementSection(itemTable, itemimagename)
        end


        -- 'Housing' section (if there is a Room Category)
    -- Object Form Image
        if itemTable.roomCategory ~= nil then
    if itemTable.group == L.t('Block Items') then
            infobox = infobox .. housingSection(itemTable)
      infobox = infobox .. objectFormSection(itemTable, itemimagename)
        end
    end


        -- 'Storage' Section (if inventorySlots is not nil)
    -- 'Housing' section (if there is a Room Category)
        if itemTable.inventorySlots ~= nil then
    if itemTable.roomCategory ~= nil then
            infobox = infobox .. storageSection(itemTable)
      infobox = infobox .. housingSection(itemTable)
        end
    end


        -- 'Power' section (if EngeryType is ``not nil)
    -- 'Storage' Section (if inventorySlots is not nil)
        if itemTable.energyType ~= nil then
    if itemTable.inventorySlots ~= nil then
            infobox = infobox .. powerSection(itemTable)
      infobox = infobox .. storageSection(itemTable)
    end


        end
    -- 'Power' section (if EngeryType is ``not nil)
    if itemTable.energyType ~= nil then 
      infobox = infobox .. powerSection(itemTable)


        -- 'Fuel' Section (if fuelsUsed by Object)
    end
        if itemTable.fuelsUsed ~= nil then
            infobox = infobox .. fuelsSection(itemTable)
        end


        -- 'Fluid' section (if fludisUsed is not nil)
    -- 'Fuel' Section (if fuelsUsed by Object)
        if itemTable.fluidsUsed ~= nil or itemTable.fluidsProduced ~= nil then
    if itemTable.fuelsUsed ~= nil then
            infobox = infobox .. fluidsSection(itemTable)
      infobox = infobox .. fuelsSection(itemTable)
        end
     end
     end


     -- Road Object header (if group == Road Items)
     -- 'Fluid' section (if fludisUsed is not nil)  
     if itemTable.group == L.t('Road Items') then
     if itemTable.fluidsUsed ~= nil or itemTable.fluidsProduced ~= nil then  
        infobox = infobox .. roadItemsSection(itemTable, itemimagename)
      infobox = infobox .. fluidsSection(itemTable)
     end
     end
     infobox = infobox .. '|}'
  end
    return infobox
 
  -- 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
end


function sectionHeader(title, count)
function sectionHeader(title, count)
    return "|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | '''" .. L.t(title, count) .. "'''\n"
  return "|- style=\"background-color: #4688C0; text-align: center;\"\n| colspan=\"2\" | '''" .. L.t(title, count) .. "'''\n"
end
end


function sectionRow(label, content, count, unit)
function sectionRow(label, content, count, unit)
    if unit ~= nil then
  if unit ~= nil then
        content = tonumber(content)
    content = tonumber(content)
        unit = L.t(unit, content)
    unit = L.t(unit, content)
        local lang = mw.getContentLanguage()
    local lang = mw.getContentLanguage()
        content = lang:formatNum(content)
    content = lang:formatNum(content)
    else
  else
        unit = ''
    unit = ''
    end
  end
    return '|-\n| ' .. L.t(label, count) .. ':\n| style=\"text-align: right; padding: 3px;\" | ' .. content .. unit .. '\n'
  return '|-\n| ' .. L.t(label, count) .. ':\n| style=\"text-align: right; padding: 3px;\" | ' .. content .. unit .. '\n'
end
end


function sectionImage(imageName, suffix)
function sectionImage(imageName, suffix)
    local image = checkImage(imageName, suffix)
  local image = checkImage(imageName, suffix)
    return '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
  return '|-\n| colspan=\"2\" style=\"padding: 10px;\" | [[File:' .. image .. '|center|border|240px]]\n'
end
end


local function addToSet(set, key)
local function addToSet(set, key)
    set[key] = true
  set[key] = true
end
end


local function setNotContains(set, key)
local function setNotContains(set, key)
    return set[key] == nil
  return set[key] == nil
end
end


local function craftingSubSection(title, item, productsOrIngredients, recipes)
local function craftingSubSection(title, item, productsOrIngredients, recipes)
    local stations = {}
  local stations = {}
    local sortStations = {}
  local sortStations = {}
    local stationString = ''
  local stationString = ''
    for _, recipeName in ipairs(productsOrIngredients[item]) do
  for _, recipeName in ipairs( productsOrIngredients[item] ) do
        local currentRecipe = recipes[recipeName]
    local currentRecipe = recipes[recipeName]
        if currentRecipe ~= nil then
    if currentRecipe ~= nil then
            if currentRecipe.variants[recipeName] ~= nil then
      if currentRecipe.variants[recipeName] ~= nil then
                local currentStation = currentRecipe.craftStn[1][1]
        local currentStation = currentRecipe.craftStn[1][1]
                if setNotContains(stations, currentStation) then
        if setNotContains(stations, currentStation) then
                    addToSet(stations, currentStation)
          addToSet(stations, currentStation)
                end
        end
            end
      end
        end
     end
     end
  end


    if stations then
  if stations then
        for a, _ in pairs(stations) do
    for a, _ in pairs(stations) do
            table.insert(sortStations, a)
      table.insert(sortStations, a)
        end
    end
        table.sort(sortStations)
    table.sort(sortStations)
        for i, n in ipairs(sortStations) do
    for i, n in ipairs(sortStations) do
            stationString = stationString .. ' [[' .. n .. ']]'
      stationString = stationString .. ' [[' .. n .. ']]'
            if (n ~= sortStations[#sortStations]) then
      if (n ~= sortStations[#sortStations]) then
                -- add a comma
        -- add a comma
                stationString = stationString .. ', '
        stationString = stationString .. ', '
            end
      end
        end
        return sectionRow(title, stationString)
    else
        return sectionRow(title, L.t('N/A'))
     end
     end
    return sectionRow(title, stationString)
  else
    return sectionRow(title, L.t('N/A'))
  end
end
end


function generalSection(item, itemTable, craftingRecipes, args)
function generalSection(item, itemTable, craftingRecipes, args)
    -- 'General' section header
-- 'General' section header
    section = sectionHeader('General')
  section = sectionHeader('General')


    -- Is a product at these tables
  -- Is a product at these tables
    if craftingRecipes.products[item] ~= nil and Utils.tableLen(craftingRecipes.products[item]) >= 1 then
  if craftingRecipes.products[item] ~= nil and Utils.tableLen(craftingRecipes.products[item]) >= 1 then
        section = section .. craftingSubSection('Created at', item, craftingRecipes.products, craftingRecipes.recipes)
    section = section .. craftingSubSection('Created at', item, craftingRecipes.products, craftingRecipes.recipes)
    end
  end


    -- Is an ingredient at these tables
  -- Is an ingredient at these tables
    if craftingRecipes.ingredients[item] ~= nil and Utils.tableLen(craftingRecipes.ingredients[item]) >= 1 then
  if craftingRecipes.ingredients[item] ~= nil and Utils.tableLen(craftingRecipes.ingredients[item]) >= 1 then
        section = section .. craftingSubSection('Used at', item, craftingRecipes.ingredients, craftingRecipes.recipes)
    section = section .. craftingSubSection('Used at', item, craftingRecipes.ingredients, craftingRecipes.recipes)
    end
  end


    -- calories and nutrients (if itemTable.group == 'Food')
  -- calories and nutrients (if itemTable.group == 'Food')
    if itemTable.group == L.t('Food') then
  if itemTable.group == L.t('Food') then
        section = section .. sectionRow('Calorie', itemTable.calories, tonumber(itemTable.calories), 'cal')
    section = section .. sectionRow('Calorie', itemTable.calories, tonumber(itemTable.calories), 'cal')
        section = section .. '|- valign=\"center\"\n| rowspan=\"4\" | ' .. L.t('Nutrients') .. ':\n'
    section = section .. '|- valign=\"center\"\n| rowspan=\"4\" | '..L.t('Nutrients')..':\n'
        section = section .. '| style=\"color: red; text-align: right; padding: 3px;\" | ' .. L.t('Carbs') .. ': ' .. itemTable.carbs .. '\n'
    section = section .. '| style=\"color: red; text-align: right; padding: 3px;\" | '..L.t('Carbs')..': ' .. itemTable.carbs .. '\n'
        section = section .. '|- valign=\"center\"\n| style=\"color: orange; text-align: right; padding: 3px;\" | ' .. L.t('Protein') .. ': ' .. itemTable.protein .. '\n'
    section = section .. '|- valign=\"center\"\n| style=\"color: orange; text-align: right; padding: 3px;\" | '..L.t('Protein')..': ' .. itemTable.protein .. '\n'
        section = section .. '|- valign=\"center\"\n| style=\"color: yellow; text-align: right; padding: 3px;\" | ' .. L.t('Fat') .. ': ' .. itemTable.fat .. '\n'
    section = section .. '|- valign=\"center\"\n| style=\"color: yellow; text-align: right; padding: 3px;\" | '..L.t('Fat')..': ' .. itemTable.fat .. '\n'
        section = section .. '|- valign=\"center\"\n| style=\"color: limegreen; text-align: right; padding: 3px;\" | ' .. L.t('Vitamins') .. ': ' .. itemTable.vitamins .. '\n'
    section = section .. '|- valign=\"center\"\n| style=\"color: limegreen; text-align: right; padding: 3px;\" | '..L.t('Vitamins')..': ' .. itemTable.vitamins .. '\n'
        section = section .. sectionRow('Nutrition Density', L.t('%s per 100 cals'):format(itemTable.density))
    section = section .. sectionRow('Nutrition Density', L.t('%s per 100 cals'):format(itemTable.density))
    end
  end


    -- carried
  -- carried
    local carried
  local carried
    if args.carried ~= nil and args.carried ~= '' then
  if args.carried ~= nil and args.carried ~= '' then carried = args.carried else carried = itemTable.carried end
        carried = args.carried
  section = section .. sectionRow('Carried in', carried)
    else
        carried = itemTable.carried
    end
    section = section .. sectionRow('Carried in', carried)


    -- weight
  -- weight
    local weight
  local weight
    if itemTable.weight ~= nil then
  if itemTable.weight ~= nil then weight = itemTable.weight else weight = '0.0' end
        weight = itemTable.weight
  section = section .. sectionRow('Weight', weight, nil, 'kg')
    else
        weight = '0.0'
    end
    section = section .. sectionRow('Weight', weight, nil, 'kg')


    -- stack limit
  -- stack limit
    if itemTable.maxStack ~= nil then
  if itemTable.maxStack ~= nil then
        section = section .. sectionRow('Stack limit', itemTable.maxStack)
    section = section .. sectionRow('Stack limit', itemTable.maxStack)
    end
  end


    -- yield
  -- yield  
    if itemTable.yield ~= nil then
  if itemTable.yield ~= nil then
        section = section .. sectionRow('Improve Gathering', itemTable.yield)
    section = section .. sectionRow('Improve Gathering', itemTable.yield)
    end
  end


    -- fuel
  -- fuel
    if itemTable.fuel ~= nil then
  if itemTable.fuel ~= nil then
        section = section .. sectionRow('Fuel energy', itemTable.fuel, nil, 'J')
    section = section .. sectionRow('Fuel energy', itemTable.fuel, nil, 'J')
    end
  end


    -- currency
  -- currency
    if itemTable.currency ~= nil then
  if itemTable.currency ~= nil then
        section = section .. "|- style=\"text-align: center;\"\n| colspan=\"2\" | " .. L.t('Can back a currency') .. "\n"
    section = section .. "|- style=\"text-align: center;\"\n| colspan=\"2\" | " .. L.t('Can back a currency') .. "\n"
    end
  end
    return section
  return section
end
end


function IDsSection(itemTable)
function IDsSection(itemTable)
    -- 'IDs' section header
  -- 'IDs' section header
    section = sectionHeader('ID', 2)
  section = sectionHeader('ID', 2)


    -- item id (type)
  -- item id (type)
    section = section .. sectionRow('Item ID', itemTable.type)
  section = section .. sectionRow('Item ID', itemTable.type)


    -- id number (type id)
  -- id number (type id)
    section = section .. sectionRow('ID Number', itemTable.typeID)
  section = section .. sectionRow('ID Number', itemTable.typeID)


    return section
  return section
end
end


function tagSection(itemTable, itemData)
function tagSection(itemTable, itemData)
    -- Tags Header
  -- Tags Header
    local tags = itemTable.tagGroups
  local tags = itemTable.tagGroups
    section = sectionHeader('Tag', Utils.tableLen(tags))
  section = sectionHeader('Tag', Utils.tableLen(tags))
    local list = ''
  local list = ''
    -- for each item in the list (a is position, b is value)
  -- for each item in the list (a is position, b is value)          
    for a, b in ipairs(tags) do
  for a,b in ipairs(tags) do
        --if not these tags listed here
    --if not these tags listed here
        if (b ~= L.t('Object') or b ~= L.t('World  Object') or b ~= L.t('Housing  Object')) then
    if (b ~=L.t('Object') or b ~= L.t('World  Object') or b ~= L.t('Housing  Object')) then
            -- add the tag to the list
      -- add the tag to the list
            -- HACK: Some tag localisations have spaces in the tag name, but not in the tag data
      -- HACK: Some tag localisations have spaces in the tag name, but not in the tag data
            local tagLink
      local tagLink
            -- Some tags have multiple spaces? Possible data quality issue
      -- Some tags have multiple spaces? Possible data quality issue
            bClean = b:gsub("%s+", " ")
      bClean = b:gsub("%s+", " ")
            if itemData.tags[bClean] ~= nil then
      if itemData.tags[bClean] ~= nil then
                tagLink = L.t('%s Tag'):format(bClean)
        tagLink = L.t('%s Tag'):format(bClean)
            else
      else
                tagLink = L.t('%s Tag'):format(bClean:gsub(' ', ''))
        tagLink = L.t('%s Tag'):format(bClean:gsub(' ', ''))
            end
      end


            list = list .. '[[' .. tagLink .. '|' .. bClean .. ']][[Category:' .. bClean .. ']]'
      list = list .. '[[' .. tagLink ..'|' .. bClean ..']][[Category:' .. bClean .. ']]'
        end
        -- if not the last item in the list
        if (b ~= tags[#tags]) then
            -- add a comma
            list = list .. ', '
        end
     end
     end
     -- Now the list is made add it to the infobox
     -- if not the last item in the list
    section = section .. '|- style=\"text-align: center;\"\n| colspan=\"2\" | ' .. list .. '\n'
    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
  return section
end
end


function placementSection(itemTable, itemImageName)
function placementSection(itemTable, itemImageName)
    section = sectionHeader('World Object')
  section = sectionHeader('World Object')
    -- Object Placed Image
-- Object Placed Image
    section = section .. sectionImage(itemImageName, 'Placed')
  section = section .. sectionImage(itemImageName, 'Placed')


    -- 'Placement' section
  -- 'Placement' section
    --Placement Header
  --Placement Header
    section = section .. sectionHeader('Placement')
  section = section .. sectionHeader('Placement')


    --Vechile
  --Vechile
    if itemTable.mobile ~= nil then
  if itemTable.mobile ~= nil then
        section = section .. sectionRow('Vehicle/Mobile Object', itemTable.mobile)
    section = section .. sectionRow('Vehicle/Mobile Object', itemTable.mobile)
    end
  end


    --Dimensions
  --Dimensions  
    if itemTable.footprint ~= nil then
  if itemTable.footprint ~= nil then
        section = section .. sectionRow('Dimensions (X,Y,Z)', itemTable.footprint)
    section = section .. sectionRow('Dimensions (X,Y,Z)', itemTable.footprint)
    end
  end


    --Material Tier
  --Material Tier
    if itemTable.materialTier ~= nil or itemTable.materialTier == 0 then
  if itemTable.materialTier ~= nil or itemTable.materialTier == 0 then
        section = section .. sectionRow('Room Material', itemTable.materialTier) .. '[[Category:Tier ' .. itemTable.materialTier .. ']]\n'
    section = section .. sectionRow('Room Material', itemTable.materialTier) .. '[[Category:Tier '.. itemTable.materialTier ..']]\n'
    end
  end


    --Room Req.
  --Room Req.
    if itemTable.roomContainReq ~= nil then
  if itemTable.roomContainReq ~= nil then
        section = section .. sectionRow('Room Required', itemTable.roomContainReq)
    section = section .. sectionRow('Room Required', itemTable.roomContainReq)
    end
  end


    --Room Size. Req.
  --Room Size. Req.
    if itemTable.roomSizeReq ~= nil then
  if itemTable.roomSizeReq ~= nil then
        section = section .. sectionRow('Room Size', itemTable.roomSizeReq, nil, 'm³')
    section = section .. sectionRow('Room Size', itemTable.roomSizeReq, nil, 'm³')
    end
  end


    --Room Mat. Req.
  --Room Mat. Req.
    if itemTable.roomMatReq ~= nil then
  if itemTable.roomMatReq ~= nil then
        section = section .. sectionRow('Room Materials', itemTable.roomMatReq)
    section = section .. sectionRow('Room Materials', itemTable.roomMatReq)
    end
  end
    return section
  return section
end
end


function objectFormSection(itemTable, itemImageName)
function objectFormSection(itemTable, itemImageName)
    return sectionImage(itemImageName, 'Form')
  return sectionImage(itemImageName, 'Form')
end
end


function housingSection(itemTable)
function housingSection(itemTable)
    -- Housing Header
-- Housing Header
    section = sectionHeader('Housing')
  section = sectionHeader('Housing')


    --roomCategory
  --roomCategory
    section = section .. sectionRow('Room Category', itemTable.roomCategory) .. '[[Category:' .. itemTable.roomCategory .. ']]\n'
  section = section .. sectionRow('Room Category', itemTable.roomCategory) .. '[[Category:' .. itemTable.roomCategory .. ']]\n'


    if itemTable.roomCategory ~= L.t('Industrial') then
  if itemTable.roomCategory ~= L.t('Industrial') then
        if itemTable.furnitureType ~= nil then
    if itemTable.furnitureType ~= nil then  
            --furnitureType
      --furnitureType
            section = section .. sectionRow('Furniture Type', itemTable.furnitureType) .. '[[Category:' .. itemTable.furnitureType .. ']]\n'
      section = section .. sectionRow('Furniture Type', itemTable.furnitureType) .. '[[Category:' .. itemTable.furnitureType .. ']]\n'


            --Value of the object
      --Value of the object
            section = section .. sectionRow('Value', itemTable.skillValue)
      section = section .. sectionRow('Value', itemTable.skillValue)


            --Dim. Return % of Object
      --Dim. Return % of Object
            section = section .. sectionRow('Dim. Return %', itemTable.repeatsDepreciation * 100, nil, '%')
      section = section .. sectionRow('Dim. Return %', itemTable.repeatsDepreciation*100, nil, '%')
        end
     end
     end
  end


    if itemTable.roomCategory == L.t('Industrial') then
  if itemTable.roomCategory == L.t('Industrial') then
        section = section .. "|- style=\"background-color: #red; text-align: center;\"\n| colspan=\"2\" | '''" .. L.t('ALL ROOM VALUE LOST') .. "'''\n"
    section = section .. "|- style=\"background-color: #red; text-align: center;\"\n| colspan=\"2\" | '''" .. L.t('ALL ROOM VALUE LOST') .. "'''\n"
    end
  end


    return section
  return section
end
end


function storageSection(itemTable)
function storageSection(itemTable)
    -- Storage Header
  -- Storage Header
    section = sectionHeader('Storage')
  section = sectionHeader('Storage')


    --Inventory Slots
  --Inventory Slots
    section = section .. sectionRow('Inventory Slots', itemTable.inventorySlots)
  section = section .. sectionRow('Inventory Slots', itemTable.inventorySlots)


    --inventoryMaxWeight
  --inventoryMaxWeight
    if itemTable.inventoryMaxWeight ~= nil then
  if itemTable.inventoryMaxWeight ~= nil then
        maxWeightKg = itemTable.inventoryMaxWeight / 1000
    maxWeightKg = itemTable.inventoryMaxWeight/1000
        section = section .. sectionRow('Inventory Max Weight', maxWeightKg, nil, 'kg')
    section = section ..sectionRow('Inventory Max Weight', maxWeightKg, nil, 'kg')
    else
  else
        section = section .. sectionRow('Inventory Max Weight', L.t('Unlimited'))
    section = section .. sectionRow('Inventory Max Weight', L.t('Unlimited'))
    end
  end


    return section
  return section
end
end


function powerSection(itemTable)
function powerSection(itemTable)
    -- Power Header
  -- Power Header
    section = sectionHeader('Power')
  section = sectionHeader('Power')


    --EngergyType
  --EngergyType  
    section = section .. sectionRow('Energy Type', itemTable.energyType) .. '[[Category:' .. itemTable.energyType .. ']]\n'
  section = section .. sectionRow('Energy Type', itemTable.energyType) .. '[[Category:' .. itemTable.energyType .. ']]\n'


    --Grid Radius
  --Grid Radius
    section = section .. sectionRow('Grid Radius', itemTable.gridRadius, nil, 'm')
  section = section .. sectionRow('Grid Radius', itemTable.gridRadius, nil, 'm')


    --Energy Produced
  --Energy Produced
    section = section .. sectionRow('Energy Produced', itemTable.energyProduced, nil, 'w')
  section = section .. sectionRow('Energy Produced', itemTable.energyProduced, nil, 'w')


    --Energy Used
  --Energy Used
    section = section .. sectionRow('Energy Used', itemTable.energyUsed, nil, 'w')
  section = section .. sectionRow('Energy Used', itemTable.energyUsed, nil, 'w')


    return section
  return section
end
end


function fuelsSection(itemTable)
function fuelsSection(itemTable)
    -- Fuel Header
  -- Fuel Header
    section = sectionHeader('Fuel')
  section = sectionHeader('Fuel')


    --Fuels Used by Object
  --Fuels Used by Object
    section = section .. sectionRow('Fuels Used', '[[' .. L.t('%s Tag'):format(itemTable.fuelsUsed:gsub('[%[%]]+', '')) .. ']]')
  section = section .. sectionRow('Fuels Used', '[[' .. L.t('%s Tag'):format(itemTable.fuelsUsed:gsub('[%[%]]+', '')) .. ']]')


    return section
  return section
end
end


function fluidsSection(itemTable)
function fluidsSection(itemTable)
    -- Liquid/Gas Header
-- Liquid/Gas Header
    section = sectionHeader('Liquid/Gas')
  section = sectionHeader('Liquid/Gas')


    --Input (fludisUsed)
--Input (fludisUsed)  
    if itemTable.fluidsUsed ~= nil then
  if itemTable.fluidsUsed ~= nil then
        local list = ''
    local list = ''
        for a, b in ipairs(itemTable.fluidsUsed) do
    for a,b in ipairs(itemTable.fluidsUsed) do
            local acceptedType = b[1]
      local acceptedType = b[1]
            local cRateString = string.gsub(b[2], "%s+", "")
      local cRateString = string.gsub(b[2], "%s+", "")
            local consumingRate = tonumber(cRateString)
      local consumingRate = tonumber(cRateString)
            list = list .. L.t('%s at %sL'):format(acceptedType, consumingRate)
      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


            if (a ~= #itemTable.fluidsUsed) then
--Output (liquidProduced)
                list = list .. ', '
  if itemTable.fluidsProduced ~= nil then
            end
    local list = ''
         end
    for a,b in ipairs(itemTable.fluidsProduced) do
        section = section .. sectionRow('Input', list)
      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
     end
    section = section .. sectionRow('Output', 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
return section
end
end


function roadItemsSection(itemTable, itemImageName)
function roadItemsSection(itemTable, itemImageName)
    section = sectionHeader('Road Object')
  section = sectionHeader('Road Object')


    -- Object Placed Image
  -- Object Placed Image
    section = section .. sectionImage(itemImageName, 'Placed')
  section = section .. sectionImage(itemImageName, 'Placed')
    return section
  return section
end
end


function checkImage(imageName, suffix)
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() .. ']]'
  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
  if mw.title.makeTitle('File', imageName .. '_'..suffix..'.png').file.exists then
        image = imageName .. '_' .. suffix .. '.png'
    image = imageName .. '_'..suffix..'.png'
    elseif mw.title.makeTitle('File', imageName .. '_' .. suffix .. '.jpg').file.exists then
  elseif mw.title.makeTitle('File', imageName .. '_'..suffix..'.jpg').file.exists then
        image = imageName .. '_' .. suffix .. '.jpg'
    image = imageName .. '_'..suffix..'.jpg'
    end
  end
    return image
  return image
end
end


-- Main entry point for the Module
-- Main entry point for the Module
function p.ItemMain(frame)
function p.ItemMain(frame)
    -- get args from the Template
  -- get args from the Template
    local args = Utils.normaliseArgs(frame)
  local args = Utils.normaliseArgs(frame)


    -- get item data
  -- get item data
    local itemData = mw.loadData("Module:ItemData")
  local itemData = mw.loadData( "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: