https://github.com/dervexdev/advancedspring
Advanced Spring lets you create spring class for every major Roblox & Luau datatype
https://github.com/dervexdev/advancedspring
Last synced: 10 months ago
JSON representation
Advanced Spring lets you create spring class for every major Roblox & Luau datatype
- Host: GitHub
- URL: https://github.com/dervexdev/advancedspring
- Owner: DervexDev
- License: apache-2.0
- Created: 2023-07-19T20:20:30.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T20:28:25.000Z (almost 3 years ago)
- Last Synced: 2025-03-04T07:24:05.161Z (over 1 year ago)
- Language: Lua
- Homepage: https://wally.run/package/dervexhero/advancedspring
- Size: 7.81 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Advanced Spring
Advanced Spring lets you create spring class for every major Roblox & Luau datatype
## About
Supported datatypes: `boolean`, `number`, `BrickColor`, `CFrame`, `Color3`, `ColorSequence`, `NumberRange`, `NumberSequence`, `Rect`, `UDim`, `UDim2`, `Vector2`, `Vector3`. You can set **initial position**, **damping ratio** and **frequency** when creating new spring instance or by creating config file or by changing `DEFAULT_SETTINGS`.
## API Usage
```lua
local Spring = require(path.to.this.module)
-- Creates new spring class with optional initial position and settings
local spring = Spring.new(Vector3.new())
-- Sets new spring goal
spring:Set(Vector3.new(4, 2, 0))
-- Updates spring by delta seconds
spring:Step(delta)
-- Returns current spring position
part.Position = spring:Get()
-- Sets new goal, updates spring and returns current position
part.Position = spring:All(Vector3.new(4, 2, 0), delta)
```
## Limitations
* CFrame - only position is supported (it may change in the future)
* ColorSequence & NumberSequence - only first and last keypoints are supported
## Credits
Part of this code was written by @Fraktality