PointClickEngine::Characters::AnimationController
Inherits Reference < Object
Manages animation playback and state for character sprites
The AnimationController handles all aspects of character animation including:
- Animation definition and storage
- Playback control and state management
- Mood-based animation selection
- Frame timing and looping
- 8-directional animations
- Idle variations
- Animation priorities and interruption
Constants
IDLE_TRIGGER_TIME = 8.0_f32
Constants
TURN_ANIMATION_SPEED = 2.0_f32
Constructors
new(sprite : Graphics::AnimatedSprite | Nil = nil)
SourceInstance methods
add_animation(name : String, start_frame : Int32, frame_count : Int32, frame_speed : Float32 = Core::GameConstants::DEFAULT_ANIMATION_SPEED, loop : Bool = true, priority : Int32 = 0, interruptible : Bool = true, auto_return_to_idle : Bool = true, sound_effect : String | Nil = nil)
Defines a named animation for the character
add_directional_animation(base_name : String, start_frame : Int32, frames_per_direction : Int32, frame_speed : Float32 = 0.1)
Add directional animations (8 directions for one animation type)
add_idle_variation(name : String, start_frame : Int32, frame_count : Int32, frame_speed : Float32 = 0.2)
Add idle variations
animations=(animations : Hash(String, AnimationData))
Collection of defined animations by name
current_direction=(current_direction : Direction8)
Current 8-directional facing for enhanced animations
get_animation(name : String) : AnimationData | Nil
Gets animation data for a specific animation
idle_variations
Sourceidle_variations=(idle_variations : Array(String))
Sourcelast_direction
Sourcelast_direction=(last_direction : Direction8)
Sourceon_animation_complete=(on_animation_complete : Proc(String, Nil) | Nil)
Callback for when animations complete
play_animation(name : String, force_restart : Bool = true) : Bool
Plays a named animation with priority checking
update(dt : Float32, sprite : Graphics::AnimatedSprite | Nil)
Update with sprite reference (for compatibility)
update_directional_animation(state : AnimationState, direction : Direction8, force : Bool = false)
Update direction-based animation (8-directional)