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

мНет описания правки
мНет описания правки
Строка 1: Строка 1:
local prototypes = mw.loadData("Module:Entity Lookup/data")
local prototypes = mw.loadData("Module:Entity Lookup/data")
local overrides = mw.loadData("Module:Entity Lookup/names")


local p = {}
local p = {}
p.entities = prototypes.entities
p.entities = prototypes.entities
p.name_overrides = overrides.name_overrides or {}




-- p.getname{args={"FreedomImplant"}}
-- p.getname{args={"FreedomImplant"}}
function p.getname(frame, entid) -- {{#invoke:Entity Lookup|getname|ProtoID}}
function p.getname(frame, entid) -- {{#invoke:Entity Lookup|getname|ProtoID}}
    local out = ""
local id = frame.args and frame.args[1] or entid
    local id = ""
if not id then return "Не найдено" end
    if frame.args[1] ~= nil then id = frame.args[1]  
 
    else id = entid end
-- Сначала проверяем наличие в overrides
    local entity = p.entities[id]
local override = p.name_overrides[id]
    if entity ~= nil then
if override then
        out = entity.name
return override
    else
end
        out = "Не найдено"
 
    end
local entity = p.entities[id]
return out
if entity then
return entity.name
end
 
return "Не найдено"
end
end


Строка 23: Строка 29:
-- p.getidbyname{args={"Швабра"}}
-- p.getidbyname{args={"Швабра"}}
function p.getidbyname(frame, entname) -- {{#invoke:Entity Lookup|getidbyname|Название}}
function p.getidbyname(frame, entname) -- {{#invoke:Entity Lookup|getidbyname|Название}}
    local name = ""
local name = frame.args and frame.args[1] or entname
    if frame.args[1] ~= nil then
if not name then return "Не найдено" end
        name = frame.args[1]
    else
        name = entname
    end
 
    for id, entity in pairs(p.entities) do
        if entity.name == name then
            return id
        end
    end


    return "Не найдено"
-- Сначала ищем в overrides
end
for id, overrideName in pairs(p.name_overrides) do
if overrideName == name then
return id
end
end


-- Затем ищем в prototypes
for id, entity in pairs(p.entities) do
if entity.name == name then
return id
end
end


-- p.getname{args={"FreedomImplant"}}
return "Не найдено"
function p.getdesc(frame, entid) -- {{#invoke:Entity Lookup|getdesc|ProtoID}}
    local out = ""
    local id = ""
    if frame.args[1] ~= nil then id = frame.args[1]
    else id = entid end
    local entity = p.entities[id]
    if entity ~= nil then
        out = entity.desc
    else
        out = "Не найдено"
    end
return out
end
end


Строка 58: Строка 52:
-- p.createtexttooltip{args={"Верхний текст", "FreedomImplant", "Файл:Honks.gif"}}
-- p.createtexttooltip{args={"Верхний текст", "FreedomImplant", "Файл:Honks.gif"}}
function p.createtexttooltip(frame) -- {{#invoke:Entity Lookup|createtexttooltip|Текст|ProtoID|img=картиночка}}
function p.createtexttooltip(frame) -- {{#invoke:Entity Lookup|createtexttooltip|Текст|ProtoID|img=картиночка}}
    local out = " "
local out = " "
    local entity = p.entities[frame.args[2]]
local entity = p.entities[frame.args[2]]
    local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}")
local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}")
    if entity ~= nil then do
if entity ~= nil then do
    if frame.args["img"] ~= nil then do
if frame.args["img"] ~= nil then do
    out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."|img=".. frame.args["img"] .."}}")
out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."|img=".. frame.args["img"] .."}}")
    end else
end else
    out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."}}")
out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|".. entity.name .."|".. string.gsub(entity.desc, "\n", "<br>") .."|".. stats .."}}")
    end
end
    -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}}
-- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}}
    end else
end else
      out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|Не найден|Предмет не найден|img=Mousegif.gif}}")
  out = frame:preprocess("{{Tooltip|".. frame.args[1] .."|Не найден|Предмет не найден|img=Mousegif.gif}}")
    end
end
    return out
return out
end
end


Строка 77: Строка 71:
-- p.createimagetooltip{args={"Файл:Honks.gif", "FreedomImplant", Статы="Имеет 3 заряда"}}
-- p.createimagetooltip{args={"Файл:Honks.gif", "FreedomImplant", Статы="Имеет 3 заряда"}}
function p.createimagetooltip(frame) -- {{#invoke:Entity Lookup|createimagetooltip|Картинка|ProtoID|Мета=мета|Статы=статы}}
function p.createimagetooltip(frame) -- {{#invoke:Entity Lookup|createimagetooltip|Картинка|ProtoID|Мета=мета|Статы=статы}}
    local out = " "
local out = " "
    local entity = p.entities[frame.args[2]]
local entity = p.entities[frame.args[2]]
    local pic = frame.args[1]
local pic = frame.args[1]
    local meta = frame.args["Мета"]
local meta = frame.args["Мета"]
    local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}")
local stats = frame:preprocess("{{Особое|".. frame.args[2] .."}}")
    if meta == nil then
if meta == nil then
        meta = "64x64px|link="
meta = "64x64px|link="
    end
end
    meta = meta:gsub(',', '|')
meta = meta:gsub(',', '|')
    pic = "[[" .. frame.args[1] .. "|" .. meta .. "]]"
pic = "[[" .. frame.args[1] .. "|" .. meta .. "]]"
    if entity ~= nil then do
if entity ~= nil then do
    if frame.args[1] ~= nil then do
if frame.args[1] ~= nil then do
    out = frame:preprocess("{{Tooltip|".. pic .. "|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."|no-text-decoration=1}}")
out = frame:preprocess("{{Tooltip|".. pic .. "|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."|no-text-decoration=1}}")
    end else
end else
    out = frame:preprocess("{{Tooltip|[[Файл:Mousegif.gif|64x64px|left|middle|link=]]|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."|no-text-decoration=1}}")
out = frame:preprocess("{{Tooltip|[[Файл:Mousegif.gif|64x64px|left|middle|link=]]|" .. entity.name .. "|" .. entity.desc .. "|" .. stats .."|no-text-decoration=1}}")
    end
end
    -- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}}
-- {{Tooltip|Текст|[[картиночка|64x64px|left|middle|link=]] Название|Описание}}
    end else
end else
      out = frame:preprocess("{{Tooltip|" .. pic .. "|Не найден|Предмет не найден|img=Mousegif.gif|no-text-decoration=1}}")
  out = frame:preprocess("{{Tooltip|" .. pic .. "|Не найден|Предмет не найден|img=Mousegif.gif|no-text-decoration=1}}")
    end
end
    return out
return out
end
end




return p
return p