VOOZH about

URL: https://minecraft.wiki/w/Module:Crafting

⇱ Module:Crafting – Minecraft Wiki


Module:Crafting

From Minecraft Wiki
Jump to navigation Jump to search
Documentation[view] [edit] [history] [purge]Jump to code ↴

This module implements {{crafting}}.

Parent arguments are automatically merged with directly passed arguments (the latter overwriting the former).

Dependencies

See also

[view] [edit] [history] [purge]The above documentation is transcluded from Module:Crafting/doc.
localp={}
-- Internationalization data
locali18n={
moduleArgs=[[Module:ProcessArgs]],
moduleRecipe=[[Module:Recipe table]],
moduleSlot=[[Module:Inventory slot]],
type='Crafting'
}
p.i18n=i18n
-- Global dependencies and constants
localslot=require(i18n.moduleSlot)
localrecipeTable=require(i18n.moduleRecipe).table
localcArgVals={'A1','B1','C1','A2','B2','C2','A3','B3','C3'}
p.cArgVals=cArgVals
-- Service function: Automatically arrange the shapeless recipe set by numbered
-- parameters
localfunctionarrangeShapelessRecipe(args)
ifargs[1]then
args.shapeless=1
ifargs[7]then
args.A1=args[1]
args.B1=args[2]
args.C1=args[3]
args.A2=args[4]
args.B2=args[5]
args.C2=args[6]
ifargs[8]then
-- ◼◼◼ ◼◼◼
-- ◼◼◼ OR ◼◼◼
-- ◼◼◼ ◼◼◻
-- (where ◼ is filled slot, ◻ is empty slot)
args.A3=args[7]
args.B3=args[8]
args.C3=args[9]
ifargs[9]then
-- If all slots are the same, the recipe is not shapeless
localidentical=true
fori=1,8do
ifargs[i]~=args[i+1]then
identical=false
break
end
end
ifidenticalthen
args.shapeless=nil
end
end
else
-- ◼◼◼
-- ◼◼◼
-- ◻◼◻
args.B3=args[7]
end
elseifargs[2]then
args.A2=args[1]
args.B2=args[2]
ifargs[5]then
-- ◻◻◻ ◻◻◻
-- ◼◼◼ OR ◼◼◼
-- ◼◼◼ ◼◼◻
args.C2=args[3]
args.A3=args[4]
args.B3=args[5]
args.C3=args[6]
elseifargs[4]then
-- ◻◻◻
-- ◼◼◻
-- ◼◼◻
args.A3=args[3]
args.B3=args[4]
else
-- ◻◻◻ ◻◻◻
-- ◼◼◻ OR ◼◼◻
-- ◻◼◻ ◻◻◻
args.B3=args[3]
end
else
-- ◻◻◻
-- ◻◼◻
-- ◻◻◻
-- Recipe with only one ingredient is not shapeless
args.B2=args[1]
args.shapeless=nil
end
-- Clear the original numbered parameters;
-- [[Module:UI]].craftingTable() doesn’t need them
fori=1,9do
args[i]=nil
end
end
end
-- Main entry point
functionp.table(f)
-- Process the arguments
localargs=f
iff==mw.getCurrentFrame()then
args=require(i18n.moduleArgs).merge(true)
else
f=mw.getCurrentFrame()
end
-- Arrange the shapeless recipe
arrangeShapelessRecipe(args)
-- Create the recipe table and save the data
localout=recipeTable(args,{
uiFunc='craftingTable',
type=i18n.type,
ingredientArgs=cArgVals,
outputArgs={'Output'},
saveToDatabase='crafting_recipe',
otherArgsToSave={"type","shapeless","fixed","notfixed","group"},
extraProperties={["type"]=args.type}
})
returnout
end
returnp
Retrieved from "https://minecraft.wiki/w/Module:Crafting?oldid=3568509"

Navigation menu