Bearbeiten von „Modul:Utils

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 3: Zeile 3:
-- Trims and parses the args into a table, then returns the table
-- Trims and parses the args into a table, then returns the table
function p.normaliseArgs(frame)
function p.normaliseArgs(frame)
    local origArgs = frame:getParent().args
  local origArgs = frame:getParent().args
    local args = {}
  local args = {}
 
 
    for k, v in pairs(origArgs) do
  for k, v in pairs(origArgs) do
        v = mw.text.trim(tostring(v))
    v = mw.text.trim(tostring(v))
        if v ~= '' then
    if v ~= '' then
            args[k] = v
      args[k] = v
        end
     end
     end
 
  end
    return args
 
  return args
end
end


function p.checkImage(name, too_expensive)
function p.checkImage(name, too_expensive)
    local icon = name:gsub('%s+', '') .. '_Icon.png'
  local icon = name:gsub('%s+', '') .. '_Icon.png'
    if too_expensive then
  if too_expensive then
        return icon
     return icon
    end
  end
 
     if mw.title.makeTitle('File', icon).file.exists then
        return icon
    else
        return 'NoImage.png'
    end
end
 
local function in_array(item, array)
    -- Should only use on short arrays
    local set = {}
    for _, l in ipairs(array) do
        set[l] = true
    end
    return set[item] ~= nil
end
 
---@param name string
---@param size string|nil
---@param bg string|nil
---@param border string|nil
---@param too_expensive boolean|nil
function p.build_icon(name, link, size, bg, border, too_expensive)
    -- Size options are iconNormal or iconRecipe - 64px or 44px - defaults to iconNormal
 
    local L = require('Module:Localization') -- local import
 
    if not size then
        size = 'iconNormal'
    end
    local icon_bg
    if bg then
        icon_bg = bg
    end
    local icon_border
    if border then
        icon_border = border
    end
 
    local item_data = mw.loadData('Module:ItemData')
    local item = item_data.items[name]
    local image
    if item then
        if item['group'] == L.t('Skill Books') then
            image = 'SkillBook.png'
            icon_bg = 'iconGold'
        elseif item['group'] == L.t('Skill Scrolls') then
            image = 'Skill Scroll'
            icon_bg = 'iconGold'
            -- Attempt to generate skill page
        elseif in_array(L.t('Basic Research'), item['tagGroups']) then
            image = string.sub(item['untranslated'], 1, -7):gsub('%s+', '') .. '_Icon.png'
            icon_bg = 'paperBasic'
        elseif in_array(L.t('Advanced Research'), item['tagGroups']) then
            image = string.sub(item['untranslated'], 1, -10):gsub('%s+', '') .. '_Icon.png'
            icon_bg = 'paperAdvanced'
        elseif in_array(L.t('Modern Research'), item['tagGroups']) then
            image = string.sub(item['untranslated'], 1, -8):gsub('%s+', '') .. '_Icon.png'
            icon_bg = 'paperModern'
        else
            image = p.checkImage(item['untranslated'], too_expensive)
        end
        if not icon_bg then
            if item['group'] == L.t('Food') then
                icon_bg = 'iconGreen'
            elseif item['carried'] == L.t('Hands') then
                icon_bg = 'iconBrown'
            end
        end
    else
        image = p.checkImage(name, too_expensive)
    end
 
    if not icon_bg then
        icon_bg = 'iconBlue'
    end
 
    if border then
        icon_border = border
    else
        icon_border = 'borderBlue'
    end
 
    if size == 'iconNormal' then
        icon_container = 'iconContainer'
    else
        icon_container = 'iconContainerSmall'
    end
 
    if not link then
        link = ''
    else
        link = '|link='..link
    end
 
    local file = '[[File:' .. image .. '|frameless|class=' .. size .. ' ' .. icon_bg .. link ..']]'
    return '<div class="' .. icon_container .. '"><div class="iconStack">' .. file .. '</div><div class="iconBorder ' .. icon_border .. '" style="position:absolute;"></div></div>'
end


function p.Icon(frame)
  if mw.title.makeTitle('File', icon).file.exists then
     args = p.normaliseArgs(frame)
     return icon
     return p.build_icon(args.name, args.link, args.size, args.bg, args.border, args.too_expensive)
  else
     return 'NoImage.png'
  end
end
end


-- mw.LoadData prevents #table from working correctly
-- mw.LoadData prevents #table from working correctly
function p.tableLen(tbl)
function p.tableLen(tbl)
    local count = 0
  local count = 0
     for _, v in ipairs(tbl) do
     for _, v in ipairs(tbl) do
        if v == nil then
      if v == nil then
            return count
        return count
        end
      end
        count = count + 1
      count = count + 1
     end
     end
    return count
  return count
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: