@quenty/timedtween 7.18.0 → 7.18.1

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,6 +3,17 @@
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.18.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/timedtween@7.18.0...@quenty/timedtween@7.18.1) (2025-04-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Add types to packages ([2374fb2](https://github.com/Quenty/NevermoreEngine/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
12
+
13
+
14
+
15
+
16
+
6
17
  # [7.18.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/timedtween@7.17.2...@quenty/timedtween@7.18.0) (2025-04-02)
7
18
 
8
19
  **Note:** Version bump only for package @quenty/timedtween
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/timedtween",
3
- "version": "7.18.0",
3
+ "version": "7.18.1",
4
4
  "description": "Linear timed tweening model",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -25,19 +25,19 @@
25
25
  "Quenty"
26
26
  ],
27
27
  "dependencies": {
28
- "@quenty/basicpane": "^13.17.0",
29
- "@quenty/blend": "^12.18.0",
30
- "@quenty/loader": "^10.8.0",
31
- "@quenty/maid": "^3.4.0",
32
- "@quenty/math": "^2.7.1",
33
- "@quenty/promise": "^10.10.1",
34
- "@quenty/promisemaid": "^5.10.1",
35
- "@quenty/rx": "^13.17.0",
36
- "@quenty/steputils": "^3.5.3",
37
- "@quenty/valueobject": "^13.17.0"
28
+ "@quenty/basicpane": "^13.17.1",
29
+ "@quenty/blend": "^12.18.1",
30
+ "@quenty/loader": "^10.8.1",
31
+ "@quenty/maid": "^3.4.1",
32
+ "@quenty/math": "^2.7.2",
33
+ "@quenty/promise": "^10.10.2",
34
+ "@quenty/promisemaid": "^5.10.2",
35
+ "@quenty/rx": "^13.17.1",
36
+ "@quenty/steputils": "^3.5.4",
37
+ "@quenty/valueobject": "^13.17.1"
38
38
  },
39
39
  "publishConfig": {
40
40
  "access": "public"
41
41
  },
42
- "gitHead": "e8ea56930e65322fcffc05a1556d5df988068f0b"
42
+ "gitHead": "78c3ac0ab08dd18085b6e6e6e4f745e76ed99f68"
43
43
  }
@@ -1,3 +1,4 @@
1
+ --!strict
1
2
  --[=[
2
3
  Tween that is a specific time, useful for countdowns and other things
3
4
 
@@ -15,26 +16,55 @@ local StepUtils = require("StepUtils")
15
16
  local Observable = require("Observable")
16
17
  local Maid = require("Maid")
17
18
  local Promise = require("Promise")
19
+ local _Signal = require("Signal")
18
20
 
19
21
  local TimedTween = setmetatable({}, BasicPane)
20
22
  TimedTween.ClassName = "TimedTween"
21
23
  TimedTween.__index = TimedTween
22
24
 
25
+ type TimedTweenState = {
26
+ p0: number,
27
+ p1: number,
28
+ t0: number,
29
+ t1: number,
30
+ }
31
+
32
+ type ComputedState = {
33
+ p: number,
34
+ v: number,
35
+ rtime: number,
36
+ }
37
+
38
+ export type TimedTween = typeof(setmetatable(
39
+ {} :: {
40
+ _maid: Maid.Maid,
41
+ _state: ValueObject.ValueObject<TimedTweenState>,
42
+ _transitionTime: ValueObject.ValueObject<number>,
43
+
44
+ -- From BasicPane
45
+ IsVisible: (self: TimedTween) -> boolean,
46
+ SetVisible: (self: TimedTween, isVisible: boolean, doNotAnimate: boolean?) -> (),
47
+ VisibleChanged: _Signal.Signal<boolean, boolean>,
48
+ Destroy: (self: TimedTween) -> (),
49
+ },
50
+ { __index = TimedTween }
51
+ ))
52
+
23
53
  --[=[
24
54
  Timed transition module
25
55
 
26
56
  @param transitionTime number? -- Optional
27
57
  @return TimedTween
28
58
  ]=]
29
- function TimedTween.new(transitionTime)
30
- local self = setmetatable(BasicPane.new(), TimedTween)
59
+ function TimedTween.new(transitionTime: number?): TimedTween
60
+ local self: TimedTween = setmetatable(BasicPane.new() :: any, TimedTween)
31
61
 
32
62
  self._transitionTime = self._maid:Add(ValueObject.new(0.15, "number"))
33
63
  self._state = self._maid:Add(ValueObject.new({
34
- p0 = 0;
35
- p1 = 0;
36
- t0 = 0;
37
- t1 = 0;
64
+ p0 = 0,
65
+ p1 = 0,
66
+ t0 = 0,
67
+ t1 = 0,
38
68
  }))
39
69
 
40
70
  if transitionTime then
@@ -59,7 +89,7 @@ end
59
89
  @param transitionTime number | Observable<number>
60
90
  @return MaidTask
61
91
  ]=]
62
- function TimedTween:SetTransitionTime(transitionTime)
92
+ function TimedTween.SetTransitionTime(self: TimedTween, transitionTime: number | Observable.Observable<number>)
63
93
  return self._transitionTime:Mount(transitionTime)
64
94
  end
65
95
 
@@ -68,7 +98,7 @@ end
68
98
 
69
99
  @return number
70
100
  ]=]
