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

Нет описания правки
Нет описания правки
Строка 2: Строка 2:
local JsonPaths = require('Module:JsonPaths')
local JsonPaths = require('Module:JsonPaths')
local prefix = JsonPaths.prefixFile()
local prefix = JsonPaths.prefixFile()
local function loadEntityIdsByProject(project)
local title = JsonPaths.getEntityDataTitle(project)
if not title or title == "" then
return nil
end
local ok, data = pcall(mw.loadData, title)
if not ok or type(data) ~= "table" then
return nil
end
return data
end
local function hasIdInEntityIds(entityIds, id)
if type(entityIds) ~= "table" then
return false
end
if entityIds[id] ~= nil then
return true
end
for _, value in ipairs(entityIds) do
if value == id then
return true
end
end
return false
end


local function filterByEntityIds(spriteData, entityIds)
local function filterByEntityIds(spriteData, entityIds)
Строка 43: Строка 11:


for id, entry in pairs(spriteData) do
for id, entry in pairs(spriteData) do
if hasIdInEntityIds(entityIds, id) then
if entityIds[id] ~= nil then
result[id] = entry
result[id] = entry
end
end
Строка 378: Строка 346:
local filteredData = filterSpriteData(spriteData, prototypeData, whitelistSet, blacklistSet)
local filteredData = filterSpriteData(spriteData, prototypeData, whitelistSet, blacklistSet)
local entityIds = JsonPaths.loadEntityIds(project)
local entityIds = loadEntityIdsByProject(project)
filteredData = filterByEntityIds(filteredData, entityIds)
filteredData = filterByEntityIds(filteredData, entityIds)