Diferencia entre revisiones de «Módulo:Botón»

De Inkipedia
m (Errores solucionados)
(Traducido todo el módulo)
 
Línea 88: Línea 88:
['a'] = '[[File:Wii U Icon A.png|28x28px|link=|A]]',
['a'] = '[[File:Wii U Icon A.png|28x28px|link=|A]]',
['b'] = '[[File:Wii U Icon B.png|28x28px|link=|B]]',
['b'] = '[[File:Wii U Icon B.png|28x28px|link=|B]]',
['dpad'] = '[[File:Wii U Icon D-Pad.png|28x28px|link=|D-Pad]]',
['cruceta'] = '[[File:Wii U Icon D-Pad.png|28x28px|link=|Cruceta]]',
['gamepad'] = '[[File:Wii U Icon Gamepad.png|28x28px|link=|Gamepad]]',
['gamepad'] = '[[File:Wii U Icon Gamepad.png|28x28px|link=|Gamepad]]',
['home'] = '[[File:Wii U Icon Home.png|28x28px|link=|Home]]',
['home'] = '[[File:Wii U Icon Home.png|28x28px|link=|Home]]',
['l'] = '[[File:Wii U Icon L.png|28x28px|link=|L]]',
['l'] = '[[File:Wii U Icon L.png|28x28px|link=|L]]',
['palancaizquierda'] = '[[File:Wii U Icon LS.png|28x28px|link=|Left Stick]]',
['palancaizquierda'] = '[[File:Wii U Icon LS.png|28x28px|link=|Palanca derecha]]',
['ls'] = '[[File:Wii U Icon LS.png|28x28px|link=|Left Stick]]',
['ls'] = '[[File:Wii U Icon LS.png|28x28px|link=|Palanca izquierda]]',
['menos'] = '[[File:Wii U Icon Minus.png|28x28px|link=|Minus]]',
['menos'] = '[[File:Wii U Icon Minus.png|28x28px|link=|Menos]]',
['mas'] = '[[File:Wii U Icon Plus.png|28x28px|link=|Plus]]',
['mas'] = '[[File:Wii U Icon Plus.png|28x28px|link=|Más]]',
['más'] = '[[File:Wii U Icon Plus.png|28x28px|link=|Más]]',
['r'] = '[[File:Wii U Icon R.png|28x28px|link=|R]]',
['r'] = '[[File:Wii U Icon R.png|28x28px|link=|R]]',
['palancaderecha'] = '[[File:Wii U Icon RS.png|28x28px|link=|Right Stick]]',
['palancaderecha'] = '[[File:Wii U Icon RS.png|28x28px|link=|Palanca derecha]]',
['rs'] = '[[File:Wii U Icon RS.png|28x28px|link=|Right Stick]]',
['rs'] = '[[File:Wii U Icon RS.png|28x28px|link=|Palanca derecha]]',
['x'] = '[[File:Wii U Icon X.png|28x28px|link=|X]]',
['x'] = '[[File:Wii U Icon X.png|28x28px|link=|X]]',
['y'] = '[[File:Wii U Icon Y.png|28x28px|link=|Y]]',
['y'] = '[[File:Wii U Icon Y.png|28x28px|link=|Y]]',
Línea 110: Línea 111:
['a'] = {class = 'switch-icon a', title = 'A'},
['a'] = {class = 'switch-icon a', title = 'A'},
['b'] = {class = 'switch-icon b', title = 'B'},
['b'] = {class = 'switch-icon b', title = 'B'},
['captura'] = {class = 'switch-icon capture', title = 'Capture'},
['captura'] = {class = 'switch-icon capture', title = 'Captura'},
['controlleroutline'] = {class = 'switch-icon controller-outline', title = 'Pro'},
['controlleroutline'] = {class = 'switch-icon controller-outline', title = 'Controlador Pro'},
['cruceta'] = {class = 'pro-icon d-pad', title = 'D-Pad'},
['cruceta'] = {class = 'pro-icon d-pad', title = 'Cruceta'},
['crucetaabajo'] = {class = 'pro-icon d-pad-down', title = 'Cruceta abajo'},
['crucetaabajo'] = {class = 'pro-icon d-pad-down', title = 'Cruceta abajo'},
['crucetaarriba'] = {class = 'pro-icon d-pad-left', title = 'D-Pad Left'},
['crucetaizquierda'] = {class = 'pro-icon d-pad-left', title = 'Cruceta izquierda'},
['crucetaderecha'] = {class = 'pro-icon d-pad-right', title = 'D-Pad Right'},
['crucetaderecha'] = {class = 'pro-icon d-pad-right', title = 'Cruceta derecha'},
['crucetaizquierda'] = {class = 'pro-icon d-pad-up', title = 'D-Pad Up'},
['crucetaarriba'] = {class = 'pro-icon d-pad-up', title = 'Cruceta arriba'},
['girovertical'] = {class = 'pro-icon gyro-pitch', title = 'Gyro Pitch'},
['girovertical'] = {class = 'pro-icon gyro-pitch', title = 'Giro vertical'},
['girohorizontal'] = {class = 'pro-icon gyro-roll', title = 'Gyro Roll'},
['girohorizontal'] = {class = 'pro-icon gyro-roll', title = 'Giro horizontal'},
['girolateral'] = {class = 'pro-icon gyro-yaw', title = 'Gyro Yaw'},
['girolateral'] = {class = 'pro-icon gyro-yaw', title = 'Giro lateral'},
-- handheld uses an image, please change it to an icon like the others.
-- handheld uses an image, please change it to an icon like the others.
['home'] = {class = 'switch-icon home', title = 'Home'},
['home'] = {class = 'switch-icon home', title = 'Home'},
['l'] = {class = 'switch-icon l', title = 'L'},
['l'] = {class = 'switch-icon l', title = 'L'},
['palancaizquierdatodasdirecciones'] = {class = 'switch-icon left-stick-all', title = 'Left Stick All'},
['palancaizquierdatodasdirecciones'] = {class = 'switch-icon left-stick-all', title = 'Palanza izquierda en todas direcciones'},
['palancaizquierdaclick'] = {class = 'switch-icon left-stick-click', title = 'Left Stick Click'},
['palancaizquierdapresionada'] = {class = 'switch-icon left-stick-click', title = 'Palanza izquierda presionada'},
['palancaizquierdaabajo'] = {class = 'switch-icon left-stick-down', title = 'Left Stick Down'},
['palancaizquierdaabajo'] = {class = 'switch-icon left-stick-down', title = 'Palanza izquierda abajo'},
['palancaizquierdahorizontal'] = {class = 'switch-icon left-stick-left-right', title = 'Left Stick Left-Right'},
['palancaizquierdahorizontal'] = {class = 'switch-icon left-stick-left-right', title = 'Palanza izquierda horizontal'},
['palancaizquierdaizquierda'] = {class = 'switch-icon left-stick-left', title = 'Left Stick Left'},
['palancaizquierdaizquierda'] = {class = 'switch-icon left-stick-left', title = 'Palanza izquierda izquierda'},
['palancaizquierdaderecha'] = {class = 'switch-icon left-stick-right', title = 'Left Stick Right'},
['palancaizquierdaderecha'] = {class = 'switch-icon left-stick-right', title = 'Palanza izquierda derecha'},
['palancaizquierdavertical'] = {class = 'switch-icon left-stick-up-down', title = 'Left Stick Up-Down'},
['palancaizquierdavertical'] = {class = 'switch-icon left-stick-up-down', title = 'Palanza izquierda vertical'},
['palancaizquierdaarriba'] = {class = 'switch-icon left-stick-up', title = 'Left Stick Up'},
['palancaizquierdaarriba'] = {class = 'switch-icon left-stick-up', title = 'Palanza izquierda arriba'},
['palancaizquierda'] = {class = 'switch-icon left-stick', title = 'Left Stick'},
['palancaizquierda'] = {class = 'switch-icon left-stick', title = 'Palanza izquierda'},
['ls'] = {class = 'switch-icon left-stick', title = 'Left Stick'},
['ls'] = {class = 'switch-icon left-stick', title = 'Palanza izquierda'},
['menos'] = {class = 'switch-icon minus', title = 'Minus'},
['menos'] = {class = 'switch-icon minus', title = 'Menos'},
['mas'] = {class = 'switch-icon plus', title = 'Plus'},
['mas'] = {class = 'switch-icon plus', title = 'Más'},
['más'] = {class = 'switch-icon plus', title = 'Más'},
['pro'] = {class = 'pro-icon controller-outline', title = 'Pro'},
['pro'] = {class = 'pro-icon controller-outline', title = 'Pro'},
['r'] = {class = 'switch-icon r', title = 'R'},
['r'] = {class = 'switch-icon r', title = 'R'},
['palancaderechatodasdirecciones'] = {class = 'switch-icon right-stick-all', title = 'Right Stick All'},
['palancaderechatodasdirecciones'] = {class = 'switch-icon right-stick-all', title = 'Palanca derecha en todas direcciones'},
['palancaderechaclick'] = {class = 'switch-icon right-stick-click', title = 'Right Stick Click'},
['palancaderechapresionada'] = {class = 'switch-icon right-stick-click', title = 'Palanca derecha presionada'},
['palancaderechaabajo'] = {class = 'switch-icon right-stick-down', title = 'Right Stick Down'},
['palancaderechaabajo'] = {class = 'switch-icon right-stick-down', title = 'Palanca derecha abajo'},
['palancaderechahorizontal'] = {class = 'switch-icon right-stick-left-right', title = 'Right Stick Left-Right'},
['palancaderechahorizontal'] = {class = 'switch-icon right-stick-left-right', title = 'Palanca derecha horizontal'},
['palancaderechaizquierda'] = {class = 'switch-icon right-stick-left', title = 'Right Stick Left'},
['palancaderechaizquierda'] = {class = 'switch-icon right-stick-left', title = 'Palanca derecha izquierda'},
['palancaderechaderecha'] = {class = 'switch-icon right-stick-right', title = 'Right Stick Right'},
['palancaderechaderecha'] = {class = 'switch-icon right-stick-right', title = 'Palanca derecha derecha'},
['palancaderechavertical'] = {class = 'switch-icon right-stick-up-down', title = 'Right Stick Up-Down'},
['palancaderechavertical'] = {class = 'switch-icon right-stick-up-down', title = 'Palanca derecha vertical'},
['palancaderechaarriba'] = {class = 'switch-icon right-stick-up', title = 'Right Stick Up'},
['palancaderechaarriba'] = {class = 'switch-icon right-stick-up', title = 'Palanca derecha arriba'},
['palancaderecha'] = {class = 'switch-icon right-stick', title = 'Right Stick'},
['palancaderecha'] = {class = 'switch-icon right-stick', title = 'Palanca derecha'},
['rs'] = {class = 'switch-icon right-stick', title = 'Right Stick'},
['rs'] = {class = 'switch-icon right-stick', title = 'Palanca derecha'},
['sl'] = {class = 'switch-icon sl', title = 'SL'},
['sl'] = {class = 'switch-icon sl', title = 'SL'},
['sr'] = {class = 'switch-icon sr', title = 'SR'},
['sr'] = {class = 'switch-icon sr', title = 'SR'},

