@quenty/highlight 10.21.2 → 10.21.3-canary.550.afa1b3b.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/package.json +18 -18
- package/src/Client/AnimatedHighlight.lua +57 -27
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [10.21.3-canary.550.afa1b3b.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/highlight@10.21.2...@quenty/highlight@10.21.3-canary.550.afa1b3b.0) (2025-04-10)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/highlight
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [10.21.2](https://github.com/Quenty/NevermoreEngine/compare/@quenty/highlight@10.21.0...@quenty/highlight@10.21.2) (2025-04-07)
|
|
7
15
|
|
|
8
16
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/highlight",
|
|
3
|
-
"version": "10.21.
|
|
3
|
+
"version": "10.21.3-canary.550.afa1b3b.0",
|
|
4
4
|
"description": "Animated highlight system for the Roblox highlight object",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -26,25 +26,25 @@
|
|
|
26
26
|
"Quenty"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@quenty/baseobject": "
|
|
30
|
-
"@quenty/basicpane": "
|
|
31
|
-
"@quenty/blend": "
|
|
32
|
-
"@quenty/ducktype": "
|
|
33
|
-
"@quenty/enumutils": "
|
|
34
|
-
"@quenty/instanceutils": "
|
|
35
|
-
"@quenty/loader": "
|
|
36
|
-
"@quenty/maid": "
|
|
37
|
-
"@quenty/math": "
|
|
38
|
-
"@quenty/observablecollection": "
|
|
39
|
-
"@quenty/rx": "
|
|
40
|
-
"@quenty/selectionutils": "
|
|
41
|
-
"@quenty/signal": "
|
|
42
|
-
"@quenty/statestack": "
|
|
43
|
-
"@quenty/table": "
|
|
44
|
-
"@quenty/valueobject": "
|
|
29
|
+
"@quenty/baseobject": "10.8.3-canary.550.afa1b3b.0",
|
|
30
|
+
"@quenty/basicpane": "13.17.3-canary.550.afa1b3b.0",
|
|
31
|
+
"@quenty/blend": "12.18.3-canary.550.afa1b3b.0",
|
|
32
|
+
"@quenty/ducktype": "5.8.4-canary.550.afa1b3b.0",
|
|
33
|
+
"@quenty/enumutils": "3.4.2",
|
|
34
|
+
"@quenty/instanceutils": "13.17.3-canary.550.afa1b3b.0",
|
|
35
|
+
"@quenty/loader": "10.8.3-canary.550.afa1b3b.0",
|
|
36
|
+
"@quenty/maid": "3.4.3-canary.550.afa1b3b.0",
|
|
37
|
+
"@quenty/math": "2.7.3",
|
|
38
|
+
"@quenty/observablecollection": "12.20.3-canary.550.afa1b3b.0",
|
|
39
|
+
"@quenty/rx": "13.17.3-canary.550.afa1b3b.0",
|
|
40
|
+
"@quenty/selectionutils": "8.17.3-canary.550.afa1b3b.0",
|
|
41
|
+
"@quenty/signal": "7.10.3-canary.550.afa1b3b.0",
|
|
42
|
+
"@quenty/statestack": "14.18.3-canary.550.afa1b3b.0",
|
|
43
|
+
"@quenty/table": "3.7.4-canary.550.afa1b3b.0",
|
|
44
|
+
"@quenty/valueobject": "13.17.3-canary.550.afa1b3b.0"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
|
47
47
|
"access": "public"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "afa1b3b99b862698c3ab46009497bd507150867c"
|
|
50
50
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
@client
|
|
3
4
|
@class AnimatedHighlight
|
|
@@ -14,13 +15,32 @@ local EnumUtils = require("EnumUtils")
|
|
|
14
15
|
local Maid = require("Maid")
|
|
15
16
|
local Signal = require("Signal")
|
|
16
17
|
local DuckTypeUtils = require("DuckTypeUtils")
|
|
18
|
+
local _Observable = require("Observable")
|
|
17
19
|
|
|
18
20
|
local AnimatedHighlight = setmetatable({}, BasicPane)
|
|
19
21
|
AnimatedHighlight.ClassName = "AnimatedHighlight"
|
|
20
22
|
AnimatedHighlight.__index = AnimatedHighlight
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
export type AnimatedHighlight = typeof(setmetatable(
|
|
25
|
+
{} :: {
|
|
26
|
+
-- Public
|
|
27
|
+
Gui: Highlight,
|
|
28
|
+
Destroying: Signal.Signal<()>,
|
|
29
|
+
|
|
30
|
+
-- Private
|
|
31
|
+
_adornee: ValueObject.ValueObject<Instance?>,
|
|
32
|
+
_highlightDepthMode: ValueObject.ValueObject<Enum.HighlightDepthMode>,
|
|
33
|
+
_fillColorSpring: SpringObject.SpringObject<Color3>,
|
|
34
|
+
_outlineColorSpring: SpringObject.SpringObject<Color3>,
|
|
35
|
+
_fillTransparencySpring: SpringObject.SpringObject<number>,
|
|
36
|
+
_outlineTransparencySpring: SpringObject.SpringObject<number>,
|
|
37
|
+
_percentVisible: SpringObject.SpringObject<number>,
|
|
38
|
+
},
|
|
39
|
+
{} :: typeof({ __index = AnimatedHighlight })
|
|
40
|
+
)) & BasicPane.BasicPane
|
|
41
|
+
|
|
42
|
+
function AnimatedHighlight.new(): AnimatedHighlight
|
|
43
|
+
local self: AnimatedHighlight = setmetatable(BasicPane.new() :: any, AnimatedHighlight)
|
|
24
44
|
|
|
25
45
|
self._adornee = self._maid:Add(ValueObject.new(nil))
|
|
26
46
|
self._highlightDepthMode = self._maid:Add(ValueObject.new(Enum.HighlightDepthMode.AlwaysOnTop))
|
|
@@ -45,7 +65,7 @@ function AnimatedHighlight.new()
|
|
|
45
65
|
end)
|
|
46
66
|
|
|
47
67
|
self._maid:GiveTask(self:_render():Subscribe(function(highlight)
|
|
48
|
-
self.Gui = highlight
|
|
68
|
+
self.Gui = highlight :: any
|
|
49
69
|
end))
|
|
50
70
|
|
|
51
71
|
return self
|
|
@@ -69,13 +89,13 @@ end
|
|
|
69
89
|
|
|
70
90
|
@param depthMode Enum.HighlightDepthMode
|
|
71
91
|
]=]
|
|
72
|
-
function AnimatedHighlight
|
|
92
|
+
function AnimatedHighlight.SetHighlightDepthMode(self: AnimatedHighlight, depthMode: Enum.HighlightDepthMode)
|
|
73
93
|
assert(EnumUtils.isOfType(Enum.HighlightDepthMode, depthMode))
|
|
74
94
|
|
|
75
95
|
self._highlightDepthMode.Value = depthMode
|
|
76
96
|
end
|
|
77
97
|
|
|
78
|
-
function AnimatedHighlight
|
|
98
|
+
function AnimatedHighlight.SetPropertiesFrom(self: AnimatedHighlight, sourceHighlight: AnimatedHighlight)
|
|
79
99
|
assert(AnimatedHighlight.isAnimatedHighlight(sourceHighlight), "Bad AnimatedHighlight")
|
|
80
100
|
|
|
81
101
|
self._highlightDepthMode.Value = sourceHighlight._highlightDepthMode.Value
|
|
@@ -99,27 +119,27 @@ function AnimatedHighlight:SetPropertiesFrom(sourceHighlight)
|
|
|
99
119
|
transferSpringValue(self._percentVisible, sourceHighlight._percentVisible)
|
|
100
120
|
end
|
|
101
121
|
|
|
102
|
-
function AnimatedHighlight
|
|
122
|
+
function AnimatedHighlight.SetTransparencySpeed(self: AnimatedHighlight, speed: number): ()
|
|
103
123
|
assert(type(speed) == "number", "Bad speed")
|
|
104
124
|
|
|
105
125
|
self._fillTransparencySpring.Speed = speed
|
|
106
126
|
self._outlineTransparencySpring.Speed = speed
|
|
107
127
|
end
|
|
108
128
|
|
|
109
|
-
function AnimatedHighlight
|
|
129
|
+
function AnimatedHighlight.SetColorSpeed(self: AnimatedHighlight, speed: number): ()
|
|
110
130
|
assert(type(speed) == "number", "Bad speed")
|
|
111
131
|
|
|
112
132
|
self._fillColorSpring.Speed = speed
|
|
113
133
|
self._outlineColorSpring.Speed = speed
|
|
114
134
|
end
|
|
115
135
|
|
|
116
|
-
function AnimatedHighlight
|
|
136
|
+
function AnimatedHighlight.SetSpeed(self: AnimatedHighlight, speed: number): ()
|
|
117
137
|
assert(type(speed) == "number", "Bad speed")
|
|
118
138
|
|
|
119
139
|
self._percentVisible.Speed = speed
|
|
120
140
|
end
|
|
121
141
|
|
|
122
|
-
function AnimatedHighlight
|
|
142
|
+
function AnimatedHighlight.Finish(self: AnimatedHighlight, doNotAnimate: boolean?, callback: () -> ())
|
|
123
143
|
if self._percentVisible.p == 0 and self._percentVisible.v == 0 then
|
|
124
144
|
callback()
|
|
125
145
|
return
|
|
@@ -158,7 +178,7 @@ end
|
|
|
158
178
|
@param color Color3
|
|
159
179
|
@param doNotAnimate boolean?
|
|
160
180
|
]=]
|
|
161
|
-
function AnimatedHighlight
|
|
181
|
+
function AnimatedHighlight.SetFillColor(self: AnimatedHighlight, color: Color3, doNotAnimate: boolean?): ()
|
|
162
182
|
assert(typeof(color) == "Color3", "Bad color")
|
|
163
183
|
|
|
164
184
|
self._fillColorSpring:SetTarget(color, doNotAnimate)
|
|
@@ -170,7 +190,7 @@ end
|
|
|
170
190
|
@param color Color3
|
|
171
191
|
@param doNotAnimate boolean?
|
|
172
192
|
]=]
|
|
173
|
-
function AnimatedHighlight
|
|
193
|
+
function AnimatedHighlight.SetOutlineColor(self: AnimatedHighlight, color: Color3, doNotAnimate: boolean?): ()
|
|
174
194
|
assert(typeof(color) == "Color3", "Bad color")
|
|
175
195
|
|
|
176
196
|
self._outlineColorSpring:SetTarget(color, doNotAnimate)
|
|
@@ -179,7 +199,7 @@ end
|
|
|
179
199
|
--[=[
|
|
180
200
|
Sets the adornee
|
|
181
201
|
]=]
|
|
182
|
-
function AnimatedHighlight
|
|
202
|
+
function AnimatedHighlight.SetAdornee(self: AnimatedHighlight, adornee: Instance?)
|
|
183
203
|
assert(typeof(adornee) == "Instance" or adornee == nil, "Bad adornee")
|
|
184
204
|
|
|
185
205
|
self._adornee.Value = adornee
|
|
@@ -189,7 +209,7 @@ end
|
|
|
189
209
|
Gets the adornee
|
|
190
210
|
@return Instance?
|
|
191
211
|
]=]
|
|
192
|
-
function AnimatedHighlight
|
|
212
|
+
function AnimatedHighlight.GetAdornee(self: AnimatedHighlight): Instance?
|
|
193
213
|
return self._adornee.Value
|
|
194
214
|
end
|
|
195
215
|
|
|
@@ -199,7 +219,11 @@ end
|
|
|
199
219
|
@param outlineTransparency number
|
|
200
220
|
@param doNotAnimate boolean?
|
|
201
221
|
]=]
|
|
202
|
-
function AnimatedHighlight
|
|
222
|
+
function AnimatedHighlight.SetOutlineTransparency(
|
|
223
|
+
self: AnimatedHighlight,
|
|
224
|
+
outlineTransparency: number,
|
|
225
|
+
doNotAnimate: boolean?
|
|
226
|
+
): ()
|
|
203
227
|
assert(type(outlineTransparency) == "number", "Bad outlineTransparency")
|
|
204
228
|
|
|
205
229
|
self._outlineTransparencySpring.Target = outlineTransparency
|
|
@@ -215,7 +239,11 @@ end
|
|
|
215
239
|
@param fillTransparency number
|
|
216
240
|
@param doNotAnimate boolean?
|
|
217
241
|
]=]
|
|
218
|
-
function AnimatedHighlight
|
|
242
|
+
function AnimatedHighlight.SetFillTransparency(
|
|
243
|
+
self: AnimatedHighlight,
|
|
244
|
+
fillTransparency: number,
|
|
245
|
+
doNotAnimate: boolean?
|
|
246
|
+
): ()
|
|
219
247
|
assert(type(fillTransparency) == "number", "Bad fillTransparency")
|
|
220
248
|
|
|
221
249
|
self._fillTransparencySpring.Target = fillTransparency
|
|
@@ -225,28 +253,30 @@ function AnimatedHighlight:SetFillTransparency(fillTransparency: number, doNotAn
|
|
|
225
253
|
end
|
|
226
254
|
end
|
|
227
255
|
|
|
228
|
-
function AnimatedHighlight
|
|
229
|
-
return Blend.New
|
|
230
|
-
Name = "AnimatedHighlight"
|
|
231
|
-
Archivable = false
|
|
232
|
-
DepthMode = self._highlightDepthMode
|
|
233
|
-
FillColor = self._fillColorSpring:ObserveRenderStepped()
|
|
234
|
-
OutlineColor = self._outlineColorSpring:ObserveRenderStepped()
|
|
256
|
+
function AnimatedHighlight._render(self: AnimatedHighlight): _Observable.Observable<Highlight>
|
|
257
|
+
return Blend.New("Highlight")({
|
|
258
|
+
Name = "AnimatedHighlight",
|
|
259
|
+
Archivable = false,
|
|
260
|
+
DepthMode = self._highlightDepthMode,
|
|
261
|
+
FillColor = self._fillColorSpring:ObserveRenderStepped(),
|
|
262
|
+
OutlineColor = self._outlineColorSpring:ObserveRenderStepped(),
|
|
235
263
|
FillTransparency = Blend.Computed(
|
|
236
264
|
self._fillTransparencySpring:ObserveRenderStepped(),
|
|
237
265
|
self._percentVisible:ObserveRenderStepped(),
|
|
238
266
|
function(transparency, visible)
|
|
239
267
|
return Math.map(visible, 0, 1, 1, transparency)
|
|
240
|
-
end
|
|
268
|
+
end
|
|
269
|
+
),
|
|
241
270
|
OutlineTransparency = Blend.Computed(
|
|
242
271
|
self._outlineTransparencySpring:ObserveRenderStepped(),
|
|
243
272
|
self._percentVisible:ObserveRenderStepped(),
|
|
244
273
|
function(transparency, visible)
|
|
245
274
|
return Math.map(visible, 0, 1, 1, transparency)
|
|
246
|
-
end
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
275
|
+
end
|
|
276
|
+
),
|
|
277
|
+
Adornee = self._adornee,
|
|
278
|
+
Parent = self._adornee,
|
|
279
|
+
}) :: any
|
|
250
280
|
end
|
|
251
281
|
|
|
252
282
|
return AnimatedHighlight
|