Este módulo implementa {{uso de criação de estandarte}}
.
Dependências
[ver | editar | histórico | purgar]A documentação acima é transcluída de Módulo:Banner crafting usage/doc.
local p = {}
p.crafting = function( f )
local args = f:getParent().args
local crafting = require( [[Módulo:Crafting]] ).table
local dye = args[1] or mw.title.getCurrentTitle().text
local legacyDyes = {
['bolsa de tinta'] = 'preto',
['vermelho da rosa'] = 'vermelho',
['verde do cacto'] = 'verde',
['sementes de cacau'] = 'marrom',
['lápis-lazúli'] = 'azul',
['amarelo do dente-de-leão'] = 'amarelo',
['farinha de osso'] = 'branco'
}
local colour = legacyDyes[mw.ustring.lower(dye)] or dye:match( '^Corante (.+)$' )
local banner = 'Estandarte'
if dye == 'farinha de osso' then
banner = '[Estandarte]Estandarte cinza-claro'
end
--[[
$1 = male grammatical gender color
$2 = female grammatical gender color
--]]
local dyeOrder = {
'Base $2', 'Chefe $1', 'Pala dextra $2', 'Pala sinistra $2', 'Pala $2', 'Faixa $2', 'Banda $2', 'Banda sinistra $2', 'Palado $1', 'Aspa $2',
'Cruz $2', 'Talhado $1', 'Fendido $1', 'Fendido $1 invertido', 'Talhado $1 invertido', 'Partido $1',
'Partido $2 invertido', 'Cortado $1', 'Cortado $1 invertido', 'Cantão $1 na base dextra', 'Cantão $1 na base sinistra',
'Cantão $1 no chefe dextro', 'Cantão $1 no chefe sinistro', 'Asna $2', 'Asna $2 invertida', 'Dentado $1 na base', 'Dentado $1 no chefe', 'Besante $1', 'Losango $1',
'Borda $2', 'Gradiente $1', 'Gradiente $1 na base'
}
local otherOrder = { 'Borda dentada $2', 'Alvenaria $1', 'Figura $2 de creeper', 'Figura $2 de crânio', 'Figura $2 de flor', 'Símbolo $1' }
-- key is male grammatical gender, values are { 'male', 'female' }
local dyeColours = {
['branco'] = { 'branco', 'branca' },
['cinza-claro'] = { 'cinza-claro', 'cinza-clara' },
['cinza'] = { 'cinza', 'cinza' },
['preto'] = { 'preto', 'preta' },
['vermelho'] = { 'vermelho', 'vermelha' },
['laranja'] = { 'laranja', 'laranja' },
['amarelo'] = { 'amarelo', 'amarela' },
['verde-limão'] = { 'verde-limão', 'verde-limão' },
['verde'] = { 'verde', 'verde' },
['azul-claro'] = { 'azul-claro', 'azul-clara' },
['ciano'] = { 'ciano', 'ciano' },
['azul'] = { 'azul', 'azul' },
['roxo'] = { 'roxo', 'roxa' },
['magenta'] = { 'magenta', 'magenta' },
['rosa'] = { 'rosa', 'rosa' },
['marrom'] = { 'marrom', 'marrom' },
}
-- 0 = empty, 1 = banner, 2 = dye
local dyeRecipes = {
['Base'] = {
0, 0, 0,
0, 1, 0,
2, 2, 2,
},
['Chefe'] = {
2, 2, 2,
0, 0, 0,
0, 1, 0,
},
['Pala dextra'] = {
2, 0, 0,
2, 0, 0,
2, 1, 0,
},
['Pala sinistra'] = {
0, 0, 2,
0, 0, 2,
0, 1, 2,
},
['Pala'] = {
0, 2, 0,
0, 2, 1,
0, 2, 0,
},
['Faixa'] = {
0, 0, 0,
2, 2, 2,
0, 1, 0,
},
['Banda'] = {
2, 0, 0,
0, 2, 0,
0, 1, 2,
},
['Banda sinistra'] = {
0, 0, 2,
0, 2, 0,
2, 1, 0,
},
['Palado'] = {
2, 0, 2,
2, 0, 2,
0, 1, 0,
},
['Aspa'] = {
2, 0, 2,
0, 2, 0,
2, 1, 2,
},
['Cruz'] = {
0, 2, 0,
2, 2, 2,
1, 2, 0,
},
['Talhado'] = {
2, 2, 0,
2, 0, 0,
0, 1, 0,
},
['Fendido'] = {
0, 2, 2,
0, 0, 2,
0, 1, 0,
},
['Fendido invertido'] = {
0, 1, 0,
2, 0, 0,
2, 2, 0,
},
['Talhado invertido'] = {
0, 1, 0,
0, 0, 2,
0, 2, 2,
},
['Partido'] = {
2, 2, 0,
2, 2, 1,
2, 2, 0,
},
['Partido invertido'] = {
0, 2, 2,
1, 2, 2,
0, 2, 2,
},
['Cortado'] = {
2, 2, 2,
2, 2, 2,
0, 1, 0,
},
['Cortado invertido'] = {
0, 1, 0,
2, 2, 2,
2, 2, 2,
},
['Cantão na base dextra'] = {
0, 0, 0,
0, 0, 0,
2, 1, 0,
},
['Cantão na base sinistra'] = {
0, 0, 0,
0, 0, 0,
0, 1, 2,
},
['Cantão no chefe dextro'] = {
2, 0, 0,
0, 0, 0,
0, 1, 0,
},
['Cantão no chefe sinistro'] = {
0, 0, 2,
0, 0, 0,
0, 1, 0,
},
['Asna'] = {
0, 0, 0,
0, 2, 0,
2, 1, 2,
},
['Asna invertida'] = {
2, 0, 2,
0, 2, 0,
0, 1, 0,
},
['Dentado na base'] = {
0, 0, 0,
2, 1, 2,
0, 2, 0,
},
['Dentado no chefe'] = {
0, 2, 0,
2, 0, 2,
0, 1, 0,
},
['Besante'] = {
0, 0, 0,
0, 2, 0,
0, 1, 0,
},
['Losango'] = {
0, 2, 0,
2, 1, 2,
0, 2, 0,
},
['Borda'] = {
2, 2, 2,
2, 1, 2,
2, 2, 2,
},
['Gradiente'] = {
2, 1, 2,
0, 2, 0,
0, 2, 0,
},
['Gradiente na base'] = {
0, 2, 0,
0, 2, 0,
2, 1, 2,
},
}
local items = {
['Borda dentada'] = 'Trepadeiras',
['Alvenaria'] = 'Tijolos',
['Figura de creeper'] = 'Cabeça de creeper',
['Figura de crânio'] = 'Crânio de esqueleto wither',
['Figura de flor'] = 'Margarida',
['Símbolo'] = 'Maçã dourada encantada',
}
local shapedArgs = {
'A1', 'B1', 'C1',
'A2', 'B2', 'C2',
'A3', 'B3', 'C3',
}
local dyeArgs = {
head = '1',
ignoreusage = '1',
showdescription = args.description,
name = '[[Estandarte]] padrão ' .. colour,
ingredients = '[[' .. dye .. ']] +<br>[[Estandarte]]',
}
for i = 1, 9 do
local dyeArg = {}
for _, pattern in ipairs( dyeOrder ) do
local recipePattern = pattern:gsub(" %$%d", "")
local iType = dyeRecipes[recipePattern][i]
local ingredient = ''
if iType == 1 then
ingredient = banner
elseif iType == 2 then
ingredient = dye
end
table.insert( dyeArg, ingredient )
end
dyeArgs[shapedArgs[i]] = table.concat( dyeArg, ';' )
end
local dyeOutputArg = {}
for _, pattern in ipairs( dyeOrder ) do
if pattern:match("%$1") ~= nil then
local bannerPattern = pattern:gsub("%$1", dyeColours[colour][1])
table.insert( dyeOutputArg, 'Estandarte ' .. bannerPattern:lower() )
end
if pattern:match("%$2") ~= nil then
local bannerPattern = pattern:gsub("%$2", dyeColours[colour][2])
table.insert( dyeOutputArg, 'Estandarte ' .. bannerPattern:lower() )
end
end
dyeArgs.Output = table.concat( dyeOutputArg, ';' )
dyeArgs.Olink = 'Estandarte'
dyeArgs.fixed = '1'
dyeArgs.notfixed = 'o estandarte'
local otherArgs = {}
otherArgs.ignoreusage = '1'
otherArgs.name = '[[Estandarte]] imagem ' .. colour
otherArgs.ingredients = '[[' .. dye .. ']] +<br>[[Estandarte]] +<br>[[Trepadeiras]] ou<br>[[Tijolos]] ou<br>[[Cabeça de creeper]] ou<br>[[Crânio de esqueleto wither]] ou<br>[[Margarida]] ou<br>[[Maçã dourada encantada]]'
local otherItemArg = {}
local otherOutputArg = {}
for _, pattern in ipairs( otherOrder ) do
local recipePattern = pattern:gsub(" %$%d", "")
table.insert( otherItemArg, items[recipePattern] )
if pattern:match("%$1") ~= nil then
local bannerPattern = pattern:gsub("%$1", dyeColours[colour][1])
table.insert( otherOutputArg, 'Estandarte ' .. bannerPattern:lower() )
end
if pattern:match("%$2") ~= nil then
local bannerPattern = pattern:gsub("%$2", dyeColours[colour][2])
table.insert( otherOutputArg, 'Estandarte ' .. bannerPattern:lower() )
end
end
otherArgs[1] = table.concat( otherItemArg, ';' )
otherArgs[2] = dye
otherArgs[3] = banner
otherArgs.Output = table.concat( otherOutputArg, ';' )
otherArgs.Olink = 'Estandarte'
if not args.continue then
otherArgs.foot = '1'
end
return crafting( dyeArgs ) .. crafting( otherArgs )
end
return p