@quenty/radial-image 9.19.4-canary.559.9f38947.0 → 9.20.0-canary.0a5db80.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 +1 -9
- package/package.json +8 -8
- package/src/Client/RadialImage.lua +70 -66
- package/src/Client/RadialImage.story.lua +4 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,15 +3,7 @@
|
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @quenty/radial-image
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## [9.19.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/radial-image@9.19.2...@quenty/radial-image@9.19.3) (2025-04-10)
|
|
6
|
+
# [9.20.0-canary.0a5db80.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/radial-image@9.19.2...@quenty/radial-image@9.20.0-canary.0a5db80.0) (2025-05-10)
|
|
15
7
|
|
|
16
8
|
**Note:** Version bump only for package @quenty/radial-image
|
|
17
9
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/radial-image",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.20.0-canary.0a5db80.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.
|
|
31
|
-
"@quenty/loader": "10.
|
|
32
|
-
"@quenty/maid": "3.
|
|
29
|
+
"@quenty/baseobject": "10.9.0-canary.0a5db80.0",
|
|
30
|
+
"@quenty/blend": "12.19.0-canary.0a5db80.0",
|
|
31
|
+
"@quenty/loader": "10.9.0-canary.0a5db80.0",
|
|
32
|
+
"@quenty/maid": "3.5.0-canary.0a5db80.0",
|
|
33
33
|
"@quenty/math": "2.7.3",
|
|
34
|
-
"@quenty/rx": "13.
|
|
35
|
-
"@quenty/valueobject": "13.
|
|
34
|
+
"@quenty/rx": "13.18.0-canary.0a5db80.0",
|
|
35
|
+
"@quenty/valueobject": "13.18.0-canary.0a5db80.0"
|
|
36
36
|
},
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public"
|
|
39
39
|
},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "0a5db8004684dc3e76fd5944599a22602d48cfa9"
|
|
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")
|
|
10
9
|
local Math = require("Math")
|
|
11
10
|
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,43 +204,45 @@ 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)
|
|
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);
|
|
211
222
|
})
|
|
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),
|
|
223
|
+
end);
|
|
222
224
|
Rotation = Blend.Computed(self._percent, function(percent)
|
|
223
225
|
local mapped = math.clamp(Math.map(percent, 0.5, 1, 0, 1), 0, 1)
|
|
224
|
-
return mapped
|
|
225
|
-
end)
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
226
|
+
return mapped*180
|
|
227
|
+
end);
|
|
228
|
+
};
|
|
229
|
+
};
|
|
230
|
+
};
|
|
229
231
|
|
|
230
232
|
Blend.New "Frame" {
|
|
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
|
|
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;
|
|
236
238
|
|
|
237
239
|
Blend.New "ImageLabel" {
|
|
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
|
|
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;
|
|
244
246
|
|
|
245
247
|
Blend.New "UIGradient" {
|
|
246
248
|
Transparency = Blend.Computed(
|
|
@@ -248,29 +250,31 @@ function RadialImage:_render()
|
|
|
248
250
|
self._disabledTransparency,
|
|
249
251
|
function(enabled, disabled)
|
|
250
252
|
return NumberSequence.new({
|
|
251
|
-
NumberSequenceKeypoint.new(0, disabled)
|
|
252
|
-
NumberSequenceKeypoint.new(0.5, disabled)
|
|
253
|
-
NumberSequenceKeypoint.new(0.5001, enabled)
|
|
254
|
-
NumberSequenceKeypoint.new(1, enabled)
|
|
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);
|
|
255
268
|
})
|
|
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),
|
|
269
|
+
end);
|
|
266
270
|
Rotation = Blend.Computed(self._percent, function(percent)
|
|
267
271
|
local mapped = math.clamp(Math.map(percent, 0, 0.5, 0, 1), 0, 1)
|
|
268
|
-
return 180 + mapped
|
|
269
|
-
end)
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
272
|
+
return 180 + mapped*180
|
|
273
|
+
end);
|
|
274
|
+
};
|
|
275
|
+
};
|
|
276
|
+
};
|
|
273
277
|
}
|
|
274
278
|
end
|
|
275
279
|
|
|
276
|
-
return RadialImage
|
|
280
|
+
return RadialImage
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
@class RadialImage.story
|
|
3
3
|
]]
|
|
4
4
|
|
|
5
|
-
local require =
|
|
6
|
-
require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
5
|
+
local require = require(game:GetService("ServerScriptService"):FindFirstChild("LoaderUtils", true).Parent).bootstrapStory(script)
|
|
7
6
|
|
|
8
7
|
local RunService = game:GetService("RunService")
|
|
9
8
|
|
|
@@ -24,8 +23,8 @@ return function(target)
|
|
|
24
23
|
maid:GiveTask(RunService.RenderStepped:Connect(function()
|
|
25
24
|
-- radialImage:SetPercent((os.clock()/5) % 1)
|
|
26
25
|
|
|
27
|
-
local scale = (1 + math.sin((os.clock()
|
|
28
|
-
radialImage.Gui.Size = UDim2.fromOffset(math.round(scale
|
|
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))
|
|
29
28
|
end))
|
|
30
29
|
|
|
31
30
|
radialImage.Gui.Parent = target
|
|
@@ -33,4 +32,4 @@ return function(target)
|
|
|
33
32
|
return function()
|
|
34
33
|
maid:DoCleaning()
|
|
35
34
|
end
|
|
36
|
-
end
|
|
35
|
+
end
|