League of Legends Wiki
League of Legends Wiki
(item() - добавлен вызов английского названия)
мНет описания правки
(не показана 1 промежуточная версия этого же участника)
Строка 198: Строка 198:
 
function Filename.loading(frame)
 
function Filename.loading(frame)
 
local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
 
local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
  +
local champion = args['champion'] or args[1]
  +
local parsedName = champion
  +
if(lolChampions[champion].engname or lolChampions[champion].apiname ~= nil) then
  +
parsedName = lolChampions[champion].engname or lolChampions[champion].apiname
  +
end
  +
  +
local skinName = args['skin'] or args[2] or "Original"
  +
if(skinName ~= "Original") then
  +
if(lolSkins[champion]["skins"][skinName] ~= nil) then
  +
if(lolSkins[champion]["skins"][skinName].engname) then
  +
skinName = lolSkins[champion]["skins"][skinName].engname
  +
end
  +
else
  +
skinName = "Original"
  +
end
  +
end
  +
 
return handleArgs(args, mw.text.trim(encode(
 
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sЗагрузка %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or rusLib.adjustOriginal(args['champion'] or args[1]), ' ', ''), args['variant'] or args[3])
+
formatnil('%s %sLoading %s.jpg', parsedName, string.gsub(skinName, ' ', ''), args['variant'] or args[3])
 
or
 
or
formatnil('%s %sЗагрузка.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or rusLib.adjustOriginal(args['champion'] or args[1]), ' ', ''))
+
formatnil('%s %sLoading.jpg', parsedName, string.gsub(skinName, ' ', ''))
 
or
 
or
 
'Champion SkinLoading.jpg')))
 
'Champion SkinLoading.jpg')))
Строка 254: Строка 271:
 
function Filename.skin(frame)
 
function Filename.skin(frame)
 
local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
 
local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
  +
local champion = args['champion'] or args[1]
  +
local parsedName = champion
  +
if(lolChampions[champion].engname or lolChampions[champion].apiname ~= nil) then
  +
parsedName = lolChampions[champion].engname or lolChampions[champion].apiname
  +
end
  +
  +
local skinName = args['skin'] or args[2] or "Original"
  +
if(skinName ~= "Original") then
  +
if(lolSkins[champion]["skins"][skinName] ~= nil) then
  +
if(lolSkins[champion]["skins"][skinName].engname) then
  +
skinName = lolSkins[champion]["skins"][skinName].engname
  +
end
  +
else
  +
skinName = "Original"
  +
end
  +
end
  +
 
return handleArgs(args, mw.text.trim(encode(
 
return handleArgs(args, mw.text.trim(encode(
formatnil('%s %sОбраз %s.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or rusLib.adjustOriginal(args['champion'] or args[1]), ' ', ''), args['variant'] or args[3])
+
formatnil('%s %sSkin %s.jpg', parsedName, string.gsub(skinName, ' ', ''), args['variant'] or args[3])
 
or
 
or
formatnil('%s %sОбраз.jpg', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or rusLib.adjustOriginal(args['champion'] or args[1]), ' ', ''))
+
formatnil('%s %sSkin.jpg', parsedName, string.gsub(skinName, ' ', ''))
 
or
 
or
 
'Champion SkinSkin.jpg')))
 
'Champion SkinSkin.jpg')))

Версия от 20:18, 14 января 2021

Данный модуль генерирует стандартные имена для иконок и иных изображений различных объектов League of Legends и Teamfight Tactics.

Список функций

