打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
登录后可编辑和发表评论。

Module:Vocalist Colors:修订间差异

来自Vocawiki
删除的内容 添加的内容
Zhoumou留言 | 贡献
// Edit via InPageEdit
哈里布莱留言 | 贡献
// Edit via InPageEdit
 
第331行: 第331行:
end
end


local colorMap = {}
-- 查找数组中是否包含指定值(不区分大小写)
local nameMap = {}
local function arrayContains(array, value)

for _, v in ipairs(array) do
for index, entry in ipairs(colors) do
if string.upper(v) == value then
local color = string.upper(entry[1])
return true
local mainName = entry[2]
if not colorMap[color] then
colorMap[color] = {index, mainName}
end
for i = 2, #entry do
local vocalName = normalizeSinger(entry[i])
if vocalName ~= "" then
if not nameMap[vocalName] then
nameMap[vocalName] = {index, color}
end
end
end
end
end
return false
end
end


第346行: 第357行:


function module.colorToName(color, withIndex)
function module.colorToName(color, withIndex)
local data = colorMap[color]
for index, entry in ipairs(colors) do
if color == string.upper(entry[1]) then
if data then
return withIndex and {index, entry[2]} or entry[2] -- 返回主名称
return withIndex and data or data[2]
end
end
end
return defaultSinger
return defaultSinger
第360行: 第370行:
end
end


local data = nameMap[name]
for index, entry in ipairs(colors) do
if data then
local vocalNames = {}
for i = 2, #entry do
return withIndex and data or data[2]
table.insert(vocalNames, normalizeSinger(entry[i]))
end
if arrayContains(vocalNames, name) then
local color = string.upper(entry[1])
return withIndex and {index, color} or color -- 返回颜色
end
end
end
return defaultColor
return defaultColor
end
end
第387行: 第392行:
end
end
end
end



return module
return module