![]() |
VOOZH | about |
This module implements {{banner crafting usage}}.
localp={} p.crafting=function(f) localargs=f:getParent().args localcrafting=require([[Module:Crafting]]).table localdye=args[1]ormw.title.getCurrentTitle().text localdyeColours={ ['Ink Sac']='Black', ['Rose Red']='Red', ['Cactus Green']='Green', ['Cocoa Beans']='Brown', ['Lapis Lazuli']='Blue', ['Dandelion Yellow']='Yellow', ['Bone Meal']='White' } localcolour=dyeColours[dye]ordye:match('^(.+) Dye$') localbanner='Banner' ifdye=='Bone Meal'then banner='[Banner]Light Gray Banner' end localdyeOrder={ 'Base','Chief','Pale Dexter','Pale Sinister','Pale','Fess','Bend','Bend Sinister','Paly','Saltire', 'Cross','Per Bend Sinister','Per Bend','Per Bend Inverted','Per Bend Sinister Inverted','Per Pale', 'Per Pale Inverted','Per Fess','Per Fess Inverted','Base Dexter Canton','Base Sinister Canton', 'Chief Dexter Canton','Chief Sinister Canton','Chevron','Inverted Chevron','Base Indented','Chief Indented','Roundel','Lozenge', 'Bordure','Gradient','Base Gradient' } localotherOrder={'Bordure Indented','Field Masoned','Creeper Charge','Skull Charge','Flower Charge','Thing'} -- 0 = empty, 1 = banner, 2 = dye localdyeRecipes={ ['Base']={ 0,0,0, 0,1,0, 2,2,2, }, ['Chief']={ 2,2,2, 0,0,0, 0,1,0, }, ['Pale Dexter']={ 2,0,0, 2,0,0, 2,1,0, }, ['Pale Sinister']={ 0,0,2, 0,0,2, 0,1,2, }, ['Pale']={ 0,2,0, 0,2,1, 0,2,0, }, ['Fess']={ 0,0,0, 2,2,2, 0,1,0, }, ['Bend']={ 2,0,0, 0,2,0, 0,1,2, }, ['Bend Sinister']={ 0,0,2, 0,2,0, 2,1,0, }, ['Paly']={ 2,0,2, 2,0,2, 0,1,0, }, ['Saltire']={ 2,0,2, 0,2,0, 2,1,2, }, ['Cross']={ 0,2,0, 2,2,2, 1,2,0, }, ['Per Bend Sinister']={ 2,2,0, 2,0,0, 0,1,0, }, ['Per Bend']={ 0,2,2, 0,0,2, 0,1,0, }, ['Per Bend Inverted']={ 0,1,0, 2,0,0, 2,2,0, }, ['Per Bend Sinister Inverted']={ 0,1,0, 0,0,2, 0,2,2, }, ['Per Pale']={ 2,2,0, 2,2,1, 2,2,0, }, ['Per Pale Inverted']={ 0,2,2, 1,2,2, 0,2,2, }, ['Per Fess']={ 2,2,2, 2,2,2, 0,1,0, }, ['Per Fess Inverted']={ 0,1,0, 2,2,2, 2,2,2, }, ['Base Dexter Canton']={ 0,0,0, 0,0,0, 2,1,0, }, ['Base Sinister Canton']={ 0,0,0, 0,0,0, 0,1,2, }, ['Chief Dexter Canton']={ 2,0,0, 0,0,0, 0,1,0, }, ['Chief Sinister Canton']={ 0,0,2, 0,0,0, 0,1,0, }, ['Chevron']={ 0,0,0, 0,2,0, 2,1,2, }, ['Inverted Chevron']={ 2,0,2, 0,2,0, 0,1,0, }, ['Base Indented']={ 0,0,0, 2,1,2, 0,2,0, }, ['Chief Indented']={ 0,2,0, 2,0,2, 0,1,0, }, ['Roundel']={ 0,0,0, 0,2,0, 0,1,0, }, ['Lozenge']={ 0,2,0, 2,1,2, 0,2,0, }, ['Bordure']={ 2,2,2, 2,1,2, 2,2,2, }, ['Gradient']={ 2,1,2, 0,2,0, 0,2,0, }, ['Base Gradient']={ 0,2,0, 0,2,0, 2,1,2, }, } localitems={ ['Bordure Indented']='Vines', ['Field Masoned']='Bricks', ['Creeper Charge']='Creeper Head', ['Skull Charge']='Wither Skeleton Skull', ['Flower Charge']='Oxeye Daisy', ['Thing']='Enchanted Golden Apple', } localshapedArgs={ 'A1','B1','C1', 'A2','B2','C2', 'A3','B3','C3', } localdyeArgs={ head='1', ignoreusage='1', showdescription=args.description, name=colour..' [[Banner]] pattern', ingredients='[['..dye..']] +<br>[[Banner]]', } fori=1,9do localdyeArg={} for_,patterninipairs(dyeOrder)do localiType=dyeRecipes[pattern][i] localingredient='' ifiType==1then ingredient=banner elseifiType==2then ingredient=dye end table.insert(dyeArg,ingredient) end dyeArgs[shapedArgs[i]]=table.concat(dyeArg,';') end localdyeOutputArg={} for_,patterninipairs(dyeOrder)do table.insert(dyeOutputArg,colour..' '..pattern..' Banner') end dyeArgs.Output=table.concat(dyeOutputArg,';') dyeArgs.Olink='Banner' dyeArgs.fixed='1' dyeArgs.notfixed='the banner' localotherArgs={} otherArgs.ignoreusage='1' otherArgs.name=colour..' [[Banner]] image' otherArgs.ingredients='[['..dye..']] +<br>[[Banner]] +<br>[[Vines]] or<br>[[Bricks]] or<br>[[Creeper Head]] or<br>[[Wither Skeleton Skull]] or<br>[[Oxeye Daisy]] or<br>[[Enchanted Golden Apple]]' localotherItemArg={} localotherOutputArg={} for_,patterninipairs(otherOrder)do table.insert(otherItemArg,items[pattern]) table.insert(otherOutputArg,colour..' '..pattern..' Banner') end otherArgs[1]=table.concat(otherItemArg,';') otherArgs[2]=dye otherArgs[3]=banner otherArgs.Output=table.concat(otherOutputArg,';') otherArgs.Olink='Banner' ifnotargs.continuethen otherArgs.foot='1' end returncrafting(dyeArgs)..crafting(otherArgs) end returnp