В угловых скобках указывается переменное значение
Название Стандартное имя Пример
ability <Название умения>.png
<Название умения> <Вариация иконки>.png
Fox-Fire.png
Fox-Fire old.png
buff <Название усиления> buff.png
<Название усиления> <Вариация иконки>.png
Crest of Insight buff.png
Crest of Insight buff old.png
championcircle <Имя чемпиона> <Образ чемпиона>Circle.png
<Имя чемпиона><Образ чемпиона> Circle <Вариант иконки>.png
Lux OriginalCircle.png
Lux ElementalistCircle.png
Lux OriginalCircle old.png
chroma <Имя чемпиона> <Образ чемпиона> (<Название цветовой схемы>).png Ahri Arcana (Ruby).png
item <Название предмета> item.png
<Название предмета> item <Вариант иконки>.png
Rabadon's Deathcap item.png
itemTFT <Название предмета> TFT item.png Rabadon's Deathcap TFT item.png
loading <Имя чемпиона> <Образ чемпиона>Loading.png
<Имя чемпиона><Образ чемпиона> Loading <Вариант иконки>.png
Lux OriginalLoading.png
Lux ElementalistLoading.png
Lux OriginalLoading old.png
monster <Имя монстра>Square.png
<Имя монстра>Square <Вариант иконки>.png
Void HeraldSquare.png
rune <Название руны> rune.png
<Название руны> rune <Вариант иконки>.png
Electrocute rune.png
skin <Имя чемпиона> <Образ чемпиона>Skin.jpg
<Имя чемпиона><Образ чемпиона> Skin <Вариант иконки>.jpg
Lux OriginalSkin.jpg
Lux ElementalistSkin.jpg
Lux OriginalSkin old.jpg
centered <Имя чемпиона> <Образ чемпиона>Centered.jpg
<Имя чемпиона><Образ чемпиона> Centered <Вариант иконки>.jpg
Lux OriginalCentered.jpg
Lux ElementalistCentered.jpg
Lux OriginalCentered old.jpg
spell <Заклинание призывателя> заклинание.png
<Заклинание призывателя> заклинание <Вариант иконки>.png
Исцеление заклинание.png
universe <Название вселенной>.png Runeterra.png
From Модуль:Filename/doc

-- <pre>
local Filename = {}
 
-- Dependencies
local lib          = require('Модуль:Feature')
local rusLib       = require('Модуль:RusLocalization')
local lolChampions = require('Модуль:ChampionData/data')
local lolSkins     = require("Модуль:SkinData/data")
local lolItems     = require("Модуль:ItemData/data")
 
--[[
{{#invoke: Filename | ability
| ability     OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | buff
| buff        OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | champion
| champion    OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | championcircle
| champion    OR 1 = 
| skin        OR 2 =  -- can be empty
| variant     OR 3 =  -- can be empty
}}
 
{{#invoke: Filename | chroma
| champion    OR 1 = 
| skin        OR 2 =  -- can be empty
| chroma      OR 3 = 
}}
 
{{#invoke: Filename | item
| item        OR 1 = 
| enchantment OR 2 =  -- can be empty
| variant     OR 3 =  -- can be empty
}}
 
{{#invoke: Filename | loading
| champion    OR 1 = 
| skin        OR 2 = 
| variant     OR 3 =  -- can be empty
}}
 
{{#invoke: Filename | mastery
| mastery     OR 1 = 
| season      OR 2 = 
}}
 
{{#invoke: Filename | monster
| monster     OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | profileicon
| profileicon OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | rune
| rune        OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | runeold
| stat        OR 1 = 
| rune        OR 2 = 
| tier        OR 3 = 
}}
 
{{#invoke: Filename | skin
| champion    OR 1 = 
| skin        OR 2 = 
| variant     OR 3 =  -- can be empty
}}
 
{{#invoke: Filename | spell
| spell       OR 1 = 
| variant     OR 2 =  -- can be empty
}}
 
{{#invoke: Filename | ward
| ward        OR 1 = 
}}
 
]]--
 
function Filename.ability(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s %s.png', args['ability'] or args[1], args['variant'] or args[2])
    or
        formatnil('%s.png', args['ability'] or args[1])
    or
        'Placeholder.svg')))
end
 
function Filename.buff(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s усиление %s.png', args['buff'] or args[1], args['variant'] or args[2])
    or
        formatnil('%s усиление.png', args['buff'] or args[1])
    or
        'Placeholder.svg')))
end
 
--[[function Filename.champion(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%sSquare %s.png', args['champion'] or args[1], args['variant'] or args[2])
    or
        formatnil('%sSquare.png', args['champion'] or args[1])
    or
        'ChampionSquare.png')))
end]]

