# AnimationInstance | Basalt
A UI Framework made for CC:Tweaked

Skip to content

# AnimationInstance ​

This is the AnimationInstance class. It represents a single animation instance

## Functions ​

Method | Returns | Description
--- | --- | ---
AnimationInstance.new | AnimationInstance | Creates a new animation instance
AnimationInstance:start | AnimationInstance | Starts the animation
AnimationInstance:update | boolean | Updates the animation
AnimationInstance:complete | - | Called when the animation is completed

## AnimationInstance.new(element, animType, args, duration, easing) ​

Creates a new AnimationInstance

### Parameters ​

- `element` `VisualElement` The element to animate
- `animType` `string` The type of animation
- `args` `table` The animation arguments
- `duration` `number` Duration in seconds
- `easing` `string` The easing function name

### Returns ​

- `AnimationInstance` `The` new animation instance

## AnimationInstance:start() ​

Starts the animation

### Returns ​

- `AnimationInstance` `self` The animation instance

## AnimationInstance:update(elapsed) ​

Updates the animation

### Parameters ​

- `elapsed` `number` The elapsed time in seconds

### Returns ​

- `boolean` `Whether` the animation is finished

## AnimationInstance:complete() ​

Gets called when the animation is completed

# Animation ​

This is the animation plugin. It provides a animation system for visual elementswith support for sequences, easing functions, and multiple animation types.

## Functions ​

Method | Returns | Description
--- | --- | ---
Animation.registerAnimation | - | Registers a custom animation type
Animation.registerEasing | - | Adds a custom easing function
Animation.new | Animation | Creates a new animation
Animation:sequence | Animation | Creates a new sequence
Animation:onStart | - | Registers a callback for the start event
Animation:onUpdate | Animation | Registers a callback for the update event
Animation:onComplete | Animation | Registers a callback for the complete event
Animation:addAnimation | - | Adds a new animation to the sequence
Animation:start | Animation | Starts the animation
Animation:event | - | The event handler for the animation
Animation:stop | - | Stops the 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.new(element) ​

Creates a new Animation

### Parameters ​

- `element` `VisualElement` The element to animate

### Returns ​

- `Animation` `The` new animation

## Animation:sequence() ​

Creates a new sequence

### 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:onComplete(callback) ​

Registers a callback for the complete event

### Parameters ​

- `callback` `function` The callback function to register

### Returns ​

- `Animation` `self` The animation instance

## 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:start() ​

Starts the animation

### Returns ​

- `Animation` `self` The animation instance

## 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:stop() ​

Stops the animation immediately: cancels timers, completes running anim instances and clears the element property

# VisualElement ​

Adds additional methods for VisualElement when adding animation plugin

## Functions ​

Method | Returns | Description
--- | --- | ---
VisualElement.stopAnimation | - | Convenience to stop animations from the element
VisualElement:animate | Animation | Creates a new animation

## VisualElement.stopAnimation() ​

Convenience to stop animations from the element

## VisualElement:animate() ​

Creates a new Animation Object

### Returns ​

- `Animation` `animation` The new animation