模組:NavboxV2/EvenoddContext
外观
-- evenodd swap Context start
local EvenoddContext = {
['_type'] = "eosContext",
['evenodd'] = "",
['a'] = {},
['b'] = {},
["currentKey"] = "",
["nextKey"] = ""
}
EvenoddContext.__index = EvenoddContext
function EvenoddContext.new(context,getArgFunc)
local prefix = context.prefix
local evenodd = getArgFunc(prefix,"evenodd",nil)
local a,b = "odd", "even"
if evenodd == "odd" or evenodd == "even" then -- 奇偶锁定
a ,b = evenodd , evenodd
elseif evenodd == "off" then -- off为odd
a , b = "odd" , "odd"
elseif evenodd == "swap" then -- 对调
a , b = b , a
end
local aArr ,bArr =
{a, 'navbox-' .. a, getArgFunc(prefix, a .. "style")},
{b, 'navbox-' .. b, getArgFunc(prefix, b .. "style")}
local newObj = {}
setmetatable(newObj, EvenoddContext)
newObj.evenodd = evenodd
newObj.a = aArr
newObj.b = bArr
newObj.currentKey = "a"
newObj.nextKey = "b"
return newObj
end
function EvenoddContext:current(isNext)
local returnArr = self[self.currentKey]
if isNext == true then self.currentKey, self.nextKey = self.nextKey, self.currentKey end
return unpack(returnArr)
end
function EvenoddContext:currentOddEven()
return self:current()
end
function EvenoddContext:next()
return self:current(true)
end
function EvenoddContext:evenoddArgValue()
return self.evenodd
end
---------------------
return EvenoddContext