1
+ --- @meta Color
2
+ --- @author GhostglowDev
3
+
4
+ --- @class Color
5
+ local color = {}
6
+
7
+ local d = require " ghostutil.Debug"
8
+
9
+ color .WHITE = " 0xFFFFFFFF"
10
+ color .GRAY = " 0xFF808080"
11
+ color .BLACK = " 0xFF000000"
12
+
13
+ color .RED = " 0xFFFF0000"
14
+ color .BLUE = " 0xFF0000FF"
15
+ color .GREEN = " 0xFF008000"
16
+ color .PINK = " 0xFFFFC0CB"
17
+ color .MAGENTA = " 0xFFFF00FF"
18
+ color .PURPLE = " 0xFF800080"
19
+ color .LIME = " 0xFF00FF00"
20
+ color .YELLOW = ' 0xFFFFFF00'
21
+ color .ORANGE = " 0xFFFFA500"
22
+ color .CYAN = " 0xFF00FFFF"
23
+
24
+ --- Sets an object color to the target value
25
+ --- @param spr string Object
26
+ --- @param val string The target color. (RRGGBB )
27
+ color .setSpriteColor = function (spr , val )
28
+ if spr ~= nil then setProperty (spr .. " .color" , getColorFromHex (val or " FFFFFF" )) else
29
+ d .error (" color.setSpriteColor:1: Expected a value" )
30
+ end
31
+ end
32
+
33
+ --- Sets an object's color transform to the target values
34
+ --- @param spr string Object
35
+ --- @param multipliers table<number> Values : { redMult , blueMult , greenMult , alphaMult }
36
+ --- @param offsets table<number> Values : { redOffset , blueOffset , greenOffset , alphaOffset }
37
+ color .setSpriteColorTransform = function (spr , multipliers , offsets )
38
+ local isLuaSprite = luaSpriteExists (spr )
39
+
40
+ if spr ~= nil then runHaxeCode (" game." .. (isLuaSprite and " getLuaObject(" .. spr .. " )" or spr ).. " .setColorTransform(" .. (multipliers [1 ] or 0 ).. " , " .. (multipliers [2 ] or 0 ).. " , " .. (multipliers [3 ] or 0 ).. " , " .. (multipliers [4 ] or 0 ).. " , " .. (offsets [1 ] or 0 ).. " , " .. (offsets [2 ] or 0 ).. " , " .. (offsets [3 ] or 0 ).. " , " .. (offsets [4 ] or 0 ).. " );" ) else
41
+ d .error (" color.setSpriteColorTransform:1: Expected a value" )
42
+ end
43
+
44
+ for i = 1 , 4 do
45
+ if multipliers [i ] == nil then d .warning (" color.setSpriteColorTransform:2[" .. i .. " ]: Given an empty value, nil -> 0" ) end
46
+ if offsets [i ] == nil then d .warning (" color.setSpriteColorTransform:3[" .. i .. " ]: Given an empty value, nil -> 0" ) end
47
+ end
48
+ end
49
+
50
+ --- Returns an object color
51
+ --- @param spr string
52
+ --- @return string
53
+ --- @nodiscard
54
+ color .getSpriteColor = function (spr )
55
+ if spr ~= nil then
56
+ return getProperty (spr .. " .color" )
57
+ end
58
+
59
+ d .error (" color.getSpriteColor:1: Expected a value" )
60
+ return " "
61
+ end
62
+
63
+ --- Converts RGB to the Hex format (RRGGBB).
64
+ --- @param r integer
65
+ --- @param g integer
66
+ --- @param b integer
67
+ --- @return string
68
+ --- @nodiscard
69
+ color .rgbToHex = function (r , g , b )
70
+ if r == nil or g == nil or b == nil then
71
+ d .warning (" color.rgbToHex: Given an empty value. nil -> 255" )
72
+ end
73
+
74
+ return string.format (" %02X%02X%02X" , (r or 255 ), (g or 255 ), (b or 255 ))
75
+ end
76
+
77
+ return color
0 commit comments