Table of Contents

Class AnimatorBase

Namespace
Vintagestory.API.Common
Assembly
VintagestoryAPI.dll

Syncs every frame with entity.ActiveAnimationsByAnimCode, starts, progresses and stops animations when necessary

public abstract class AnimatorBase : IAnimator
Inheritance
AnimatorBase
Implements
Derived
Inherited Members

Constructors

AnimatorBase(WalkSpeedSupplierDelegate, Animation[], Action<string>)

public AnimatorBase(WalkSpeedSupplierDelegate WalkSpeedSupplier, Animation[] Animations, Action<string> onAnimationStoppedListener = null)

Parameters

WalkSpeedSupplier WalkSpeedSupplierDelegate
Animations Animation[]
onAnimationStoppedListener Action<string>

Fields

AttachmentPointByCode

public Dictionary<string, AttachmentPointAndPose> AttachmentPointByCode

Field Value

Dictionary<string, AttachmentPointAndPose>

CurAnims

public RunningAnimation[] CurAnims

Field Value

RunningAnimation[]

TransformationMatrices4x3

public float[] TransformationMatrices4x3

Field Value

float[]

TransformationMatricesDefaultPose4x3

The entities default pose. Meaning for most elements this is the identity matrix, with exception of individually controlled elements such as the head.

public float[] TransformationMatricesDefaultPose4x3

Field Value

float[]

activeAnimCount

protected int activeAnimCount

Field Value

int

anims

public RunningAnimation[] anims

Field Value

RunningAnimation[]

identMat4x3

public static readonly float[] identMat4x3

Field Value

float[]

Properties

ActiveAnimationCount

Amount of currently active animations

public int ActiveAnimationCount { get; }

Property Value

int

CalculateMatrices

Whether or not to calculate the animation matrices, required for GetAttachmentPointPose() to deliver correct values. Default on on the client, server side only on when the creature is dead

public bool CalculateMatrices { get; set; }

Property Value

bool

Matrices4x3

The 30 pose transformation matrices that go to the shader

public float[] Matrices4x3 { get; }

Property Value

float[]

RunningAnimations

Holds data over all animations. This list always contains all animations of the creature. You have to check yourself which of them are active

public RunningAnimation[] RunningAnimations { get; }

Property Value

RunningAnimation[]

Methods

AnimNowActive(RunningAnimation, AnimationMetaData)

protected virtual void AnimNowActive(RunningAnimation anim, AnimationMetaData animData)

Parameters

anim RunningAnimation
animData AnimationMetaData

DumpCurrentState()

public virtual string DumpCurrentState()

Returns

string

GetAnimationState(string)

public RunningAnimation GetAnimationState(string code)

Parameters

code string

Returns

RunningAnimation

GetAttachmentPointPose(string)

Gets the attachment point pose.

public AttachmentPointAndPose GetAttachmentPointPose(string code)

Parameters

code string

Returns

AttachmentPointAndPose

GetPosebyName(string, StringComparison)

public virtual ElementPose GetPosebyName(string name, StringComparison stringComparison = StringComparison.InvariantCultureIgnoreCase)

Parameters

name string
stringComparison StringComparison

Returns

ElementPose

OnFrame(Dictionary<string, AnimationMetaData>, float)

The event fired on each frame.

public virtual void OnFrame(Dictionary<string, AnimationMetaData> activeAnimationsByAnimCode, float dt)

Parameters

activeAnimationsByAnimCode Dictionary<string, AnimationMetaData>
dt float

calculateMatrices(float)

protected abstract void calculateMatrices(float dt)

Parameters

dt float