71
- function TimedTween:GetTransitionTime()
101
+ function TimedTween.GetTransitionTime(self: TimedTween): number
72
102
  return self._transitionTime.Value
73
103
  end
74
104
 
@@ -77,7 +107,7 @@ end
77
107
 
78
108
  @return Observable<number>
79
109
  ]=]
80
- function TimedTween:ObserveTransitionTime()
110
+ function TimedTween.ObserveTransitionTime(self: TimedTween): Observable.Observable<number>
81
111
  return self._transitionTime:Observe()
82
112
  end
83
113
 
@@ -86,7 +116,7 @@ end
86
116
 
87
117
  @return Observable<number>
88
118
  ]=]
89
- function TimedTween:ObserveRenderStepped()
119
+ function TimedTween.ObserveRenderStepped(self: TimedTween): Observable.Observable<number>
90
120
  return self:ObserveOnSignal(RunService.RenderStepped)
91
121
  end
92
122
 
@@ -96,7 +126,7 @@ end
96
126
  @param signal Signal
97
127
  @return Observable<number>
98
128
  ]=]
99
- function TimedTween:ObserveOnSignal(signal)
129
+ function TimedTween.ObserveOnSignal(self: TimedTween, signal: RBXScriptSignal): Observable.Observable<number>
100
130
  return Observable.new(function(sub)
101
131
  local maid = Maid.new()
102
132
 
@@ -111,7 +141,7 @@ function TimedTween:ObserveOnSignal(signal)
111
141
  startAnimate()
112
142
 
113
143
  return maid
114
- end)
144
+ end) :: any
115
145
  end
116
146
 
117
147
  --[=[
@@ -119,7 +149,7 @@ end
119
149
 
120
150
  @return Observable<number>
121
151
  ]=]
122
- function TimedTween:Observe()
152
+ function TimedTween.Observe(self: TimedTween): Observable.Observable<number>
123
153
  return self:ObserveOnSignal(RunService.RenderStepped)
124
154
  end
125
155
 
@@ -128,9 +158,9 @@ end
128
158
 
129
159
  @return Promise
130
160
  ]=]
131
- function TimedTween:PromiseFinished()
161
+ function TimedTween.PromiseFinished(self: TimedTween): Promise.Promise<()>
132
162
  local initState = self:_computeState(os.clock())
133
- if initState.rtime <= 0 then
163
+ if initState.rtime <= 0 then
134
164
  return Promise.resolved()
135
165
  end
136
166
 
@@ -150,45 +180,45 @@ function TimedTween:PromiseFinished()
150
180
  end)
151
181
  end))
152
182
 
153
- self._maid[promise] = maid
183
+ self._maid[promise :: any] = maid
154
184
 
155
185
  promise:Finally(function()
156
- self._maid[promise] = nil
186
+ self._maid[promise :: any] = nil
157
187
  end)
158
188
 
159
189
  maid:GiveTask(function()
160
- self._maid[promise] = nil
190
+ self._maid[promise :: any] = nil
161
191
  end)
162
192
  return promise
163
193
  end
164
194
 
165
- function TimedTween:_updateState(doNotAnimate)
195
+ function TimedTween._updateState(self: TimedTween, doNotAnimate: boolean?): ()
166
196
  local transitionTime = self._transitionTime.Value
167
- local target = self:IsVisible() and 1 or 0;
197
+ local target = self:IsVisible() and 1 or 0
168
198
 
169
199
  local now = os.clock()
170
- local computed = self:_computeState(now)
200
+ local computed: ComputedState = self:_computeState(now)
171
201
  local p0 = computed.p
172
202
 
173
203
  local remainingDist = target - p0
174
204
  if doNotAnimate then
175
205
  self._state.Value = {
176
- p0 = target;
177
- p1 = target;
178
- t0 = now;
179
- t1 = now;
206
+ p0 = target,
207
+ p1 = target,
208
+ t0 = now,
209
+ t1 = now,
180
210
  }
181
211
  else
182
212
  self._state.Value = {
183
- p0 = p0;
184
- p1 = target;
185
- t0 = now;
186
- t1 = now + Math.map(math.abs(remainingDist), 0, 1, 0, transitionTime);
213
+ p0 = p0,
214
+ p1 = target,
215
+ t0 = now,
216
+ t1 = now + Math.map(math.abs(remainingDist), 0, 1, 0, transitionTime),
187
217
  }
188
218
  end
189
219
  end
190
220
 
191
- function TimedTween:_computeState(now)
221
+ function TimedTween._computeState(self: TimedTween, now: number): ComputedState
192
222
  local state = self._state.Value
193
223
  local p
194
224