Module:Sandbox/Shahar: Difference between revisions

From Inkipedia, the Splatoon wiki
(testing module button to resolve script error)
(Blanked the page)
Tag: Blanking
 
Line 1: Line 1:
--[[
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]]',
['dpad'] = '[[File:Wii U Icon D-Pad.png|28x28px|link=|D-Pad]]',
['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]]',
['leftstick'] = '[[File:Wii U Icon LS.png|28x28px|link=|Left Stick]]',
['ls'] = '[[File:Wii U Icon LS.png|28x28px|link=|Left Stick]]',
['minus'] = '[[File:Wii U Icon Minus.png|28x28px|link=|Minus]]',
['plus'] = '[[File:Wii U Icon Plus.png|28x28px|link=|Plus]]',
['r'] = '[[File:Wii U Icon R.png|28x28px|link=|R]]',
['rightstick'] = '[[File:Wii U Icon RS.png|28x28px|link=|Right Stick]]',
['rs'] = '[[File:Wii U Icon RS.png|28x28px|link=|Right Stick]]',
['x'] = '[[File:Wii U Icon X.png|28x28px|link=|X]]',
['y'] = '[[File:Wii U Icon Y.png|28x28px|link=|Y]]',
['z'] = frame:preprocess('{{Icon|S|Zapfish}}'),
['zl'] = '[[File:Wii U Icon ZL.png|28x28px|link=|ZL]]',
['zl1'] = frame:preprocess('{{Icon|S|ZL}}'),
['zr'] = '[[File:Wii U Icon ZR.png|28x28px|link=|ZR]]',
['zr1'] = frame:preprocess('{{Icon|S|ZR}}'),
},
[sysSwitch] = {
['a'] = {class = 'switch-icon a', title = 'A'},
['b'] = {class = 'switch-icon b', title = 'B'},
['capture'] = {class = 'switch-icon capture', title = 'Capture'},
['controlleroutline'] = {class = 'switch-icon controller-outline', title = 'Pro'},
['dpad'] = {class = 'pro-icon d-pad', title = 'D-Pad'},
['dpaddown'] = {class = 'pro-icon d-pad-down', title = 'D-Pad Down'},
['dpadleft'] = {class = 'pro-icon d-pad-left', title = 'D-Pad Left'},
['dpadright'] = {class = 'pro-icon d-pad-right', title = 'D-Pad Right'},
['dpadup'] = {class = 'pro-icon d-pad-up', title = 'D-Pad Up'},
['gyropitch'] = {class = 'pro-icon gyro-pitch', title = 'Gyro Pitch'},
['gyroroll'] = {class = 'pro-icon gyro-roll', title = 'Gyro Roll'},
['gyroyaw'] = {class = 'pro-icon gyro-yaw', title = 'Gyro Yaw'},
-- 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'},
['leftstickall'] = {class = 'switch-icon left-stick-all', title = 'Left Stick All'},
['leftstickclick'] = {class = 'switch-icon left-stick-click', title = 'Left Stick Click'},
['leftstickdown'] = {class = 'switch-icon left-stick-down', title = 'Left Stick Down'},
['leftstickleftright'] = {class = 'switch-icon left-stick-left-right', title = 'Left Stick Left-Right'},
['leftstickleft'] = {class = 'switch-icon left-stick-left', title = 'Left Stick Left'},
['leftstickright'] = {class = 'switch-icon left-stick-right', title = 'Left Stick Right'},
['leftstickupdown'] = {class = 'switch-icon left-stick-up-down', title = 'Left Stick Up-Down'},
['leftstickup'] = {class = 'switch-icon left-stick-up', title = 'Left Stick Up'},
['leftstick'] = {class = 'switch-icon left-stick', title = 'Left Stick'},
['ls'] = {class = 'switch-icon left-stick', title = 'Left Stick'},
['minus'] = {class = 'switch-icon minus', title = 'Minus'},
['plus'] = {class = 'switch-icon plus', title = 'Plus'},
['pro'] = {class = 'pro-icon controller-outline', title = 'Pro'},
['r'] = {class = 'switch-icon r', title = 'R'},
['rightstickall'] = {class = 'switch-icon right-stick-all', title = 'Right Stick All'},
['rightstickclick'] = {class = 'switch-icon right-stick-click', title = 'Right Stick Click'},
['rightstickdown'] = {class = 'switch-icon right-stick-down', title = 'Right Stick Down'},
['rightstickleftright'] = {class = 'switch-icon right-stick-left-right', title = 'Right Stick Left-Right'},
['rightstickleft'] = {class = 'switch-icon right-stick-left', title = 'Right Stick Left'},
['rightstickright'] = {class = 'switch-icon right-stick-right', title = 'Right Stick Right'},
['rightstickupdown'] = {class = 'switch-icon right-stick-up-down', title = 'Right Stick Up-Down'},
['rightstickup'] = {class = 'switch-icon right-stick-up', title = 'Right Stick Up'},
['rightstick'] = {class = 'switch-icon right-stick', title = 'Right Stick'},
['rs'] = {class = 'switch-icon right-stick', title = 'Right Stick'},
['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

Latest revision as of 10:33, 4 October 2023

Documentation for this module may be created at Module:Sandbox/Shahar/doc