全站通知:
模块:Item
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:Item/doc创建
local p={}
function p.Item(frame)
local preList = {"","道具/","装修/","藏品/","服饰/","拍照动作/","拍照贴纸/","拍照其他/","聊天气泡/","头像(框)/","称号/","音乐/"}
local sizeConfig = {["小"]="small",["中"]="mid",["大"]="big"}
local itemLt = frame.args["top"]
local itemLink = frame.args["link"]
local itemSize,item,itemRb
if sizeConfig[frame.args[1]] then
itemSize = sizeConfig[frame.args[1]]
item = frame.args[2]
itemRb = frame.args[3]
else
itemSize = "small"
item = frame.args[1]
itemRb = frame.args[2]
end
-- 调用smw的lua
local smw = require('Module:SMW')
-- 创建一个新的 showframe 参数表
local args = {
[1] = item,
[2] = '名称'
}
frame.args = args
local newFrame = frame
--遍历preList,为item添加前缀,并通过show来获取itemName
local itemName = nil
for _, prefix in ipairs(preList) do
newFrame.args[1] = prefix .. item
itemName = smw.show(newFrame)
if itemName and itemName ~= '' then
break
end
end
--获取道具图片:为空则使用名称
newFrame.args[2] = '显示图片'
local itemImg = smw.show(newFrame)
if not itemImg or itemImg == '' then
itemImg = itemName
end
--获取品质:为空则使用金
newFrame.args[2] = '品质'
local itemQuality = smw.show(newFrame)
if not itemQuality or itemQuality == '' then
itemQuality = '金'
end
-- itemLink
if not itemLink or itemLink == '' then
itemLink = newFrame.args[1]
end
-- return itemName .. ',' .. itemImg .. ',' .. itemQuality..','..itemRb..','..itemLt..','..itemlink
return p.getItemHtml(itemSize, itemImg, itemLink, itemQuality, itemRb, itemLt)
end
function p.getItemHtml(itemSize, itemImg, itemLink, itemQuality, itemRb, itemLt)
local sizePx = {small="40x40px",mid="60x60px",big="80x80px"}
-- 设置默认值
itemSize = itemSize or "small"
itemImg = itemImg or ""
itemLink = itemLink or ""
itemQuality = itemQuality or "1"
-- 如果itemRb不为空,则添加itemRb
if itemRb and itemRb ~= '' then
itemRb = '<div class="item-rightBottom">'..itemRb..'</div>'
end
-- 如果itemLt不为空,则添加itemLt
if itemLt and itemLt ~= '' then
itemLt = '<div class="item-leftTop">'..itemLt..'</div>'
end
local html = '<div class="item item-'..itemSize..'"><div class="item-image">'..
'<div class="item-wiki">WIKILYSK</div>'..
'[[file:'..itemImg..'.png|'..sizePx[itemSize]..'|link='..itemLink..']]</div>'..
itemRb..
itemLt..
'<div class="item-fg">[[file:物品框'..itemQuality..'.png|link='..itemLink..']]</div></div>'
return html
end
function p.ItemImg(frame)
local preList = {"","道具/","装修/","藏品/","服饰/","拍照动作/","拍照贴纸/","拍照其他/","聊天气泡/","头像(框)/","称号/","音乐/"}
local sizeConfig = {["小"]="40x40px",["中"]="60x60px",["大"]="80x80px"}
local itemLink = frame.args["link"]
local itemSize, item
if sizeConfig[frame.args[1]] then
itemSize = sizeConfig[frame.args[1]]
item = frame.args[2]
else
itemSize = "40x40px"
item = frame.args[1]
end
-- 如果 item 为空,则返回空字符串
if not item or item == '' then
return '错误:item为空'
end
-- 调用smw的lua
local smw = require('Module:SMW')
-- 创建一个新的 showframe 参数表
local args = {
[1] = item,
[2] = '显示图片'
}
frame.args = args
local newFrame = frame
--遍历preList,为item添加前缀,并通过show来获取itemImg
local itemImg = nil
for _, prefix in ipairs(preList) do
newFrame.args[1] = prefix .. item
itemImg = smw.show(newFrame)
if itemImg and itemImg ~= '' then
break
end
end
-- 如果没有找到图片,返回空字符串
if not itemImg or itemImg == '' then
itemImg = ''
end
-- itemLink
if not itemLink or itemLink == '' then
itemLink = newFrame.args[1]
end
-- 返回带有file标签和link的图片
return '[[file:' .. itemImg .. '.png|' .. itemSize .. '|link=' .. itemLink .. ']]'
end
return p