Módulo:Banner crafting usage

De Minecraft Wiki
Ir para: navegação, pesquisa

Este módulo implementa {{uso de criação de estandarte}}.

Dependências[editar código-fonte]

[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 ponta dextra', 'Cantão $1 na ponta 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 $2', 'Figura $2 de creeper', 'Figura $2 de caveira', '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 ponta dextra'] = {
			0, 0, 0,
			0, 0, 0,
			2, 1, 0,
		},
		['Cantão na ponta 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 caveira'] = '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 = 'Padrões para [[estandarte]] ' .. 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 = 'Figuras para [[estandarte]] ' .. 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