osb/doc/lua/animator.md
2023-06-20 14:33:09 +10:00

6.5 KiB

animator

The animator table contains functions that relate to an attached networked animator. Networked animators are found in:

  • tech
  • monsters
  • vehicles
  • status effects
  • active items

bool animator.setAnimationState(String stateType, String State, bool startNew = false)

Sets an animation state. If startNew is true, restart the animation loop if it's already active. Returns whether the state was set.


String animator.animationState(String stateType)

Returns the current state for a state type.


Json animator.animationStateProperty(String stateType, String propertyName)

Returns the value of the specified property for a state type.


void animator.setGlobalTag(String tagName, String tagValue)

Sets a global animator tag. A global tag replaces any tag with the specified tagValue across all animation parts.


void animator.setPartTag(String partType, String tagName, String tagValue)

Sets a local animator tag. A part tag replaces any tag with the specified tagValue in the partType animation part only.


void animator.setFlipped(bool flipped)

Sets whether the animator should be flipped horizontally.


void animator.setAnimationRate(float rate)

Sets the animation rate of the animator.


void animator.rotateGroup(String rotationGroup, float targetAngle, bool immediate)

Rotates a rotation group to the specified angle. If immediate, ignore rotation speed.

NOTE: Rotation groups have largely been replaced by transformation groups and should only be used in a context where maintaining a rotation speed is important. When possible use transformation groups.


float animator.currentRotationAngle(String rotationGroup)

Returns the current angle for a rotation group.


bool animator.hasTransformationGroup(String transformationGroup)

Returns whether the animator contains the specified transformation group.


void animator.translateTransformationGroup(String transformationGroup, Vec2F translate)

Translates the specified transformation group.


void animator.rotateTransformationGroup(String transformationGroup, float rotation, [Vec2F rotationCenter])

Rotates the specified transformation group by the specified angle in radians, optionally around the specified center point.


void animator.scaleTransformationGroup(String transformationGroup, float scale, [Vec2F scaleCenter])

void animator.scaleTransformationGroup(String transformationGroup, Vec2F scale, [Vec2F scaleCenter])

Scales the specified transformation group by the specified scale. Optionally scale it from a scaleCenter.


void animator.transformTransformationGroup(String transformationGroup, float a, float b, float c, float d, float tx, float ty)

Applies a custom Mat3 transform to the specified transformationGroup. The applied matrix will be:

[a, b, tx, c, d, ty, 0, 0, 1]


void animator.resetTransformationGroup(String transformationGroup)

Resets a transformationGroup to the identity transform.

[1, 0, 0 0, 1, 0, 0, 1, 1]


void animator.setParticleEmitterActive(String emitterName, bool active)

Sets a particle emitter to be active or inactive.


void animator.setParticleEmitterEmissionRate(String emitterName, float emissionRate)

Sets the rate at which a particle emitter emits particles while active.


void animator.setParticleEmitterBurstCount(String emitterName, unsigned burstCount)

Sets the amount of each particle the emitter will emit when using burstParticleEmitter.


void animator.setParticleEmitterOffsetRegion(String emitterName, RectF offsetRegion)

Sets an offset region for the particle emitter. Any particles spawned will have a randomized offset within the region added to their position.


void animator.burstParticleEmitter(String emitterName)

Spawns the entire set of particles burstCount times, where burstCount can be configured in the animator or set by setParticleEmitterBurstCount.


void animator.setLightActive(String lightName, bool active)

Sets a light to be active/inactive.


void animator.setLightPosition(String lightName, Vec2F position)

Sets the position of a light.


void animator.setLightColor(String lightName, Color color)

Sets the color of a light. Brighter color gives a higher light intensity.


void animator.setLightPointAngle(String lightName, float angle)

Sets the angle of a pointLight.


bool animator.hasSound(String soundName)

Returns whether the animator has a sound by the name of soundName


void animator.setSoundPool(String soundName, List<String> soundPool)

Sets the list of sound assets to pick from when playing a sound.


void animator.setSoundPosition(String soundName, Vec2F position)

Sets the position that a sound is played at.


void animator.playSound(String soundName, [int loops = 0])

Plays a sound. Optionally loop loops times. 0 plays the sound once (no loops), -1 loops indefinitely.


void animator.setSoundVolume(String soundName, float volume, [float rampTime = 0.0])

Sets the volume of a sound. Optionally smoothly transition the volume over rampTime seconds.


void animator.setSoundPitch(String soundName, float pitch, [float rampTime = 0.0])

Sets the relative pitch of a sound. Optionally smoothly transition the pitch over rampTime seconds.


void animator.stopAllSounds(String soundName)

Stops all instances of the specified sound.


void animator.setEffectActive(String effect, bool enabled)

Sets a configured effect to be active/inactive.


Vec2F animator.partPoint(String partName, String propertyName)

Returns a Vec2F configured in a part's properties with all of the part's transformations applied to it.


PolyF animator.partPoly(String partName, String propertyName)

Returns a PolyF configured in a part's properties with all the part's transformations applied to it.


Json animator.partProperty(String partName, String propertyName)

Returns an animation part property without applying any transformations.


Json animator.transformPoint(String partName, Vec2F point)

Applies the specified part's transformation on the given point.


Json animator.transformPoly(String partName, PolyF poly)

Applies the specified part's transformation on the given poly.