roblox-opencode 1.0.0 → 1.0.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/README.md +112 -122
- package/commands/setup-game.md +108 -108
- package/commands/sync-check.md +53 -53
- package/core/roblox-core.md +93 -93
- package/dist/server.js +189 -167
- package/package.json +35 -35
- package/skills/roblox-analytics/SKILL.md +277 -277
- package/skills/roblox-analytics/references/event-batcher.luau +75 -75
- package/skills/roblox-animation-vfx/SKILL.md +1325 -1325
- package/skills/roblox-architecture/SKILL.md +863 -863
- package/skills/roblox-architecture/references/combat-systems.md +1381 -1381
- package/skills/roblox-code-review/SKILL.md +686 -686
- package/skills/roblox-data/SKILL.md +889 -889
- package/skills/roblox-data/references/inventory-systems.md +1729 -1729
- package/skills/roblox-debug/SKILL.md +98 -98
- package/skills/roblox-gui/SKILL.md +1103 -1103
- package/skills/roblox-gui-fusion/SKILL.md +150 -150
- package/skills/roblox-gui-fusion/references/inventory.luau +427 -427
- package/skills/roblox-gui-fusion/references/settings-menu.luau +579 -579
- package/skills/roblox-gui-fusion/references/shop.luau +411 -411
- package/skills/roblox-luau-mastery/SKILL.md +1519 -1519
- package/skills/roblox-monetization/SKILL.md +1084 -1084
- package/skills/roblox-monetization/references/process-receipt.luau +131 -131
- package/skills/roblox-networking/SKILL.md +669 -669
- package/skills/roblox-networking/references/remote-validator.luau +193 -193
- package/skills/roblox-publish-checklist/SKILL.md +127 -127
- package/skills/roblox-runtime/SKILL.md +753 -753
- package/skills/roblox-sharp-edges/SKILL.md +294 -294
- package/skills/roblox-sync/SKILL.md +126 -126
- package/skills/roblox-testing/SKILL.md +943 -943
- package/skills/roblox-tooling/SKILL.md +149 -149
- package/vendor/LICENSES/ProfileStore-LICENSE +201 -201
- package/vendor/LICENSES/RbxUtil-LICENSE +7 -7
- package/vendor/LICENSES/promise-LICENSE +20 -20
- package/vendor/LICENSES/t-LICENSE +21 -21
- package/vendor/LICENSES/testez-LICENSE +200 -200
- package/vendor/README.md +83 -83
- package/vendor/fusion/Animation/ExternalTime.luau +83 -83
- package/vendor/fusion/Animation/Spring.luau +321 -321
- package/vendor/fusion/Animation/Stopwatch.luau +127 -127
- package/vendor/fusion/Animation/Tween.luau +187 -187
- package/vendor/fusion/Animation/getTweenDuration.luau +27 -27
- package/vendor/fusion/Animation/getTweenRatio.luau +47 -47
- package/vendor/fusion/Animation/lerpType.luau +163 -163
- package/vendor/fusion/Animation/packType.luau +99 -99
- package/vendor/fusion/Animation/springCoefficients.luau +80 -80
- package/vendor/fusion/Animation/unpackType.luau +102 -102
- package/vendor/fusion/Colour/Oklab.luau +70 -70
- package/vendor/fusion/Colour/sRGB.luau +54 -54
- package/vendor/fusion/External.luau +167 -167
- package/vendor/fusion/ExternalDebug.luau +69 -69
- package/vendor/fusion/Graph/Observer.luau +113 -113
- package/vendor/fusion/Graph/castToGraph.luau +28 -28
- package/vendor/fusion/Graph/change.luau +80 -80
- package/vendor/fusion/Graph/depend.luau +32 -32
- package/vendor/fusion/Graph/evaluate.luau +55 -55
- package/vendor/fusion/Instances/Attribute.luau +57 -57
- package/vendor/fusion/Instances/AttributeChange.luau +46 -46
- package/vendor/fusion/Instances/AttributeOut.luau +63 -63
- package/vendor/fusion/Instances/Child.luau +21 -21
- package/vendor/fusion/Instances/Children.luau +147 -147
- package/vendor/fusion/Instances/Hydrate.luau +32 -32
- package/vendor/fusion/Instances/New.luau +52 -52
- package/vendor/fusion/Instances/OnChange.luau +49 -49
- package/vendor/fusion/Instances/OnEvent.luau +53 -53
- package/vendor/fusion/Instances/Out.luau +69 -69
- package/vendor/fusion/Instances/applyInstanceProps.luau +148 -148
- package/vendor/fusion/Instances/defaultProps.luau +194 -194
- package/vendor/fusion/LICENSE +21 -21
- package/vendor/fusion/Logging/formatError.luau +48 -48
- package/vendor/fusion/Logging/messages.luau +51 -51
- package/vendor/fusion/Logging/parseError.luau +24 -24
- package/vendor/fusion/Memory/checkLifetime.luau +133 -133
- package/vendor/fusion/Memory/deriveScope.luau +23 -23
- package/vendor/fusion/Memory/deriveScopeImpl.luau +44 -44
- package/vendor/fusion/Memory/doCleanup.luau +78 -78
- package/vendor/fusion/Memory/innerScope.luau +33 -33
- package/vendor/fusion/Memory/legacyCleanup.luau +17 -17
- package/vendor/fusion/Memory/needsDestruction.luau +16 -16
- package/vendor/fusion/Memory/poisonScope.luau +33 -33
- package/vendor/fusion/Memory/scopePool.luau +54 -54
- package/vendor/fusion/Memory/scoped.luau +26 -26
- package/vendor/fusion/Memory/whichLivesLonger.luau +74 -74
- package/vendor/fusion/RobloxExternal.luau +97 -97
- package/vendor/fusion/State/Computed.luau +138 -138
- package/vendor/fusion/State/For/Disassembly.luau +210 -210
- package/vendor/fusion/State/For/ForTypes.luau +30 -30
- package/vendor/fusion/State/For/init.luau +109 -109
- package/vendor/fusion/State/ForKeys.luau +93 -93
- package/vendor/fusion/State/ForPairs.luau +96 -96
- package/vendor/fusion/State/ForValues.luau +93 -93
- package/vendor/fusion/State/Value.luau +87 -87
- package/vendor/fusion/State/castToState.luau +25 -25
- package/vendor/fusion/State/peek.luau +30 -30
- package/vendor/fusion/Types.luau +314 -314
- package/vendor/fusion/Utility/Contextual.luau +90 -90
- package/vendor/fusion/Utility/Safe.luau +22 -22
- package/vendor/fusion/Utility/isSimilar.luau +29 -29
- package/vendor/fusion/Utility/merge.luau +35 -35
- package/vendor/fusion/Utility/nameOf.luau +34 -34
- package/vendor/fusion/Utility/never.luau +13 -13
- package/vendor/fusion/Utility/nicknames.luau +10 -10
- package/vendor/fusion/Utility/xtypeof.luau +26 -26
- package/vendor/fusion/init.luau +82 -82
- package/vendor/profilestore/init.luau +2242 -2242
- package/vendor/promise/init.luau +1982 -1982
- package/vendor/rbxutil/buffer-util/Buffer.test.luau +25 -25
- package/vendor/rbxutil/buffer-util/BufferReader.luau +228 -228
- package/vendor/rbxutil/buffer-util/BufferWriter.luau +269 -269
- package/vendor/rbxutil/buffer-util/DataTypeBuffer.luau +223 -223
- package/vendor/rbxutil/buffer-util/Types.luau +60 -60
- package/vendor/rbxutil/buffer-util/index.d.ts +153 -153
- package/vendor/rbxutil/buffer-util/init.luau +41 -41
- package/vendor/rbxutil/buffer-util/package.json +16 -16
- package/vendor/rbxutil/buffer-util/wally.toml +9 -9
- package/vendor/rbxutil/comm/Client/ClientComm.luau +232 -232
- package/vendor/rbxutil/comm/Client/ClientRemoteProperty.luau +156 -156
- package/vendor/rbxutil/comm/Client/ClientRemoteSignal.luau +109 -109
- package/vendor/rbxutil/comm/Client/init.luau +135 -135
- package/vendor/rbxutil/comm/Server/RemoteProperty.luau +295 -295
- package/vendor/rbxutil/comm/Server/RemoteSignal.luau +211 -211
- package/vendor/rbxutil/comm/Server/ServerComm.luau +211 -211
- package/vendor/rbxutil/comm/Server/init.luau +140 -140
- package/vendor/rbxutil/comm/Types.luau +18 -18
- package/vendor/rbxutil/comm/Util.luau +27 -27
- package/vendor/rbxutil/comm/init.luau +35 -35
- package/vendor/rbxutil/comm/wally.toml +13 -13
- package/vendor/rbxutil/component/init.luau +759 -759
- package/vendor/rbxutil/component/init.test.luau +311 -311
- package/vendor/rbxutil/component/wally.toml +14 -14
- package/vendor/rbxutil/concur/init.luau +542 -542
- package/vendor/rbxutil/concur/init.test.luau +364 -364
- package/vendor/rbxutil/concur/wally.toml +8 -8
- package/vendor/rbxutil/enum-list/init.luau +101 -101
- package/vendor/rbxutil/enum-list/init.test.luau +91 -91
- package/vendor/rbxutil/enum-list/wally.toml +8 -8
- package/vendor/rbxutil/find/index.d.ts +20 -20
- package/vendor/rbxutil/find/init.luau +44 -44
- package/vendor/rbxutil/find/package.json +17 -17
- package/vendor/rbxutil/find/wally.toml +8 -8
- package/vendor/rbxutil/input/Gamepad.luau +559 -559
- package/vendor/rbxutil/input/Keyboard.luau +124 -124
- package/vendor/rbxutil/input/Mouse.luau +278 -278
- package/vendor/rbxutil/input/PreferredInput.luau +91 -91
- package/vendor/rbxutil/input/Touch.luau +120 -120
- package/vendor/rbxutil/input/init.luau +33 -33
- package/vendor/rbxutil/input/wally.toml +12 -12
- package/vendor/rbxutil/loader/index.d.ts +15 -15
- package/vendor/rbxutil/loader/init.luau +137 -137
- package/vendor/rbxutil/loader/wally.toml +8 -8
- package/vendor/rbxutil/log/index.d.ts +38 -38
- package/vendor/rbxutil/log/init.luau +746 -746
- package/vendor/rbxutil/log/wally.toml +8 -8
- package/vendor/rbxutil/net/init.luau +190 -190
- package/vendor/rbxutil/net/wally.toml +8 -8
- package/vendor/rbxutil/option/index.d.ts +44 -44
- package/vendor/rbxutil/option/init.luau +489 -489
- package/vendor/rbxutil/option/init.test.luau +342 -342
- package/vendor/rbxutil/option/wally.toml +8 -8
- package/vendor/rbxutil/pid/index.d.ts +53 -53
- package/vendor/rbxutil/pid/init.luau +195 -195
- package/vendor/rbxutil/pid/package.json +16 -16
- package/vendor/rbxutil/pid/wally.toml +9 -9
- package/vendor/rbxutil/quaternion/index.d.ts +117 -117
- package/vendor/rbxutil/quaternion/init.luau +570 -570
- package/vendor/rbxutil/quaternion/package.json +16 -16
- package/vendor/rbxutil/quaternion/wally.toml +9 -9
- package/vendor/rbxutil/query/index.d.ts +43 -43
- package/vendor/rbxutil/query/init.luau +117 -117
- package/vendor/rbxutil/query/package.json +18 -18
- package/vendor/rbxutil/query/wally.toml +9 -9
- package/vendor/rbxutil/sequent/index.d.ts +28 -28
- package/vendor/rbxutil/sequent/init.luau +340 -340
- package/vendor/rbxutil/sequent/package.json +16 -16
- package/vendor/rbxutil/sequent/wally.toml +9 -9
- package/vendor/rbxutil/ser/init.luau +175 -175
- package/vendor/rbxutil/ser/init.test.luau +50 -50
- package/vendor/rbxutil/ser/wally.toml +11 -11
- package/vendor/rbxutil/shake/index.d.ts +36 -36
- package/vendor/rbxutil/shake/init.luau +532 -532
- package/vendor/rbxutil/shake/init.test.luau +267 -267
- package/vendor/rbxutil/shake/package.json +16 -16
- package/vendor/rbxutil/shake/wally.toml +9 -9
- package/vendor/rbxutil/signal/index.d.ts +100 -100
- package/vendor/rbxutil/signal/init.luau +432 -432
- package/vendor/rbxutil/signal/init.test.luau +190 -190
- package/vendor/rbxutil/signal/package.json +17 -17
- package/vendor/rbxutil/signal/wally.toml +9 -9
- package/vendor/rbxutil/silo/TableWatcher.luau +65 -65
- package/vendor/rbxutil/silo/Util.luau +55 -55
- package/vendor/rbxutil/silo/init.luau +338 -338
- package/vendor/rbxutil/silo/init.test.luau +215 -215
- package/vendor/rbxutil/silo/wally.toml +8 -8
- package/vendor/rbxutil/spring/index.d.ts +40 -40
- package/vendor/rbxutil/spring/init.luau +97 -97
- package/vendor/rbxutil/spring/package.json +17 -17
- package/vendor/rbxutil/spring/wally.toml +8 -8
- package/vendor/rbxutil/stream/index.d.ts +88 -88
- package/vendor/rbxutil/stream/init.luau +597 -597
- package/vendor/rbxutil/stream/package.json +18 -18
- package/vendor/rbxutil/stream/wally.toml +9 -9
- package/vendor/rbxutil/streamable/Streamable.luau +202 -202
- package/vendor/rbxutil/streamable/StreamableUtil.luau +80 -80
- package/vendor/rbxutil/streamable/init.luau +8 -8
- package/vendor/rbxutil/streamable/wally.toml +12 -12
- package/vendor/rbxutil/symbol/init.luau +56 -56
- package/vendor/rbxutil/symbol/init.test.luau +37 -37
- package/vendor/rbxutil/symbol/wally.toml +8 -8
- package/vendor/rbxutil/table-util/init.luau +938 -938
- package/vendor/rbxutil/table-util/init.test.luau +439 -439
- package/vendor/rbxutil/task-queue/index.d.ts +27 -27
- package/vendor/rbxutil/task-queue/init.luau +97 -97
- package/vendor/rbxutil/task-queue/wally.toml +8 -8
- package/vendor/rbxutil/timer/index.d.ts +81 -81
- package/vendor/rbxutil/timer/init.luau +249 -249
- package/vendor/rbxutil/timer/init.test.luau +73 -73
- package/vendor/rbxutil/timer/wally.toml +11 -11
- package/vendor/rbxutil/tree/index.d.ts +15 -15
- package/vendor/rbxutil/tree/init.luau +137 -137
- package/vendor/rbxutil/tree/wally.toml +8 -8
- package/vendor/rbxutil/trove/index.d.ts +46 -46
- package/vendor/rbxutil/trove/init.luau +787 -787
- package/vendor/rbxutil/trove/init.test.luau +203 -203
- package/vendor/rbxutil/trove/wally.toml +8 -8
- package/vendor/rbxutil/typed-remote/init.luau +196 -196
- package/vendor/rbxutil/typed-remote/wally.toml +8 -8
- package/vendor/rbxutil/wait-for/index.d.ts +17 -17
- package/vendor/rbxutil/wait-for/init.luau +257 -257
- package/vendor/rbxutil/wait-for/init.test.luau +182 -182
- package/vendor/rbxutil/wait-for/wally.toml +11 -11
- package/vendor/t/t.lua +1350 -1350
- package/vendor/testez/Context.lua +26 -26
- package/vendor/testez/Expectation.lua +311 -311
- package/vendor/testez/ExpectationContext.lua +38 -38
- package/vendor/testez/LifecycleHooks.lua +89 -89
- package/vendor/testez/Reporters/TeamCityReporter.lua +101 -101
- package/vendor/testez/Reporters/TextReporter.lua +105 -105
- package/vendor/testez/Reporters/TextReporterQuiet.lua +96 -96
- package/vendor/testez/TestBootstrap.lua +146 -146
- package/vendor/testez/TestEnum.lua +27 -27
- package/vendor/testez/TestPlan.lua +304 -304
- package/vendor/testez/TestPlanner.lua +39 -39
- package/vendor/testez/TestResults.lua +111 -111
- package/vendor/testez/TestRunner.lua +188 -188
- package/vendor/testez/TestSession.lua +243 -243
- package/vendor/testez/init.lua +39 -39
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
--!strict
|
|
2
|
-
|
|
3
|
-
--[=[
|
|
4
|
-
@class Spring
|
|
5
|
-
|
|
6
|
-
Simulates a critically damped spring. This is mostly just a wrapper around
|
|
7
|
-
[`TweenService:SmoothDamp()`](https://create.roblox.com/docs/reference/engine/classes/TweenService#SmoothDamp).
|
|
8
|
-
]=]
|
|
9
|
-
|
|
10
|
-
local TweenService = game:GetService("TweenService")
|
|
11
|
-
|
|
12
|
-
local Spring = {}
|
|
13
|
-
Spring.__index = Spring
|
|
14
|
-
|
|
15
|
-
export type Spring<T> = typeof(setmetatable(
|
|
16
|
-
{} :: {
|
|
17
|
-
Current: T,
|
|
18
|
-
Target: T,
|
|
19
|
-
Velocity: T,
|
|
20
|
-
SmoothTime: number,
|
|
21
|
-
MaxSpeed: number,
|
|
22
|
-
},
|
|
23
|
-
Spring
|
|
24
|
-
))
|
|
25
|
-
|
|
26
|
-
--[=[
|
|
27
|
-
Creates a new spring.
|
|
28
|
-
|
|
29
|
-
The type `T` can be a `number`, `Vector2`, `Vector3`, or `CFrame`.
|
|
30
|
-
|
|
31
|
-
@param initial T -- Initial value
|
|
32
|
-
@param smoothTime number -- Approximate time it takes to reach target
|
|
33
|
-
@param maxSpeed number -- Maximum speed (defaults to infinity)
|
|
34
|
-
]=]
|
|
35
|
-
function Spring.new<T>(initial: T, smoothTime: number, maxSpeed: number?): Spring<T>
|
|
36
|
-
local self = setmetatable({
|
|
37
|
-
Current = initial,
|
|
38
|
-
Target = initial,
|
|
39
|
-
Velocity = if typeof(initial) == "CFrame" then CFrame.identity else (initial :: any) * 0,
|
|
40
|
-
SmoothTime = smoothTime,
|
|
41
|
-
MaxSpeed = if maxSpeed ~= nil then maxSpeed else math.huge,
|
|
42
|
-
}, Spring)
|
|
43
|
-
|
|
44
|
-
return self
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
--[=[
|
|
48
|
-
@within Spring
|
|
49
|
-
@method Update
|
|
50
|
-
|
|
51
|
-
Updates the spring. This method should be called continuously, even if the target value hasn't changed.
|
|
52
|
-
|
|
53
|
-
```lua
|
|
54
|
-
local newValue = spring:Update(dt)
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
@param deltaTime number
|
|
58
|
-
@return T
|
|
59
|
-
]=]
|
|
60
|
-
function Spring.Update<T>(self: Spring<T>, dt: number): T
|
|
61
|
-
self.Current, self.Velocity =
|
|
62
|
-
TweenService:SmoothDamp(self.Current, self.Target, self.Velocity, self.SmoothTime, self.MaxSpeed, dt)
|
|
63
|
-
|
|
64
|
-
return self.Current
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
--[=[
|
|
68
|
-
@within Spring
|
|
69
|
-
@method Impulse
|
|
70
|
-
|
|
71
|
-
Impulses the spring.
|
|
72
|
-
|
|
73
|
-
```lua
|
|
74
|
-
spring:Impulse(rng:NextUnitVector() * 10)
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
@param velocity T
|
|
78
|
-
]=]
|
|
79
|
-
function Spring.Impulse<T>(self: Spring<T>, velocity: T)
|
|
80
|
-
self.Velocity += velocity :: any
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
--[=[
|
|
84
|
-
@within Spring
|
|
85
|
-
@method Reset
|
|
86
|
-
|
|
87
|
-
Resets the spring to the given value.
|
|
88
|
-
|
|
89
|
-
@param value T
|
|
90
|
-
]=]
|
|
91
|
-
function Spring.Reset<T>(self: Spring<T>, value: T)
|
|
92
|
-
self.Current = value
|
|
93
|
-
self.Target = value
|
|
94
|
-
self.Velocity = if typeof(self.Current) == "CFrame" then CFrame.identity else (self.Current :: any) * 0
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
return Spring
|
|
1
|
+
--!strict
|
|
2
|
+
|
|
3
|
+
--[=[
|
|
4
|
+
@class Spring
|
|
5
|
+
|
|
6
|
+
Simulates a critically damped spring. This is mostly just a wrapper around
|
|
7
|
+
[`TweenService:SmoothDamp()`](https://create.roblox.com/docs/reference/engine/classes/TweenService#SmoothDamp).
|
|
8
|
+
]=]
|
|
9
|
+
|
|
10
|
+
local TweenService = game:GetService("TweenService")
|
|
11
|
+
|
|
12
|
+
local Spring = {}
|
|
13
|
+
Spring.__index = Spring
|
|
14
|
+
|
|
15
|
+
export type Spring<T> = typeof(setmetatable(
|
|
16
|
+
{} :: {
|
|
17
|
+
Current: T,
|
|
18
|
+
Target: T,
|
|
19
|
+
Velocity: T,
|
|
20
|
+
SmoothTime: number,
|
|
21
|
+
MaxSpeed: number,
|
|
22
|
+
},
|
|
23
|
+
Spring
|
|
24
|
+
))
|
|
25
|
+
|
|
26
|
+
--[=[
|
|
27
|
+
Creates a new spring.
|
|
28
|
+
|
|
29
|
+
The type `T` can be a `number`, `Vector2`, `Vector3`, or `CFrame`.
|
|
30
|
+
|
|
31
|
+
@param initial T -- Initial value
|
|
32
|
+
@param smoothTime number -- Approximate time it takes to reach target
|
|
33
|
+
@param maxSpeed number -- Maximum speed (defaults to infinity)
|
|
34
|
+
]=]
|
|
35
|
+
function Spring.new<T>(initial: T, smoothTime: number, maxSpeed: number?): Spring<T>
|
|
36
|
+
local self = setmetatable({
|
|
37
|
+
Current = initial,
|
|
38
|
+
Target = initial,
|
|
39
|
+
Velocity = if typeof(initial) == "CFrame" then CFrame.identity else (initial :: any) * 0,
|
|
40
|
+
SmoothTime = smoothTime,
|
|
41
|
+
MaxSpeed = if maxSpeed ~= nil then maxSpeed else math.huge,
|
|
42
|
+
}, Spring)
|
|
43
|
+
|
|
44
|
+
return self
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
--[=[
|
|
48
|
+
@within Spring
|
|
49
|
+
@method Update
|
|
50
|
+
|
|
51
|
+
Updates the spring. This method should be called continuously, even if the target value hasn't changed.
|
|
52
|
+
|
|
53
|
+
```lua
|
|
54
|
+
local newValue = spring:Update(dt)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
@param deltaTime number
|
|
58
|
+
@return T
|
|
59
|
+
]=]
|
|
60
|
+
function Spring.Update<T>(self: Spring<T>, dt: number): T
|
|
61
|
+
self.Current, self.Velocity =
|
|
62
|
+
TweenService:SmoothDamp(self.Current, self.Target, self.Velocity, self.SmoothTime, self.MaxSpeed, dt)
|
|
63
|
+
|
|
64
|
+
return self.Current
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
--[=[
|
|
68
|
+
@within Spring
|
|
69
|
+
@method Impulse
|
|
70
|
+
|
|
71
|
+
Impulses the spring.
|
|
72
|
+
|
|
73
|
+
```lua
|
|
74
|
+
spring:Impulse(rng:NextUnitVector() * 10)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
@param velocity T
|
|
78
|
+
]=]
|
|
79
|
+
function Spring.Impulse<T>(self: Spring<T>, velocity: T)
|
|
80
|
+
self.Velocity += velocity :: any
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
--[=[
|
|
84
|
+
@within Spring
|
|
85
|
+
@method Reset
|
|
86
|
+
|
|
87
|
+
Resets the spring to the given value.
|
|
88
|
+
|
|
89
|
+
@param value T
|
|
90
|
+
]=]
|
|
91
|
+
function Spring.Reset<T>(self: Spring<T>, value: T)
|
|
92
|
+
self.Current = value
|
|
93
|
+
self.Target = value
|
|
94
|
+
self.Velocity = if typeof(self.Current) == "CFrame" then CFrame.identity else (self.Current :: any) * 0
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
return Spring
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@rbxutil/spring",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"main": "init.luau",
|
|
5
|
-
"repository": "github:Sleitnick/RbxUtil",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"types": "index.d.ts",
|
|
8
|
-
"files": [
|
|
9
|
-
"./*",
|
|
10
|
-
"!*.toml",
|
|
11
|
-
"!*.json",
|
|
12
|
-
"!*.test.luau"
|
|
13
|
-
],
|
|
14
|
-
"publishConfig": {
|
|
15
|
-
"access": "public"
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@rbxutil/spring",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"main": "init.luau",
|
|
5
|
+
"repository": "github:Sleitnick/RbxUtil",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"types": "index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"./*",
|
|
10
|
+
"!*.toml",
|
|
11
|
+
"!*.json",
|
|
12
|
+
"!*.test.luau"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
[package]
|
|
2
|
-
name = "sleitnick/spring"
|
|
3
|
-
description = "Critically damped spring"
|
|
4
|
-
version = "1.0.0"
|
|
5
|
-
license = "MIT"
|
|
6
|
-
authors = ["Stephen Leitnick"]
|
|
7
|
-
registry = "https://github.com/UpliftGames/wally-index"
|
|
8
|
-
realm = "shared"
|
|
1
|
+
[package]
|
|
2
|
+
name = "sleitnick/spring"
|
|
3
|
+
description = "Critically damped spring"
|
|
4
|
+
version = "1.0.0"
|
|
5
|
+
license = "MIT"
|
|
6
|
+
authors = ["Stephen Leitnick"]
|
|
7
|
+
registry = "https://github.com/UpliftGames/wally-index"
|
|
8
|
+
realm = "shared"
|
|
@@ -1,88 +1,88 @@
|
|
|
1
|
-
interface Stream {}
|
|
2
|
-
|
|
3
|
-
interface stream {
|
|
4
|
-
/** Creates a stream. */
|
|
5
|
-
create: (size: number) => Stream;
|
|
6
|
-
|
|
7
|
-
/** Creates a stream from an existing buffer. */
|
|
8
|
-
frombuffer: (buf: buffer) => Stream;
|
|
9
|
-
|
|
10
|
-
/** Creates a stream from a buffer created with the given string. */
|
|
11
|
-
fromstring: (str: string) => Stream;
|
|
12
|
-
|
|
13
|
-
readu8: (s: Stream) => number;
|
|
14
|
-
readi8: (s: Stream) => number;
|
|
15
|
-
readu16: (s: Stream) => number;
|
|
16
|
-
readi16: (s: Stream) => number;
|
|
17
|
-
readu32: (s: Stream) => number;
|
|
18
|
-
readi32: (s: Stream) => number;
|
|
19
|
-
readf32: (s: Stream) => number;
|
|
20
|
-
readf64: (s: Stream) => number;
|
|
21
|
-
readstring: (s: Stream, count: number) => string;
|
|
22
|
-
readlstring: (s: Stream) => string;
|
|
23
|
-
readvectorf32: (s: Stream) => vector;
|
|
24
|
-
readvectoru32: (s: Stream) => vector;
|
|
25
|
-
readvectori32: (s: Stream) => vector;
|
|
26
|
-
readvectoru16: (s: Stream) => vector;
|
|
27
|
-
readvectori16: (s: Stream) => vector;
|
|
28
|
-
readvectoru8: (s: Stream) => vector;
|
|
29
|
-
readvectori8: (s: Stream) => vector;
|
|
30
|
-
|
|
31
|
-
writeu8: (s: Stream, n: number) => void;
|
|
32
|
-
writei8: (s: Stream, n: number) => void;
|
|
33
|
-
writeu16: (s: Stream, n: number) => void;
|
|
34
|
-
writei16: (s: Stream, n: number) => void;
|
|
35
|
-
writeu32: (s: Stream, n: number) => void;
|
|
36
|
-
writei32: (s: Stream, n: number) => void;
|
|
37
|
-
writef32: (s: Stream, n: number) => void;
|
|
38
|
-
writef64: (s: Stream, n: number) => void;
|
|
39
|
-
writestring: (s: Stream, str: string, count?: number) => void;
|
|
40
|
-
writelstring: (s: Stream, str: string, count?: number) => void;
|
|
41
|
-
writevectorf32: (s: Stream, v: vector) => void;
|
|
42
|
-
writevectoru32: (s: Stream, v: vector) => void;
|
|
43
|
-
writevectori32: (s: Stream, v: vector) => void;
|
|
44
|
-
writevectoru16: (s: Stream, v: vector) => void;
|
|
45
|
-
writevectori16: (s: Stream, v: vector) => void;
|
|
46
|
-
writevectoru8: (s: Stream, v: vector) => void;
|
|
47
|
-
writevectori8: (s: Stream, v: vector) => void;
|
|
48
|
-
|
|
49
|
-
/** Get the length of the backing buffer. */
|
|
50
|
-
len: (s: Stream) => number;
|
|
51
|
-
|
|
52
|
-
/** Get the cursor position. */
|
|
53
|
-
pos: (s: Stream) => number;
|
|
54
|
-
|
|
55
|
-
/** Copy `count` bytes from `source` into `target`. */
|
|
56
|
-
copy: (target: Stream, source: Stream, count: number) => void;
|
|
57
|
-
|
|
58
|
-
/** Copy `count` bytes from the `source` stream into the `target` buffer. */
|
|
59
|
-
copytobuffer: (target: buffer, targetOffset: number, source: Stream, count: number) => void;
|
|
60
|
-
|
|
61
|
-
/** Copy `count` bytes from the `source` buffer into the `target` stream. */
|
|
62
|
-
copyfrombuffer: (target: Stream, source: buffer, sourceOffset: number | undefined, count: number) => void;
|
|
63
|
-
|
|
64
|
-
/** Set the cursor relative to the beginning of the buffer. */
|
|
65
|
-
seek: (s: Stream, offset: number) => void;
|
|
66
|
-
|
|
67
|
-
/** Set the cursor backward relative to the end of the buffer. */
|
|
68
|
-
seekend: (s: Stream, offset: number) => void;
|
|
69
|
-
|
|
70
|
-
/** Offset the cursor forward from its current position. */
|
|
71
|
-
seekforward: (s: Stream, offset: number) => void;
|
|
72
|
-
|
|
73
|
-
/** Offset the cursor backward from its current position. */
|
|
74
|
-
seekbackward: (s: Stream, offset: number) => void;
|
|
75
|
-
|
|
76
|
-
/** Gets the string of the backing buffer. */
|
|
77
|
-
tostring: (s: Stream) => string;
|
|
78
|
-
|
|
79
|
-
/** Get the backing buffer. */
|
|
80
|
-
buffer: (s: Stream) => buffer;
|
|
81
|
-
|
|
82
|
-
/** Returns `true` if the cursor is at the end of the stream. */
|
|
83
|
-
atend: (s: Stream) => boolean;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
declare const stream: stream;
|
|
87
|
-
|
|
88
|
-
export = stream;
|
|
1
|
+
interface Stream {}
|
|
2
|
+
|
|
3
|
+
interface stream {
|
|
4
|
+
/** Creates a stream. */
|
|
5
|
+
create: (size: number) => Stream;
|
|
6
|
+
|
|
7
|
+
/** Creates a stream from an existing buffer. */
|
|
8
|
+
frombuffer: (buf: buffer) => Stream;
|
|
9
|
+
|
|
10
|
+
/** Creates a stream from a buffer created with the given string. */
|
|
11
|
+
fromstring: (str: string) => Stream;
|
|
12
|
+
|
|
13
|
+
readu8: (s: Stream) => number;
|
|
14
|
+
readi8: (s: Stream) => number;
|
|
15
|
+
readu16: (s: Stream) => number;
|
|
16
|
+
readi16: (s: Stream) => number;
|
|
17
|
+
readu32: (s: Stream) => number;
|
|
18
|
+
readi32: (s: Stream) => number;
|
|
19
|
+
readf32: (s: Stream) => number;
|
|
20
|
+
readf64: (s: Stream) => number;
|
|
21
|
+
readstring: (s: Stream, count: number) => string;
|
|
22
|
+
readlstring: (s: Stream) => string;
|
|
23
|
+
readvectorf32: (s: Stream) => vector;
|
|
24
|
+
readvectoru32: (s: Stream) => vector;
|
|
25
|
+
readvectori32: (s: Stream) => vector;
|
|
26
|
+
readvectoru16: (s: Stream) => vector;
|
|
27
|
+
readvectori16: (s: Stream) => vector;
|
|
28
|
+
readvectoru8: (s: Stream) => vector;
|
|
29
|
+
readvectori8: (s: Stream) => vector;
|
|
30
|
+
|
|
31
|
+
writeu8: (s: Stream, n: number) => void;
|
|
32
|
+
writei8: (s: Stream, n: number) => void;
|
|
33
|
+
writeu16: (s: Stream, n: number) => void;
|
|
34
|
+
writei16: (s: Stream, n: number) => void;
|
|
35
|
+
writeu32: (s: Stream, n: number) => void;
|
|
36
|
+
writei32: (s: Stream, n: number) => void;
|
|
37
|
+
writef32: (s: Stream, n: number) => void;
|
|
38
|
+
writef64: (s: Stream, n: number) => void;
|
|
39
|
+
writestring: (s: Stream, str: string, count?: number) => void;
|
|
40
|
+
writelstring: (s: Stream, str: string, count?: number) => void;
|
|
41
|
+
writevectorf32: (s: Stream, v: vector) => void;
|
|
42
|
+
writevectoru32: (s: Stream, v: vector) => void;
|
|
43
|
+
writevectori32: (s: Stream, v: vector) => void;
|
|
44
|
+
writevectoru16: (s: Stream, v: vector) => void;
|
|
45
|
+
writevectori16: (s: Stream, v: vector) => void;
|
|
46
|
+
writevectoru8: (s: Stream, v: vector) => void;
|
|
47
|
+
writevectori8: (s: Stream, v: vector) => void;
|
|
48
|
+
|
|
49
|
+
/** Get the length of the backing buffer. */
|
|
50
|
+
len: (s: Stream) => number;
|
|
51
|
+
|
|
52
|
+
/** Get the cursor position. */
|
|
53
|
+
pos: (s: Stream) => number;
|
|
54
|
+
|
|
55
|
+
/** Copy `count` bytes from `source` into `target`. */
|
|
56
|
+
copy: (target: Stream, source: Stream, count: number) => void;
|
|
57
|
+
|
|
58
|
+
/** Copy `count` bytes from the `source` stream into the `target` buffer. */
|
|
59
|
+
copytobuffer: (target: buffer, targetOffset: number, source: Stream, count: number) => void;
|
|
60
|
+
|
|
61
|
+
/** Copy `count` bytes from the `source` buffer into the `target` stream. */
|
|
62
|
+
copyfrombuffer: (target: Stream, source: buffer, sourceOffset: number | undefined, count: number) => void;
|
|
63
|
+
|
|
64
|
+
/** Set the cursor relative to the beginning of the buffer. */
|
|
65
|
+
seek: (s: Stream, offset: number) => void;
|
|
66
|
+
|
|
67
|
+
/** Set the cursor backward relative to the end of the buffer. */
|
|
68
|
+
seekend: (s: Stream, offset: number) => void;
|
|
69
|
+
|
|
70
|
+
/** Offset the cursor forward from its current position. */
|
|
71
|
+
seekforward: (s: Stream, offset: number) => void;
|
|
72
|
+
|
|
73
|
+
/** Offset the cursor backward from its current position. */
|
|
74
|
+
seekbackward: (s: Stream, offset: number) => void;
|
|
75
|
+
|
|
76
|
+
/** Gets the string of the backing buffer. */
|
|
77
|
+
tostring: (s: Stream) => string;
|
|
78
|
+
|
|
79
|
+
/** Get the backing buffer. */
|
|
80
|
+
buffer: (s: Stream) => buffer;
|
|
81
|
+
|
|
82
|
+
/** Returns `true` if the cursor is at the end of the stream. */
|
|
83
|
+
atend: (s: Stream) => boolean;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
declare const stream: stream;
|
|
87
|
+
|
|
88
|
+
export = stream;
|