Skip to main content

Spring

Observable

Inherits Observable

Observable object which simulates critically damped spring easing towards another observable's current value

Constructor


Dex.Spring

Dex.Spring<T>(
    target: Observable<T>
    angularFrequency: number?
) -> Spring<T>

Creates an easing observable that simulates the behavior of a critically damped spring. The spring simulates in realtime until the target value is reached.

INFO

Springs must currently be Subscribed or Mounted to exhibit expected behavior. This is a requirement for all realtime-simulated observables, which enables safe garbage collection when writing Dex components.

Functions

ResetVelocity

Spring:ResetVelocity() → ()

Sets the velocity of the spring to the zero (or the origin vector). Useful in conjunction with Spring:SetPosition

CurrentTarget

Spring:CurrentTarget() → ()

Gets the current value of the spring's target observable.

SetPosition

Spring:SetPosition() → ()

Moves the current position of the spring to a new value, keeping the current velocity intact.

Show raw api
{
    "functions": [
        {
            "name": "ResetVelocity",
            "desc": "Sets the velocity of the spring to the zero (or the origin vector). Useful\nin conjunction with [Spring:SetPosition]",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 134,
                "path": "src/Observables/EasedObject.luau"
            }
        },
        {
            "name": "CurrentTarget",
            "desc": "Gets the current value of the spring's target observable.",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 158,
                "path": "src/Observables/EasedObject.luau"
            }
        },
        {
            "name": "SetPosition",
            "desc": "Moves the current position of the spring to a new value, keeping the current\nvelocity intact.",
            "params": [],
            "returns": [],
            "function_type": "method",
            "source": {
                "line": 186,
                "path": "src/Observables/EasedObject.luau"
            }
        }
    ],
    "properties": [],
    "types": [],
    "name": "Spring",
    "desc": "#### Inherits [Observable]\n\nObservable object which simulates critically damped spring easing towards\nanother observable's current value\n\n## Constructor\n\n---\n\n### Dex.Spring\n```ts\nDex.Spring<T>(\n    target: Observable<T>\n    angularFrequency: number?\n) -> Spring<T>\n```\n\nCreates an easing observable that simulates the behavior of a critically\ndamped spring. The spring simulates in realtime until the target value is\nreached.\n\n:::info\nSprings must currently be ***Subscribed*** or ***Mounted*** to exhibit\nexpected behavior. This is a requirement for all realtime-simulated\nobservables, which enables safe garbage collection when writing Dex\ncomponents.\n:::",
    "tags": [
        "Observable"
    ],
    "source": {
        "line": 153,
        "path": "src/Observables/Spring.luau"
    }
}