モジュール:有無
このモジュールについての説明文ページを モジュール:有無/doc に作成できます
local p = {}
local BG_COLORS = {
OFF="#FFF",
N64="rgb(151,114,19)",
DX="#705DA8",
X="#FE6061",
FOR3DS='#9A1424',
FORWIIU='#0096C8',
SP='repeating-linear-gradient(-45deg, #4d4d4d, #4d4d4d 1px, #000 1px, #000 4px)',
UNKNOWN='#008000'
}
local FONT_COLORS = {
OFF="#808080",
ON="#FFF"
}
local BORDER_COLORS = {
ON="transparent",
OFF="#ccc"
}
local COLORS_OFF = {
BG=BG_COLORS.OFF,
FONT=FONT_COLORS.OFF,
BORDER=BORDER_COLORS.OFF
}
local COLORS_UNKNOWN = {
BG=BG_COLORS.UNKNOWN,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local COLORS_64 = {
BG=BG_COLORS.N64,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local COLORS_DX = {
BG=BG_COLORS.DX,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local COLORS_X = {
BG=BG_COLORS.X,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local COLORS_3DS = {
BG=BG_COLORS.FOR3DS,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local COLORS_WIIU = {
BG=BG_COLORS.FORWIIU,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local COLORS_FOR_00 = {
BG_LEFT=BG_COLORS.OFF,
FONT_LEFT=FONT_COLORS.OFF,
BORDER_LEFT=BORDER_COLORS.OFF,
BG_RIGHT=BG_COLORS.OFF,
FONT_RIGHT=FONT_COLORS.OFF,
BORDER_RIGHT=BORDER_COLORS.OFF
}
local COLORS_FOR_01 = {
BG_LEFT=BG_COLORS.OFF,
FONT_LEFT=FONT_COLORS.OFF,
BORDER_LEFT=BORDER_COLORS.ON,
BG_RIGHT=BG_COLORS.FORWIIU,
FONT_RIGHT=FONT_COLORS.ON,
BORDER_RIGHT=BG_COLORS.FORWIIU
}
local COLORS_FOR_10 = {
BG_LEFT=BG_COLORS.FOR3DS,
FONT_LEFT=FONT_COLORS.ON,
BORDER_LEFT=BG_COLORS.FOR3DS,
BG_RIGHT=BG_COLORS.OFF,
FONT_RIGHT=FONT_COLORS.OFF,
BORDER_RIGHT=BORDER_COLORS.ON
}
local COLORS_FOR_11 = {
BG_LEFT=BG_COLORS.FOR3DS,
FONT_LEFT=FONT_COLORS.ON,
BORDER_LEFT=BG_COLORS.FOR3DS,
BG_RIGHT=BG_COLORS.FORWIIU,
FONT_RIGHT=FONT_COLORS.ON,
BORDER_RIGHT=BG_COLORS.FORWIIU
}
local COLORS_SP = {
BG=BG_COLORS.SP,
FONT=FONT_COLORS.ON,
BORDER=BORDER_COLORS.ON
}
local TITLES = {
N64='64',
DX='DX',
X='X',
FOR3DS='3DS',
FORWIIU='WiiU',
FOR='for',
SP='SP'
}
local function buildHtmlDivided(colors, textLeft, textRight)
local a = {
'<span style="white-space:nowrap;">',
'<span ',
'style="',
'display:inline-block;',
'bottom:1px;',
'position:relative;',
'line-height:1.5em;',
'text-align:center;',
'font-size:70%;',
'font-weight:bold;',
'width:1.75em;',
'border:solid 1px ' .. colors.BORDER_LEFT .. ';',
'border-radius:1em 0 0 1em;',
'background:' .. colors.BG_LEFT .. ';',
'color:' .. colors.FONT_LEFT .. ';',
'"',
'>',
textLeft,
'</span>',
'<span ',
'style="',
'display:inline-block;',
'bottom:1px;',
'position:relative;',
'line-height:1.5em;',
'text-align:center;',
'font-size:70%;',
'font-weight:bold;',
'width:1.75em;',
'border:solid 1px ' .. colors.BORDER_RIGHT .. ';',
'border-radius:0 1em 1em 0;',
'margin-right:3px;',
'background:' .. colors.BG_RIGHT .. ';',
'color:' .. colors.FONT_RIGHT .. ';',
'"',
'>',
textRight,
'</span>',
'</span>'
}
return table.concat(a, "")
end
local function buildHtmlOne(colors, text)
local a = {
'<span style="white-space:nowrap;">',
'<span ',
'style="',
'display:inline-block;',
'bottom:1px;',
'position:relative;',
'line-height:1.5em;',
'text-align:center;',
'font-size:70%;',
'font-weight:bold;',
'width:3.5em;',
'border:solid 1px ' .. colors.BORDER .. ';',
'border-radius:1em;',
'margin-right:3px;',
'background:' .. colors.BG .. ';',
'color:' .. colors.FONT .. ';',
'"',
'>',
text,
'</span>',
'</span>'
}
return table.concat(a, "")
end
function getHtmlDevided(on)
if on == '0/0' then
return buildHtmlDivided(COLORS_FOR_00, '3', 'U')
elseif on == '0/1' then
return buildHtmlDivided(COLORS_FOR_01, '3', 'U')
elseif on == '1/0' then
return buildHtmlDivided(COLORS_FOR_10, '3', 'U')
elseif on == '1/1' then
return buildHtmlDivided(COLORS_FOR_11, '3', 'U')
else
return buildHtmlDivided(COLORS_FOR_00, '3', 'U')
end
end
function getHtmlOneOn(title)
if title == TITLES.N64 then
return buildHtmlOne(COLORS_64, TITLES.N64)
elseif title == TITLES.DX then
return buildHtmlOne(COLORS_DX, TITLES.DX)
elseif title == TITLES.X then
return buildHtmlOne(COLORS_X, TITLES.X)
elseif title == TITLES.FOR3DS then
return buildHtmlOne(COLORS_3DS, TITLES.FOR3DS)
elseif title == TITLES.FORWIIU then
return buildHtmlOne(COLORS_WIIU, TITLES.FORWIIU)
elseif title == TITLES.SP then
return buildHtmlOne(COLORS_SP, TITLES.SP)
else
return buildHtmlOne(COLORS_UNKNOWN, '?')
end
end
function getHtmlOneOff(title)
local t = ''
if title == TITLES.N64 then
t = TITLES.N64
elseif title == TITLES.DX then
t = TITLES.DX
elseif title == TITLES.X then
t = TITLES.X
elseif title == TITLES.FOR3DS then
t = TITLES.FOR3DS
elseif title == TITLES.FORWIIU then
t = TITLES.FORWIIU
elseif title == TITLES.SP then
t = TITLES.SP
else
t = '?'
end
return buildHtmlOne(COLORS_OFF, t)
end
--[[
frame.args.title 64|DX|X|3DS|WiiU|for|SP
frame.args.on 0|1|0/0|0/1|1/0|1/1
]]--
function p.main(frame)
local a = frame.args
if a.title == TITLES.FOR then
return getHtmlDevided(a.on)
end
if a.on == '0' then
return getHtmlOneOff(a.title)
end
return getHtmlOneOn(a.title)
end
return p