/** * @fileoverview Animation system constants and enumerations * @module constants */ /** * Animation clip types based on naming convention * @readonly * @enum {string} */ export const ClipTypes = { /** Loop animation */ LOOP: 'L', /** Quirk animation */ QUIRK: 'Q', /** Nested loop animation */ NESTED_LOOP: 'NL', /** Nested quirk animation */ NESTED_QUIRK: 'NQ', /** Nested in transition */ NESTED_IN: 'IN_NT', /** Nested out transition */ NESTED_OUT: 'OUT_NT', /** Transition animation */ TRANSITION: 'T' } /** * Character animation states * @readonly * @enum {string} */ export const States = { /** Waiting/idle state */ WAITING: 'wait', /** Reacting to input state */ REACTING: 'react', /** Typing response state */ TYPING: 'type', /** Sleep/inactive state */ SLEEPING: 'sleep' } /** * Character emotional states * @readonly * @enum {string} */ export const Emotions = { /** Neutral emotion */ NEUTRAL: '', /** Angry emotion */ ANGRY: 'an', /** Shocked emotion */ SHOCKED: 'sh', /** Happy emotion */ HAPPY: 'ha', /** Sad emotion */ SAD: 'sa' } /** * Default configuration values * @readonly * @type {Object} */ export const Config = { /** Default fade in duration for animations (ms) */ DEFAULT_FADE_IN: 0.3, /** Default fade out duration for animations (ms) */ DEFAULT_FADE_OUT: 0.3, /** Default quirk interval (ms) */ QUIRK_INTERVAL: 5000, /** Default inactivity timeout (ms) */ INACTIVITY_TIMEOUT: 60000, /** Quirk probability threshold */ QUIRK_PROBABILITY: 0.3 }