Модуль:Entity Sprite/all: различия между версиями
Pok (обсуждение | вклад) Нет описания правки |
Pok (обсуждение | вклад) Нет описания правки |
||
| Строка 179: | Строка 179: | ||
return result | return result | ||
end | |||
local function getFirstSpriteAndState(entry) | |||
local spritePath = getSpritePath(entry) | |||
local states = getSpriteStates(entry) | |||
if not spritePath then | |||
return nil, nil | |||
end | |||
if states and #states > 0 and states[1].state then | |||
return spritePath, states[1].state | |||
end | |||
return spritePath, entry and entry.state or nil | |||
end | end | ||
| Строка 196: | Строка 211: | ||
if #group > 1 then | if #group > 1 then | ||
local idLinks = {} | local idLinks = {} | ||
for _, obj in ipairs(group) do | for _, obj in ipairs(group) do | ||
local id = obj.id | local id = obj.id | ||
local prefix = getPrefix(id, project) | local prefix = getPrefix(id, project) | ||
table.insert(idLinks, "[[:Файл:" .. prefix .. id .. ".png]]") | table.insert(idLinks, "[[:Файл:" .. prefix .. id .. ".png]]") | ||
end | end | ||
local firstId = group[1].id | local firstId = group[1].id | ||
local firstEntry = group[1].entry | |||
local prefix = getPrefix(firstId, project) | local prefix = getPrefix(firstId, project) | ||
local spritePath, stateName = getFirstSpriteAndState(firstEntry) | |||
local spriteValue = spritePath or "" | |||
if stateName and stateName ~= "" then | |||
spriteValue = spriteValue .. " (" .. stateName .. ")" | |||
end | |||
table.insert(result, mw.getCurrentFrame():preprocess( | table.insert(result, mw.getCurrentFrame():preprocess( | ||
"{{Entity Sprite/Repeat|спрайты=" .. table.concat(idLinks, " ") .. | "{{Entity Sprite/Repeat|спрайты=" .. table.concat(idLinks, " ") .. | ||
"|перенаправление=" .. prefix .. firstId .. | "|перенаправление=" .. prefix .. firstId .. | ||
"|id=" .. firstId .. | "|id=" .. firstId .. | ||
"|спрайт=" .. spriteValue .. | |||
"}}" | "}}" | ||
)) | )) | ||