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
Extension Methods

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[]

RootElements

public ShapeElement[] RootElements

Field Value

ShapeElement[]

RootPoses

public List<ElementPose> RootPoses

Field Value

List<ElementPose>

TransformationMatrices

public float[] TransformationMatrices

Field Value

float[]

TransformationMatricesDefaultPose

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[] TransformationMatricesDefaultPose

Field Value

float[]

activeAnimCount

protected int activeAnimCount

Field Value

int

anims

public RunningAnimation[] anims

Field Value

RunningAnimation[]

identMat

public static readonly float[] identMat

Field Value

float[]

Properties

ActiveAnimationCount

Amount of currently active animations

public int ActiveAnimationCount { get; }

Property Value

int

Animations

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[] Animations { get; }

Property Value

RunningAnimation[]

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

Matrices

The 30 pose transformation matrices that go to the shader

public float[] Matrices { get; }

Property Value

float[]

MaxJointId

public abstract int MaxJointId { get; }

Property Value

int

RunningAnimations

[Obsolete("Use Animations instead")]
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

ReloadAttachmentPoints()

public virtual void ReloadAttachmentPoints()

calculateMatrices(float)

protected abstract void calculateMatrices(float dt)

Parameters

dt float