@quenty/animations 8.22.3-canary.99eacfd.0 → 8.22.4-canary.607f741.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
CHANGED
|
@@ -3,12 +3,20 @@
|
|
|
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
|
-
## [8.22.
|
|
6
|
+
## [8.22.4-canary.607f741.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/animations@8.22.3...@quenty/animations@8.22.4-canary.607f741.0) (2025-12-28)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/animations
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [8.22.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/animations@8.22.2...@quenty/animations@8.22.3) (2025-12-13)
|
|
7
15
|
|
|
8
16
|
|
|
9
17
|
### Bug Fixes
|
|
10
18
|
|
|
11
|
-
*
|
|
19
|
+
* Small patches to nevermore libraries ([#614](https://github.com/Quenty/NevermoreEngine/issues/614)) ([6eeb33b](https://github.com/Quenty/NevermoreEngine/commit/6eeb33b9d215d3d753a433e4c612f391bcc0d286))
|
|
12
20
|
|
|
13
21
|
|
|
14
22
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/animations",
|
|
3
|
-
"version": "8.22.
|
|
3
|
+
"version": "8.22.4-canary.607f741.0",
|
|
4
4
|
"description": "Utility methods for playing back animations on Roblox",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
"@quenty/baseobject": "10.9.0",
|
|
29
29
|
"@quenty/enumutils": "3.4.2",
|
|
30
30
|
"@quenty/humanoidanimatorutils": "3.2.0",
|
|
31
|
-
"@quenty/instanceutils": "13.20.2",
|
|
32
31
|
"@quenty/loader": "10.9.0",
|
|
33
32
|
"@quenty/maid": "3.5.0",
|
|
34
33
|
"@quenty/promise": "10.12.0",
|
|
@@ -36,10 +35,10 @@
|
|
|
36
35
|
"@quenty/rbxasset": "5.10.0",
|
|
37
36
|
"@quenty/rx": "13.20.0",
|
|
38
37
|
"@quenty/signal": "7.11.1",
|
|
39
|
-
"@quenty/valueobject": "13.21.
|
|
38
|
+
"@quenty/valueobject": "13.21.3-canary.607f741.0"
|
|
40
39
|
},
|
|
41
40
|
"publishConfig": {
|
|
42
41
|
"access": "public"
|
|
43
42
|
},
|
|
44
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "607f7418f46b85cd5843f1c5665911eb2dd7e3fb"
|
|
45
44
|
}
|
|
@@ -16,24 +16,25 @@ local Maid = require("Maid")
|
|
|
16
16
|
local Promise = require("Promise")
|
|
17
17
|
local PromiseMaidUtils = require("PromiseMaidUtils")
|
|
18
18
|
local RbxAssetUtils = require("RbxAssetUtils")
|
|
19
|
-
local RxInstanceUtils = require("RxInstanceUtils")
|
|
20
19
|
local ValueObject = require("ValueObject")
|
|
21
20
|
|
|
22
21
|
local AnimationSlotPlayer = setmetatable({}, BaseObject)
|
|
23
22
|
AnimationSlotPlayer.ClassName = "AnimationSlotPlayer"
|
|
24
23
|
AnimationSlotPlayer.__index = AnimationSlotPlayer
|
|
25
24
|
|
|
26
|
-
export type AnimationSlotPlayer =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
25
|
+
export type AnimationSlotPlayer =
|
|
26
|
+
typeof(setmetatable(
|
|
27
|
+
{} :: {
|
|
28
|
+
_maid: Maid.Maid,
|
|
29
|
+
_animationTarget: ValueObject.ValueObject<Instance>,
|
|
30
|
+
_defaultFadeTime: ValueObject.ValueObject<number>,
|
|
31
|
+
_defaultAnimationPriority: ValueObject.ValueObject<Enum.AnimationPriority>,
|
|
32
|
+
_currentAnimationTrackData: ValueObject.ValueObject<any>,
|
|
33
|
+
_currentAnimationId: ValueObject.ValueObject<string>,
|
|
34
|
+
},
|
|
35
|
+
{} :: typeof({ __index = AnimationSlotPlayer })
|
|
36
|
+
))
|
|
37
|
+
& BaseObject.BaseObject
|
|
37
38
|
|
|
38
39
|
--[=[
|
|
39
40
|
Creates a new AnimationSlotPlayer with a target to play the animation on.
|
|
@@ -255,6 +256,9 @@ function AnimationSlotPlayer.Play(
|
|
|
255
256
|
priority = priority or self._defaultAnimationPriority.Value
|
|
256
257
|
weight = weight or 1 -- We need to explicitly adjust the weight here
|
|
257
258
|
|
|
259
|
+
-- Make sure we stop our last animation fully
|
|
260
|
+
self._maid._current = nil
|
|
261
|
+
|
|
258
262
|
local topMaid = Maid.new()
|
|
259
263
|
|
|
260
264
|
local animationId = RbxAssetUtils.toRbxAssetId(id)
|
|
@@ -288,17 +292,15 @@ function AnimationSlotPlayer.Play(
|
|
|
288
292
|
end
|
|
289
293
|
end)
|
|
290
294
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
maid:
|
|
294
|
-
return not looped
|
|
295
|
-
end):Subscribe(function()
|
|
295
|
+
if not track.Looped then
|
|
296
|
+
-- This is a hack to ensure that animations stop at a set rate instead of roblox's weird default faded time
|
|
297
|
+
maid:GivePromise(AnimationPromiseUtils.promiseLoaded(track)):Then(function()
|
|
296
298
|
-- This is very very sad...
|
|
297
299
|
maid:GiveTask(task.delay(track.Length - track.TimePosition - 2 / 60, function()
|
|
298
300
|
track:Stop(fadeTime or self._defaultFadeTime.Value)
|
|
299
301
|
end))
|
|
300
|
-
end)
|
|
301
|
-
end
|
|
302
|
+
end)
|
|
303
|
+
end
|
|
302
304
|
|
|
303
305
|
maid:GiveTask(function()
|
|
304
306
|
local stopFadeTime = fadeTime or self._defaultFadeTime.Value
|
|
@@ -17,19 +17,21 @@ local AnimationTrackPlayer = setmetatable({}, BaseObject)
|
|
|
17
17
|
AnimationTrackPlayer.ClassName = "AnimationTrackPlayer"
|
|
18
18
|
AnimationTrackPlayer.__index = AnimationTrackPlayer
|
|
19
19
|
|
|
20
|
-
export type AnimationTrackPlayer =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
20
|
+
export type AnimationTrackPlayer =
|
|
21
|
+
typeof(setmetatable(
|
|
22
|
+
{} :: {
|
|
23
|
+
-- Public
|
|
24
|
+
KeyframeReached: Signal.Signal<()>,
|
|
25
|
+
|
|
26
|
+
-- Private
|
|
27
|
+
_animationTarget: ValueObject.ValueObject<Instance>,
|
|
28
|
+
_trackId: ValueObject.ValueObject<string | number>,
|
|
29
|
+
_currentTrack: ValueObject.ValueObject<AnimationTrack?>,
|
|
30
|
+
_animationPriority: ValueObject.ValueObject<number>,
|
|
31
|
+
},
|
|
32
|
+
{} :: typeof({ __index = AnimationTrackPlayer })
|
|
33
|
+
))
|
|
34
|
+
& BaseObject.BaseObject
|
|
33
35
|
|
|
34
36
|
--[=[
|
|
35
37
|
Plays an animation track in the target. Async loads the track when
|
|
@@ -20,14 +20,16 @@ local StudioRigAnimator = setmetatable({}, BaseObject)
|
|
|
20
20
|
StudioRigAnimator.ClassName = "StudioRigAnimator"
|
|
21
21
|
StudioRigAnimator.__index = StudioRigAnimator
|
|
22
22
|
|
|
23
|
-
export type StudioRigAnimator =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
23
|
+
export type StudioRigAnimator =
|
|
24
|
+
typeof(setmetatable(
|
|
25
|
+
{} :: {
|
|
26
|
+
_animator: Animator?,
|
|
27
|
+
_obj: Animator | Humanoid,
|
|
28
|
+
_lastTime: number,
|
|
29
|
+
},
|
|
30
|
+
{} :: typeof({ __index = StudioRigAnimator })
|
|
31
|
+
))
|
|
32
|
+
& BaseObject.BaseObject
|
|
31
33
|
|
|
32
34
|
--[=[
|
|
33
35
|
Constructs a new rig animator which will play the animations for the lifetime of the
|