Revisión actual - 15:17 12 feb 2024

La documentación para este módulo puede ser creada en Módulo:Botón/doc

--[[
	This module compares and outputs a button depending on the game or system
	you've specified.
]]--

local b = {}
local result = {}
--[[
	instead of typing the system over and over, these sys- variables have
	the name of the system, so it avoids typos and needing to change the
	comparisons manually.
	
	to make this consistent, for each new system prefix the variable with
	'sys-' (e.g 'local sysDonkeyKongStation = 'DK Station')
]]--
local sysWiiU = 'Wii U'
local sysSwitch = 'Switch'

function gameToConsole(game)
	--[[
		this function returns a console depending on what you set on the 'game'
		argument. On the original template, the system and 'game' parameters were
		pretty much the same, so the list needs also to include the console name
		as well.
		
		As mentioned in the b.main() later, the inputs from the template are
		automatically made lowercase, trimmed, and removes special characters
		(such as dashes), so just make the keys like 'cometobrazil' or 'donkeykong'.
		
		don't forget the comma at the end of each item! It's like a basic JSON.
	]]--
	local c = {}
	c = {
		['wiiu'] = sysWiiU,
		['s'] = sysWiiU,
		['s1'] = sysWiiU,
		['splatoon'] = sysWiiU,
		['splatoon1'] = sysWiiU,
		
		['switch'] = sysSwitch,
		['s2'] = sysSwitch,
		['splatoon2'] = sysSwitch,
		['s3'] = sysSwitch,
		['splatoon3'] = sysSwitch,
		['octoexpansion'] = sysSwitch,
		['oe'] = sysSwitch,
		
		['splatoon 1'] = 'dummytest2',
		['dummy'] = 'dummy',
	}
	
	-- just a fallback if no argument is passed to 'game'
	if not c[game] then
		return c[sysWiiU]
	else
		return c[game]
	end
end

function buttonOutput(system, button, frame)
	--[[
		this function creates a nested comparison list. So if system, which has
		passed through gameToConsole() already (see on b.main() ), will check
		each "parent" list with the 'system' argument, then the "children" lists,
		with the 'button' argument. The 'frame' argument is just to pass the
		frames from b.main() to this function.
		
		In fact, to avoid visual bloat, you could move this function to a subpage,
		something like Module:Button/Output, because eventually this list will
		grow more and more I imagine.
	]]--
	local o = {}
	
	--[[
		personally I would recommend the staff to adapt the Wii U buttons to
		the Switch style (icons through CSS rather than images) to keep consistency.
		The Switch's handheld icon uses an image instead of an icon, and doing
		a whole if-else checking just for that would be quite annoying. Moving
		the Wii U icons to the Switch style you're doing could remove the if-else
		statement at the bottom as well.
		
		and as mentioned later in the b.main(), the button and system input from
		the template/module is automatically trimmed and lowercase. Don't worry
		about dashes or anything else.
	]]--
	o = {
		[sysWiiU] = {
			['a'] = '[[File:Wii U Icon A.png|28x28px|link=|A]]',
			['b'] = '[[File:Wii U Icon B.png|28x28px|link=|B]]',
			['cruceta'] = '[[File:Wii U Icon D-Pad.png|28x28px|link=|Cruceta]]',
			['gamepad'] = '[[File:Wii U Icon Gamepad.png|28x28px|link=|Gamepad]]',
			['home'] = '[[File:Wii U Icon Home.png|28x28px|link=|Home]]',
			['l'] = '[[File:Wii U Icon L.png|28x28px|link=|L]]',
			['palancaizquierda'] = '[[File:Wii U Icon LS.png|28x28px|link=|Palanca derecha]]',
			['ls'] = '[[File:Wii U Icon LS.png|28x28px|link=|Palanca izquierda]]',
			['menos'] = '[[File:Wii U Icon Minus.png|28x28px|link=|Menos]]',
			['mas'] = '[[File:Wii U Icon Plus.png|28x28px|link=|Más]]',
			['más'] = '[[File:Wii U Icon Plus.png|28x28px|link=|Más]]',
			['r'] = '[[File:Wii U Icon R.png|28x28px|link=|R]]',
			['palancaderecha'] = '[[File:Wii U Icon RS.png|28x28px|link=|Palanca derecha]]',
			['rs'] = '[[File:Wii U Icon RS.png|28x28px|link=|Palanca derecha]]',
			['x'] = '[[File:Wii U Icon X.png|28x28px|link=|X]]',
			['y'] = '[[File:Wii U Icon Y.png|28x28px|link=|Y]]',
			['z'] = '[[File:S_Icon_Zapfish.png|28x28px|link=|Z]]',
			['zl'] = '[[File:Wii U Icon ZL.png|28x28px|link=|ZL]]',
			['zl1'] = '[[File:S_Icon_ZR.png|28x28px|link=|ZL]]',
			['zr'] = '[[File:Wii U Icon ZR.png|28x28px|link=|ZR]]',
			['zr1'] = '[[File:S_Icon_ZL.png|28x28px|link=|ZR]]',
		},
		[sysSwitch] = {
			['a'] = {class = 'switch-icon a', title = 'A'},
			['b'] = {class = 'switch-icon b', title = 'B'},
			['captura'] = {class = 'switch-icon capture', title = 'Captura'},
			['controlleroutline'] = {class = 'switch-icon controller-outline', title = 'Controlador Pro'},
			['cruceta'] = {class = 'pro-icon d-pad', title = 'Cruceta'},
			['crucetaabajo'] = {class = 'pro-icon d-pad-down', title = 'Cruceta abajo'},
			['crucetaizquierda'] = {class = 'pro-icon d-pad-left', title = 'Cruceta izquierda'},
			['crucetaderecha'] = {class = 'pro-icon d-pad-right', title = 'Cruceta derecha'},
			['crucetaarriba'] = {class = 'pro-icon d-pad-up', title = 'Cruceta arriba'},
			['girovertical'] = {class = 'pro-icon gyro-pitch', title = 'Giro vertical'},
			['girohorizontal'] = {class = 'pro-icon gyro-roll', title = 'Giro horizontal'},
			['girolateral'] = {class = 'pro-icon gyro-yaw', title = 'Giro lateral'},
			-- handheld uses an image, please change it to an icon like the others.
			['home'] = {class = 'switch-icon home', title = 'Home'},
			['l'] = {class = 'switch-icon l', title = 'L'},
			['palancaizquierdatodasdirecciones'] = {class = 'switch-icon left-stick-all', title = 'Palanza izquierda en todas direcciones'},
			['palancaizquierdapresionada'] = {class = 'switch-icon left-stick-click', title = 'Palanza izquierda presionada'},
			['palancaizquierdaabajo'] = {class = 'switch-icon left-stick-down', title = 'Palanza izquierda abajo'},
			['palancaizquierdahorizontal'] = {class = 'switch-icon left-stick-left-right', title = 'Palanza izquierda horizontal'},
			['palancaizquierdaizquierda'] = {class = 'switch-icon left-stick-left', title = 'Palanza izquierda izquierda'},
			['palancaizquierdaderecha'] = {class = 'switch-icon left-stick-right', title = 'Palanza izquierda derecha'},
			['palancaizquierdavertical'] = {class = 'switch-icon left-stick-up-down', title = 'Palanza izquierda vertical'},
			['palancaizquierdaarriba'] = {class = 'switch-icon left-stick-up', title = 'Palanza izquierda arriba'},
			['palancaizquierda'] = {class = 'switch-icon left-stick', title = 'Palanza izquierda'},
			['ls'] = {class = 'switch-icon left-stick', title = 'Palanza izquierda'},
			['menos'] = {class = 'switch-icon minus', title = 'Menos'},
			['mas'] = {class = 'switch-icon plus', title = 'Más'},
			['más'] = {class = 'switch-icon plus', title = 'Más'},
			['pro'] = {class = 'pro-icon controller-outline', title = 'Pro'},
			['r'] = {class = 'switch-icon r', title = 'R'},
			['palancaderechatodasdirecciones'] = {class = 'switch-icon right-stick-all', title = 'Palanca derecha en todas direcciones'},
			['palancaderechapresionada'] = {class = 'switch-icon right-stick-click', title = 'Palanca derecha presionada'},
			['palancaderechaabajo'] = {class = 'switch-icon right-stick-down', title = 'Palanca derecha abajo'},
			['palancaderechahorizontal'] = {class = 'switch-icon right-stick-left-right', title = 'Palanca derecha horizontal'},
			['palancaderechaizquierda'] = {class = 'switch-icon right-stick-left', title = 'Palanca derecha izquierda'},
			['palancaderechaderecha'] = {class = 'switch-icon right-stick-right', title = 'Palanca derecha derecha'},
			['palancaderechavertical'] = {class = 'switch-icon right-stick-up-down', title = 'Palanca derecha vertical'},
			['palancaderechaarriba'] = {class = 'switch-icon right-stick-up', title = 'Palanca derecha arriba'},
			['palancaderecha'] = {class = 'switch-icon right-stick', title = 'Palanca derecha'},
			['rs'] = {class = 'switch-icon right-stick', title = 'Palanca derecha'},
			['sl'] = {class = 'switch-icon sl', title = 'SL'},
			['sr'] = {class = 'switch-icon sr', title = 'SR'},
			['x'] = {class = 'switch-icon x', title = 'X'},
			['y'] = {class = 'switch-icon y', title = 'Y'},
			['zl'] = {class = 'switch-icon zl', title = 'ZL'},
			['zr'] = {class = 'switch-icon zr', title = 'ZR'},
		},
	}
	
	local panel
	
	if system ~= sysWiiU then
		panel = '<span class="'.. o[system][button].class .. '" title="'.. o[system][button].title ..'"></span>'
		return panel
	else
		return o[system][button]
	end
end

function b.main(frame)
	-- the button input from the template
	local input = frame:getParent().args[1] or 'a'
	-- Wii U set as the default system
	local game = frame:getParent().args['game'] or frame:getParent().args[2] or sysWiiU
	
	-- removing whitespace and special characters from 'input' and 'game'
	input = mw.ustring.lower(mw.ustring.gsub(input, '[%p%c%s]', ''))
	game = gameToConsole(mw.ustring.lower(mw.ustring.gsub(game, '[%p%c%s]', '')))
	
	table.insert(result, buttonOutput(game, input, frame))
	return table.concat(result, '')
end

return b