Модуль:Entity Sprite/all: различия между версиями

Нет описания правки
Нет описания правки
Строка 1: Строка 1:
local p = {}
local p = {}
local JsonPaths = require('Module:JsonPaths')
local JsonPaths = require('Module:JsonPaths')
local fileExistsCache = {}


local function getSpritePath(entry)
local function getSpritePath(entry)
Строка 22: Строка 20:
elseif entry.state and entry.sprite then
elseif entry.state and entry.sprite then
table.insert(result, {
table.insert(result, {
state = tostring(entry.state or ""),
state = tostring(entry.state or ""),  
sprite = entry.sprite
sprite = entry.sprite
})
})
Строка 35: Строка 33:
end
end
return ""
return ""
end
local function fileExists(name)
if fileExistsCache[name] ~= nil then
return fileExistsCache[name]
end
local title = mw.title.new(name, "File")
local exists = title and title.exists or false
fileExistsCache[name] = exists
return exists
end
end


Строка 72: Строка 59:


local result = {}
local result = {}
local frame = mw.getCurrentFrame()


for _, group in pairs(spriteGroups) do
for _, group in pairs(spriteGroups) do
Строка 81: Строка 67:
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


table.insert(result, frame:preprocess(
table.insert(result, mw.getCurrentFrame():preprocess(
"{{Entity Sprite/Repeat|" ..
"{{Entity Sprite/Repeat|" ..
table.concat(idLinks, " ") ..
table.concat(idLinks, " ") ..
Строка 128: Строка 115:
local action = frame.args[1]
local action = frame.args[1]
local json = frame.args.json or "sprite_entity.json"
local json = frame.args.json or "sprite_entity.json"
local checkFile = frame.args.checkFile or ""
if checkFile == "" then
checkFile = false
end
 
local project = JsonPaths.project()
local project = JsonPaths.project()
local baseUrl = JsonPaths.git() .. "/Resources/Textures/"
local baseUrl = JsonPaths.git() .. "/Resources/Textures/"
Строка 149: Строка 132:


for id, entry in pairs(spriteData) do
for id, entry in pairs(spriteData) do
local prefix = getPrefix(id, project)
local t = generateTemplate(id, entry, baseUrl, project)
 
if t then
local skip = false
table.insert(result, t)
if checkFile then
local fileName = prefix .. id .. ".png"
if fileExists(fileName) then
skip = true
end
end
 
if not skip then
local t = generateTemplate(id, entry, baseUrl, project)
if t then
table.insert(result, t)
end
end
end
end
end