You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.0 KiB
31 lines
1.0 KiB
|
3 years ago
|
local String = {}
|
||
|
|
|
||
|
|
-- Lua API
|
||
|
|
local string_format = string.format
|
||
|
|
|
||
|
|
function String:Colorize(floatColorRGB)
|
||
|
|
-- Literal copy/paste from the legacy codebase; streamline later (as needed)
|
||
|
|
local function colorize(s, color)
|
||
|
|
if color and s then
|
||
|
|
return string_format(
|
||
|
|
"|cff%02x%02x%02x%s|r",
|
||
|
|
(color.r or 1) * 255,
|
||
|
|
(color.g or 1) * 255,
|
||
|
|
(color.b or 1) * 255,
|
||
|
|
s
|
||
|
|
)
|
||
|
|
else
|
||
|
|
return s
|
||
|
|
end
|
||
|
|
end
|
||
|
|
|
||
|
|
-- The legacy code exclusively uses this call pattern: colorize(string, color)
|
||
|
|
-- This means we can use self as the Lua string instead of the String table and it will still work (even if it's hacky)
|
||
|
|
-- BUT! Beware, if more methods are added to the String table we can't access them via self.OtherFunction in here
|
||
|
|
-- When this happens, it will be time to refactor all the calls to colorize... (Fun times, because they're everywhere)
|
||
|
|
-- Some day this should definitely be done... but today is not that day :D
|
||
|
|
return colorize(self, floatColorRGB)
|
||
|
|
end
|
||
|
|
|
||
|
|
Rarity.Utils.String = String
|