Files
Basalt2/docs/references/plugins/animation.md
2025-03-18 00:52:20 +00:00

102 lines
3.0 KiB
Markdown

# Animation
This is the animation plugin. It provides a animation system for visual elements
with support for sequences, easing functions, and multiple animation types.
## Functions
|Method|Returns|Description|
|---|---|---|
|[Animation.new](#animation-new)|Animation|Creates a new animation
|[Animation.registerAnimation](#animation-registeranimation)|-|Registers a custom animation type
|[Animation.registerEasing](#animation-registereasing)|-|Adds a custom easing function
|[Animation:addAnimation](#animation-addanimation)|-|Adds a new animation to the sequence
|[Animation:event](#animation-event)|-|The event handler for the animation
|[Animation:onComplete](#animation-oncomplete)|Animation|Registers a callback for the complete event
|[Animation:onStart](#animation-onstart)|-|Registers a callback for the start event
|[Animation:onUpdate](#animation-onupdate)|Animation|Registers a callback for the update event
|[Animation:sequence](#animation-sequence)|Animation|Creates a new sequence
|[Animation:start](#animation-start)|Animation|Starts the animation
## Animation.new(element)
Creates a new Animation
### Parameters
* `element` `VisualElement` The element to animate
### Returns
* `Animation` `The` new animation
## Animation.registerAnimation(name, handlers)
Registers a new animation type
### Parameters
* `name` `string` The name of the animation
* `handlers` `table` Table containing start, update and complete handlers
### Usage
```lua
Animation.registerAnimation("fade", {start=function(anim) end, update=function(anim,progress) end})
```
## Animation.registerEasing(name, func)
Registers a new easing function
### Parameters
* `name` `string` The name of the easing function
* `func` `function` The easing function (takes progress 0-1, returns modified progress)
## Animation:addAnimation(type, args, duration, easing)
Adds a new animation to the sequence
### Parameters
* `type` `string` The type of animation
* `args` `table` The animation arguments
* `duration` `number` The duration in seconds
* `easing` `string` The easing function name
## Animation:event(event, timerId)
The event handler for the animation (listens to timer events)
### Parameters
* `event` `string` The event type
* `timerId` `number` The timer ID
## Animation:onComplete(callback)
Registers a callback for the complete event
### Parameters
* `callback` `function` The callback function to register
### Returns
* `Animation` `self` The animation instance
## Animation:onStart(callback)
Registers a callback for the start event
### Parameters
* `callback` `function` The callback function to register
## Animation:onUpdate(callback)
Registers a callback for the update event
### Parameters
* `callback` `function` The callback function to register
### Returns
* `Animation` `self` The animation instance
## Animation:sequence()
Creates a new sequence
### Returns
* `Animation` `self` The animation instance
## Animation:start()
Starts the animation
### Returns
* `Animation` `self` The animation instance