@quenty/radial-image 9.20.0-canary.ae8d76d.0 → 9.20.1-canary.4ea661c.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 +9 -1
- package/package.json +8 -8
- package/src/Client/RadialImage.lua +66 -70
- package/src/Client/RadialImage.story.lua +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
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
|
-
|
|
6
|
+
## [9.20.1-canary.4ea661c.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/radial-image@9.20.0...@quenty/radial-image@9.20.1-canary.4ea661c.0) (2025-08-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/radial-image
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [9.20.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/radial-image@9.19.3...@quenty/radial-image@9.20.0) (2025-05-10)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @quenty/radial-image
|
|
9
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/radial-image",
|
|
3
|
-
"version": "9.20.
|
|
3
|
+
"version": "9.20.1-canary.4ea661c.0",
|
|
4
4
|
"description": "Quenty's radial image system",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
"Quenty"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@quenty/baseobject": "10.
|
|
30
|
-
"@quenty/blend": "12.19.
|
|
31
|
-
"@quenty/loader": "10.
|
|
32
|
-
"@quenty/maid": "3.
|
|
29
|
+
"@quenty/baseobject": "10.9.0",
|
|
30
|
+
"@quenty/blend": "12.19.1-canary.4ea661c.0",
|
|
31
|
+
"@quenty/loader": "10.9.0",
|
|
32
|
+
"@quenty/maid": "3.5.0",
|
|
33
33
|
"@quenty/math": "2.7.3",
|
|
34
|
-
"@quenty/rx": "13.18.
|
|
35
|
-
"@quenty/valueobject": "13.18.
|
|
34
|
+
"@quenty/rx": "13.18.1-canary.4ea661c.0",
|
|
35
|
+
"@quenty/valueobject": "13.18.1-canary.4ea661c.0"
|
|
36
36
|
},
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "4ea661c3fb52b8a3843c7d879c98c1de8a733798"
|
|
41
41
|
}
|
|
@@ -6,9 +6,9 @@ local require = require(script.Parent.loader).load(script)
|
|
|
6
6
|
|
|
7
7
|
local BaseObject = require("BaseObject")
|
|
8
8
|
local Blend = require("Blend")
|
|
9
|
+
local Maid = require("Maid")
|
|
9
10
|
local Math = require("Math")
|
|
10
11
|
local Observable = require("Observable")
|
|
11
|
-
local Maid = require("Maid")
|
|
12
12
|
local ValueObject = require("ValueObject")
|
|
13
13
|
|
|
14
14
|
local RadialImage = setmetatable({}, BaseObject)
|
|
@@ -166,17 +166,17 @@ end
|
|
|
166
166
|
|
|
167
167
|
function RadialImage:_render()
|
|
168
168
|
return Blend.New "Frame" {
|
|
169
|
-
Name = "RadialImage"
|
|
170
|
-
Size = UDim2.new(1, 0, 1, 0)
|
|
171
|
-
BackgroundTransparency = 1
|
|
172
|
-
[Blend.OnChange("AbsoluteSize")] = self._absoluteSize
|
|
169
|
+
Name = "RadialImage",
|
|
170
|
+
Size = UDim2.new(1, 0, 1, 0),
|
|
171
|
+
BackgroundTransparency = 1,
|
|
172
|
+
[Blend.OnChange("AbsoluteSize")] = self._absoluteSize,
|
|
173
173
|
|
|
174
174
|
Blend.New "UIAspectRatioConstraint" {
|
|
175
|
-
AspectRatio = 1
|
|
176
|
-
}
|
|
175
|
+
AspectRatio = 1,
|
|
176
|
+
},
|
|
177
177
|
|
|
178
178
|
Blend.New "Frame" {
|
|
179
|
-
Name = "LeftFrame"
|
|
179
|
+
Name = "LeftFrame",
|
|
180
180
|
Size = Blend.Computed(self._absoluteSize, function(size)
|
|
181
181
|
-- hack: ensures when we're 24.5 wide or something we don't end
|
|
182
182
|
-- up with a split in the middle.
|
|
@@ -187,16 +187,16 @@ function RadialImage:_render()
|
|
|
187
187
|
else
|
|
188
188
|
return UDim2.new(0.5, 0, 1, 0)
|
|
189
189
|
end
|
|
190
|
-
end)
|
|
191
|
-
Position = UDim2.new(0, 0, 0, 0)
|
|
192
|
-
BackgroundTransparency = 1
|
|
193
|
-
ClipsDescendants = true
|
|
190
|
+
end),
|
|
191
|
+
Position = UDim2.new(0, 0, 0, 0),
|
|
192
|
+
BackgroundTransparency = 1,
|
|
193
|
+
ClipsDescendants = true,
|
|
194
194
|
|
|
195
195
|
Blend.New "ImageLabel" {
|
|
196
|
-
Size = UDim2.new(2, 0, 1, 0)
|
|
197
|
-
BackgroundTransparency = 1
|
|
198
|
-
ImageTransparency = self._transparency
|
|
199
|
-
Image = self._image
|
|
196
|
+
Size = UDim2.new(2, 0, 1, 0),
|
|
197
|
+
BackgroundTransparency = 1,
|
|
198
|
+
ImageTransparency = self._transparency,
|
|
199
|
+
Image = self._image,
|
|
200
200
|
|
|
201
201
|
Blend.New "UIGradient" {
|
|
202
202
|
Transparency = Blend.Computed(
|
|
@@ -204,45 +204,43 @@ function RadialImage:_render()
|
|
|
204
204
|
self._disabledTransparency,
|
|
205
205
|
function(enabled, disabled)
|
|
206
206
|
return NumberSequence.new({
|
|
207
|
-
NumberSequenceKeypoint.new(0, disabled)
|
|
208
|
-
NumberSequenceKeypoint.new(0.5, disabled)
|
|
209
|
-
NumberSequenceKeypoint.new(0.5001, enabled)
|
|
210
|
-
NumberSequenceKeypoint.new(1, enabled)
|
|
211
|
-
})
|
|
212
|
-
end);
|
|
213
|
-
Color = Blend.Computed(
|
|
214
|
-
self._enabledColor,
|
|
215
|
-
self._disabledColor,
|
|
216
|
-
function(enabled, disabled)
|
|
217
|
-
return ColorSequence.new({
|
|
218
|
-
ColorSequenceKeypoint.new(0, disabled);
|
|
219
|
-
ColorSequenceKeypoint.new(0.5, disabled);
|
|
220
|
-
ColorSequenceKeypoint.new(0.5001, enabled);
|
|
221
|
-
ColorSequenceKeypoint.new(1, enabled);
|
|
207
|
+
NumberSequenceKeypoint.new(0, disabled),
|
|
208
|
+
NumberSequenceKeypoint.new(0.5, disabled),
|
|
209
|
+
NumberSequenceKeypoint.new(0.5001, enabled),
|
|
210
|
+
NumberSequenceKeypoint.new(1, enabled),
|
|
222
211
|
})
|
|
223
|
-
end
|
|
212
|
+
end
|
|
213
|
+
),
|
|
214
|
+
Color = Blend.Computed(self._enabledColor, self._disabledColor, function(enabled, disabled)
|
|
215
|
+
return ColorSequence.new({
|
|
216
|
+
ColorSequenceKeypoint.new(0, disabled),
|
|
217
|
+
ColorSequenceKeypoint.new(0.5, disabled),
|
|
218
|
+
ColorSequenceKeypoint.new(0.5001, enabled),
|
|
219
|
+
ColorSequenceKeypoint.new(1, enabled),
|
|
220
|
+
})
|
|
221
|
+
end),
|
|
224
222
|
Rotation = Blend.Computed(self._percent, function(percent)
|
|
225
223
|
local mapped = math.clamp(Math.map(percent, 0.5, 1, 0, 1), 0, 1)
|
|
226
|
-
return mapped*180
|
|
227
|
-
end)
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
224
|
+
return mapped * 180
|
|
225
|
+
end),
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
},
|
|
231
229
|
|
|
232
230
|
Blend.New "Frame" {
|
|
233
|
-
Name = "RightFrame"
|
|
234
|
-
Size = UDim2.new(0.5, 0, 1, 0)
|
|
235
|
-
Position = UDim2.new(0.5, 0, 0, 0)
|
|
236
|
-
BackgroundTransparency = 1
|
|
237
|
-
ClipsDescendants = true
|
|
231
|
+
Name = "RightFrame",
|
|
232
|
+
Size = UDim2.new(0.5, 0, 1, 0),
|
|
233
|
+
Position = UDim2.new(0.5, 0, 0, 0),
|
|
234
|
+
BackgroundTransparency = 1,
|
|
235
|
+
ClipsDescendants = true,
|
|
238
236
|
|
|
239
237
|
Blend.New "ImageLabel" {
|
|
240
|
-
Size = UDim2.new(2, 0, 1, 0)
|
|
241
|
-
AnchorPoint = Vector2.new(1, 0)
|
|
242
|
-
Position = UDim2.new(1, 0, 0, 0)
|
|
243
|
-
BackgroundTransparency = 1
|
|
244
|
-
ImageTransparency = self._transparency
|
|
245
|
-
Image = self._image
|
|
238
|
+
Size = UDim2.new(2, 0, 1, 0),
|
|
239
|
+
AnchorPoint = Vector2.new(1, 0),
|
|
240
|
+
Position = UDim2.new(1, 0, 0, 0),
|
|
241
|
+
BackgroundTransparency = 1,
|
|
242
|
+
ImageTransparency = self._transparency,
|
|
243
|
+
Image = self._image,
|
|
246
244
|
|
|
247
245
|
Blend.New "UIGradient" {
|
|
248
246
|
Transparency = Blend.Computed(
|
|
@@ -250,31 +248,29 @@ function RadialImage:_render()
|
|
|
250
248
|
self._disabledTransparency,
|
|
251
249
|
function(enabled, disabled)
|
|
252
250
|
return NumberSequence.new({
|
|
253
|
-
NumberSequenceKeypoint.new(0, disabled)
|
|
254
|
-
NumberSequenceKeypoint.new(0.5, disabled)
|
|
255
|
-
NumberSequenceKeypoint.new(0.5001, enabled)
|
|
256
|
-
NumberSequenceKeypoint.new(1, enabled)
|
|
257
|
-
})
|
|
258
|
-
end);
|
|
259
|
-
Color = Blend.Computed(
|
|
260
|
-
self._enabledColor,
|
|
261
|
-
self._disabledColor,
|
|
262
|
-
function(enabled, disabled)
|
|
263
|
-
return ColorSequence.new({
|
|
264
|
-
ColorSequenceKeypoint.new(0, disabled);
|
|
265
|
-
ColorSequenceKeypoint.new(0.5, disabled);
|
|
266
|
-
ColorSequenceKeypoint.new(0.5001, enabled);
|
|
267
|
-
ColorSequenceKeypoint.new(1, enabled);
|
|
251
|
+
NumberSequenceKeypoint.new(0, disabled),
|
|
252
|
+
NumberSequenceKeypoint.new(0.5, disabled),
|
|
253
|
+
NumberSequenceKeypoint.new(0.5001, enabled),
|
|
254
|
+
NumberSequenceKeypoint.new(1, enabled),
|
|
268
255
|
})
|
|
269
|
-
end
|
|
256
|
+
end
|
|
257
|
+
),
|
|
258
|
+
Color = Blend.Computed(self._enabledColor, self._disabledColor, function(enabled, disabled)
|
|
259
|
+
return ColorSequence.new({
|
|
260
|
+
ColorSequenceKeypoint.new(0, disabled),
|
|
261
|
+
ColorSequenceKeypoint.new(0.5, disabled),
|
|
262
|
+
ColorSequenceKeypoint.new(0.5001, enabled),
|
|
263
|
+
ColorSequenceKeypoint.new(1, enabled),
|
|
264
|
+
})
|
|
265
|
+
end),
|
|
270
266
|
Rotation = Blend.Computed(self._percent, function(percent)
|
|
271
267
|
local mapped = math.clamp(Math.map(percent, 0, 0.5, 0, 1), 0, 1)
|
|
272
|
-
return 180 + mapped*180
|
|
273
|
-
end)
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
268
|
+
return 180 + mapped * 180
|
|
269
|
+
end),
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
},
|
|
277
273
|
}
|
|
278
274
|
end
|
|
279
275
|
|
|
280
|
-
return RadialImage
|
|
276
|
+
return RadialImage
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
@class RadialImage.story
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local require =
|
|
5
|
+
local require =
|
|
6
|
+
require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
6
7
|
|
|
7
8
|
local RunService = game:GetService("RunService")
|
|
8
9
|
|
|
@@ -23,8 +24,8 @@ return function(target)
|
|
|
23
24
|
maid:GiveTask(RunService.RenderStepped:Connect(function()
|
|
24
25
|
-- radialImage:SetPercent((os.clock()/5) % 1)
|
|
25
26
|
|
|
26
|
-
local scale = (1 + math.sin((os.clock()/5)*math.pi*2))/2
|
|
27
|
-
radialImage.Gui.Size = UDim2.fromOffset(math.round(scale*90), math.round(scale*90))
|
|
27
|
+
local scale = (1 + math.sin((os.clock() / 5) * math.pi * 2)) / 2
|
|
28
|
+
radialImage.Gui.Size = UDim2.fromOffset(math.round(scale * 90), math.round(scale * 90))
|
|
28
29
|
end))
|
|
29
30
|
|
|
30
31
|
radialImage.Gui.Parent = target
|
|
@@ -32,4 +33,4 @@ return function(target)
|
|
|
32
33
|
return function()
|
|
33
34
|
maid:DoCleaning()
|
|
34
35
|
end
|
|
35
|
-
end
|
|
36
|
+
end
|