function Filename.championcircle(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
	local champion = args['champion'] or args[1]
    local parsedName = champion
    if(lolChampions[champion].engname or lolChampions[champion].apiname ~= nil) then
        parsedName = lolChampions[champion].engname or lolChampions[champion].apiname
    end
    
    local skinName = args['skin'] or args[2] or "Original"
    if(skinName ~= "Original") then
	    if(lolSkins[champion]["skins"][skinName] ~= nil) then
	    	if(lolSkins[champion]["skins"][skinName].engname) then
	    		skinName = lolSkins[champion]["skins"][skinName].engname
	    	end
	    else
	    	skinName = "Original"
	    end
	end
    
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s %sCircle %s.png', parsedName, string.gsub(skinName, ' ', ''), args['variant'] or args[3])
    or
        formatnil('%s %sCircle.png', parsedName, string.gsub(skinName, ' ', ''))
    or
        'ChampionSquare.png')))
end

function Filename.championsquare(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    local champion = args['champion'] or args[1]
    local parsedName = champion
    if(lolChampions[champion].engname or lolChampions[champion].apiname ~= nil) then
        parsedName = lolChampions[champion].engname or lolChampions[champion].apiname
    end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s %sSquare %s.png', parsedName, string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['variant'] or args[3])
    or
        formatnil('%s %sSquare.png', parsedName, string.gsub(args['skin'] or args[2] or 'Original', ' ', ''))
    or
        'ChampionSquare.png')))
end


function Filename.chroma(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(formatnil('%s %s (%s).png', args['champion'] or args[1], string.gsub(args['skin'] or args[2] or 'Original', ' ', ''), args['chroma'] or args[3]) or 'Placeholder.svg')))
end
 
function Filename.item(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    	
    local itemName = args["item"] or args[1]
    local parsedName = itemName
    if(lolItems[itemName].engname ~= nil) then
    	parsedName = lolItems[itemName].engname
    end
    if (args['enchantment']) then
        result = handleArgs(args, mw.text.trim(encode(
            formatnil('%s (%s) item %s.png', parsedName, args['enchantment'] or args[2], args['variant'] or args[3])
        or
            formatnil('%s (%s) item.png', parsedName, args['enchantment'] or args[2])
        or
            'Placeholder.svg')))
    else
        result = handleArgs(args, mw.text.trim(encode(
            formatnil('%s item %s.png', parsedName, args['variant'] or args[2])
        or
            formatnil('%s item.png', parsedName)
        or
            'Placeholder.svg')))
    end
    return result
end
 
function Filename.loading(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
	local champion = args['champion'] or args[1]
    local parsedName = champion
    if(lolChampions[champion].engname or lolChampions[champion].apiname ~= nil) then
        parsedName = lolChampions[champion].engname or lolChampions[champion].apiname
    end
    
    local skinName = args['skin'] or args[2] or "Original"
    if(skinName ~= "Original") then
	    if(lolSkins[champion]["skins"][skinName] ~= nil) then
	    	if(lolSkins[champion]["skins"][skinName].engname) then
	    		skinName = lolSkins[champion]["skins"][skinName].engname
	    	end
	    else
	    	skinName = "Original"
	    end
	end
    
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s %sLoading %s.jpg', parsedName, string.gsub(skinName, ' ', ''), args['variant'] or args[3])
    or
        formatnil('%s %sLoading.jpg', parsedName, string.gsub(skinName, ' ', ''))
    or
        'Champion SkinLoading.jpg')))
end
 
function Filename.mastery(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s талант %d.png', args['mastery'] or args[1], tonumber(args['season'] or args[2]))
    or 
        'Placeholder.svg')))
end
 
function Filename.monster(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%sSquare %s.png', args['monster'] or args[1], args['variant'] or args[2])
    or
        formatnil('%sSquare.png', args['monster'] or args[1])
    or
        'Placeholder.svg')))
end
 
function Filename.profileicon(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s profileicon %s.png', args['profileicon'] or args[1], args['variant'] or args[2])
    or
        formatnil('%s profileicon.png', args['profileicon'] or args[1])
    or
        'Placeholder.svg')))
end
 
function Filename.rune(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s руна %s.png', args['rune'] or args[1], args['variant'] or args[2])
    or
        formatnil('%s руна.png', args['rune'] or args[1])
    or
        'Placeholder.svg')))
end
 
