Module:Utilities: Difference between revisions

Sur (talk | contribs)
m get_slot_color colors can now have prefix/postfix removed, allowing for dynamically editing the color
Sur (talk | contribs)
m introduced a bug; temp reverting. Undo revision 13806 by Sur (talk)
Tag: Undo
Line 102: Line 102:
end
end


-- Hash for color values
local slots_data = {
local slot_colors = {
["Weapon"] = {
["Weapon"] = {
hex = "c97a03",
hex = "#c97a03",
rgb = "201,122,3",
rgb = "rgb(201, 122, 3)",
hsl = "35,97%,40%",
hsl = "hsl(35, 97%, 40%)",
cmyk = "0%,39%,98%,21%"
cmyk = "cmyk(0%, 39%, 98%, 21%)"
},
},
["Armor"] = {
["Armor"] = {
hex = "659818",
hex = "#659818",
rgb = "101,152,24",
rgb = "rgb(101, 152, 24)",
hsl = "82,73%,34%",
hsl = "hsl(82, 73%, 34%)",
cmyk = "34%,0%,84%,40%"
cmyk = "cmyk(34%, 0%, 84%, 40%)"
},
},
["Tech"] = {
["Tech"] = {
hex = "8b56b4",
hex = "#8b56b4",
rgb = "139,86,180",
rgb = "rgb(139, 86, 180)",
hsl = "274,36%,52%",
hsl = "hsl(274, 36%, 52%)",
cmyk = "23%,52%,0%,29%"
cmyk = "cmyk(23%, 52%, 0%, 29%)"
}
}
}
}
 
function p.get_slot_color(slot, color_format, debug_mode)
-- Hash for format configuration
local color_formats = {
hex = {
prefix = "#",
postfix = ""
},
rgb = {
prefix = "rgb(",
postfix = ")"
},
hsl = {
prefix = "hsl(",
postfix = ")"
},
cmyk = {
prefix = "cmyk(",
postfix = ")"
}
}
function p.get_slot_color(slot, color_format, no_wrap, debug_mode)
if type(slot) == 'table' and slot.args then
if type(slot) == 'table' and slot.args then
frame = slot
frame = slot
slot = frame.args[1]
slot = frame.args[1]
color_format = frame.args[2]
color_format = frame.args[2]
no_wrap = frame.args[3]
debug_mode = frame.args["debug_mode"]
debug_mode = frame.args["debug_mode"]
end
end
-- Validate arguments
-- Validate arguments
if slot == nil then return "'slot' parameter must be provided" end
if slot == nil then  
if color_format == nil then color_format = "hex" end
return "'slot' parameter must be provided"
if no_wrap == nil then no_wrap = false end
end
if debug_mode == nil then debug_mode = false end
if color_format == nil then  
color_format = "hex"
end
local slot_data = slot_colors[slot]
local slot_data = slots_data[slot]
if slot_data == nil then return "slot '" .. slot .. "' was not in slots_data map" end
if slot_data == nil then
return "slot '" .. slot .. "' was not in slots_data map"
end
--Retrieve the color
--Retrieve the color
Line 167: Line 149:
end
end
-- Add prefix and postfix wrapping
-- Return result
if no_wrap then
if debug_mode == nil then
-- Retrieve prefix and postfix
debug_mode = false
prefix = color_formats[color_format]['prefix']
postfix = color_formats[color_format]['postfix']
-- Add to color
color = prefix .. color .. postfix
end
end
-- Return result
if debug_mode then
if debug_mode then
return " " .. color
return " " .. color