Module:Crafting: Difference between revisions
Jump to navigation
Jump to search
(fix for inline spans) |
(Consistency) |
||
Line 5: | Line 5: | ||
end | end | ||
-- Make a 3*3 crafting grid | |||
function p.Grid( f ) | function p.Grid( f ) | ||
local args = f.args | local args = f.args | ||
Line 14: | Line 15: | ||
end | end | ||
-- Make a 1*1 crafting grid | |||
function p.Cell( f ) | function p.Cell( f ) | ||
local args = f.args | local args = f.args | ||
Line 23: | Line 25: | ||
end | end | ||
-- make a 1*5 crafting grid | |||
function p.Hopper( f ) | function p.Hopper( f ) | ||
local args = f.args | local args = f.args | ||
Line 32: | Line 35: | ||
end | end | ||
-- Make a catalyst | |||
function p.Catalyst( f ) | function p.Catalyst( f ) | ||
local args = f.args | local args = f.args | ||
Line 37: | Line 41: | ||
args = f:getParent().args or {""} | args = f:getParent().args or {""} | ||
end | end | ||
return require([[Module: | return require([[Module:InventorySlot]]).Decode(args[1]) | ||
:SetSize(16) | :SetSize(16) | ||
:GenerateHTML() | :GenerateHTML() | ||
Line 45: | Line 47: | ||
end | end | ||
-- Make an item | |||
function p.Item( f ) | function p.Item( f ) | ||
local args = f.args | local args = f.args | ||
Line 51: | Line 54: | ||
end | end | ||
local sprite | local sprite | ||
if image then | if image then | ||
local Sprite = require([[Module:Sprite]]) | |||
local image = args['image'] or args['Image'] | |||
sprite = Sprite.Custom:new(args[1], image) | sprite = Sprite.Custom:new(args[1], image) | ||
else | else | ||
local spriteSheet = args['spriteSheet'] or | local spriteSheet = args['spriteSheet'] or | ||
args['SpriteSheet'] | args['SpriteSheet'] | ||
if spriteSheet then | |||
sprite = Sprite | |||
:new(spriteSheet) | |||
:setItem(mw.text.trim(args[1] or "")) | |||
else | |||
sprite = require([[Module:InventorySlot]]).Decode(args[1]) | |||
end | |||
end | end | ||
Revision as of 20:00, 30 April 2020
Implements {{Template:Crafting}}
Dependency
See Also
- Template:Crafting
- Template:CraftingCatalyst
- Template:CraftingCell
- Template:CraftingGrid
- Template:CraftingHopper
p = {}
function Grid(args, w, h, large)
return require([[Module:InventorySlot]]).Call(args,w,h,large)
end
-- Make a 3*3 crafting grid
function p.Grid( f )
local args = f.args
if #args == 0 then
args = f:getParent().args
end
return Grid(args, 3, 3)
end
-- Make a 1*1 crafting grid
function p.Cell( f )
local args = f.args
if #args == 0 then
args = f:getParent().args
end
return Grid(args, 1, 1, args.Large)
end
-- make a 1*5 crafting grid
function p.Hopper( f )
local args = f.args
if #args == 0 then
args = f:getParent().args
end
return Grid(args, 5, 1)
end
-- Make a catalyst
function p.Catalyst( f )
local args = f.args
if #args == 0 then
args = f:getParent().args or {""}
end
return require([[Module:InventorySlot]]).Decode(args[1])
:SetSize(16)
:GenerateHTML()
:addClass( "catalyst" )
end
-- Make an item
function p.Item( f )
local args = f.args
if #args == 0 then
args = f:getParent().args or {""}
end
local sprite
if image then
local Sprite = require([[Module:Sprite]])
local image = args['image'] or args['Image']
sprite = Sprite.Custom:new(args[1], image)
else
local spriteSheet = args['spriteSheet'] or
args['SpriteSheet']
if spriteSheet then
sprite = Sprite
:new(spriteSheet)
:setItem(mw.text.trim(args[1] or ""))
else
sprite = require([[Module:InventorySlot]]).Decode(args[1])
end
end
if args['small'] or args['Small'] then
sprite:SetSize(16)
else
sprite:SetSize(args['size'] or args['Size'] or 32)
end
local inline = args['inline'] or args['Inline']
local spriteDiv
if inline then
spriteDiv = sprite:GenerateHTML("span")
spriteDiv:css("display","inline-block")
spriteDiv:css("vertical-align","middle")
else
spriteDiv = sprite:GenerateHTML()
end
local count = tonumber(args['count']) or tonumber(args['Count']) or 1
if count ~= 1 then
local countSpan = spriteDiv:tag("span"):wikitext(count)
countSpan:addClass("invslot-stacksize")
end
return spriteDiv
end
return p