function Filename.runeold(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s %s %d.png', args['stat'] or args[1], args['rune'] or args[2], tonumber(args['tier'] or args[3]))
    or
        'Placeholder.svg')))
end
 
function Filename.skin(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
	local champion = args['champion'] or args[1]
    local parsedName = champion
    if(lolChampions[champion].engname or lolChampions[champion].apiname ~= nil) then
        parsedName = lolChampions[champion].engname or lolChampions[champion].apiname
    end
    
    local skinName = args['skin'] or args[2] or "Original"
    if(skinName ~= "Original") then
	    if(lolSkins[champion]["skins"][skinName] ~= nil) then
	    	if(lolSkins[champion]["skins"][skinName].engname) then
	    		skinName = lolSkins[champion]["skins"][skinName].engname
	    	end
	    else
	    	skinName = "Original"
	    end
	end
    
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s %sSkin %s.jpg', parsedName, string.gsub(skinName, ' ', ''), args['variant'] or args[3])
    or
        formatnil('%s %sSkin.jpg', parsedName, string.gsub(skinName, ' ', ''))
    or
        'Champion SkinSkin.jpg')))
end
 
function Filename.spell(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(
        formatnil('%s заклинание %s.png', args['spell'] or args[1], args['variant'] or args[2])
    or
        formatnil('%s заклинание.png', args['spell'] or args[1])
    or
        'Placeholder.svg')))
end
 
function Filename.ward(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(formatnil('%s тотем.png', args['ward'] or args[1]) or 'Placeholder.svg')))
end

function Filename.faction(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    return handleArgs(args, mw.text.trim(encode(formatnil('%s Герб иконка.png', args['faction'] or args[1]) or 'Placeholder.svg')))
end

function Filename.universe(frame)
    local args; if frame.args == nil then args = lib.arguments(frame) else args = lib.arguments(frame.args) end
    local skinlines = mw.loadData('Модуль:UniverseData/skinlines')
    local universes = mw.loadData('Модуль:UniverseData/au')
    local sLine = args['universe'] or args[1]
    local icon = 'Universe Default icon.png'
    
    local universeIcons = { -- Содержит исключения из правил поиска иконок
        ['Горизонт событий'] = "Galaxies 2020 profileicon.png",
        ['Звездные защитники'] = "Mark of the Star Guardian profileicon.png",
        ['Хаос и Порядок'] = "Night & Dawn Event profileicon.png"
    }
    
    if skinlines[sLine] then
        icon = skinlines[sLine].icon or 'Universe Default icon.png'
        return handleArgs(args, mw.text.trim(encode(formatnil(icon))))
    elseif universes[sLine] then -- Если не линейка образов, но название вселенной
        if universeIcons[sLine] then -- Проверка исключения
            icon = universeIcons[sLine]
        else -- Взять иконку у первой линейки из этой вселенной
            icon = skinlines[universes[sLine][1]]['icon'] or 'Universe Default icon.png'
        end
        
        return handleArgs(args, mw.text.trim(encode(formatnil(icon))))
    end
    
    return handleArgs(args, mw.text.trim(encode(formatnil(icon))))
end
 
-- Helper functions
function Filename.encode(frame)
    return mw.text.trim(encode(frame.args[1]))
end
 
function encode(text)
    if text == nil then return nil end
    text = mw.ustring.gsub(text, ':', '-')
    text = mw.ustring.gsub(text, '/', '')
    return text
end
 
function handleArgs(args, filename)
    local result = filename
    if args['prefix'] then filename = args['prefix'] .. filename end
    if args['suffix'] then filename = filename .. args['suffix'] end
    if args['parse'] then filename = mw.getCurrentFrame():preprocess(filename) end
    return result
end
 
function formatnil(text, ...)
    if select("#", ...) == 0 then return text end
    for i=1, select("#", ...) do
        if select(i, ...) == nil then return nil end
    end
    return mw.ustring.format(text, ...)
end

function adjustOriginal(champion)
    local skinData = mw.loadData("Module:SkinData/data")
    local ans = "Классический"
    if skinData[champion].skins["Классический"] == nil then
        return "Классическая"
    end
    return ans
end    
 
return Filename
-- </pre>
-- [[Category:Lua]]