80 lines
12 KiB
Plaintext
80 lines
12 KiB
Plaintext
|
|
|
|
|
|
|
|
|
|
|
|
// Created and Implemented by Sumeet Jakatdar
|
|
|
|
|
|
|
|
#namespace AnimationStateNetwork;
|
|
|
|
// ------------- AnimationMocomp Initialization ----------- //
|
|
function autoexec InitAnimationMocomps()
|
|
{
|
|
level._AnimationMocomps = [];
|
|
}
|
|
|
|
|
|
// ------------- AnimationMocomp Utility ----------- //
|
|
function RunAnimationMocomp( mocompName, mocompStatus, asmEntity, mocompAnim, mocompAnimBlendOutTime, mocompDuration )
|
|
{
|
|
Assert( ( mocompStatus >= 0 && mocompStatus <= 2 ), "ASM - Unsupported MocompStatus " + mocompStatus + " for RunAnimationMocomp." );
|
|
|
|
Assert( IsDefined( level._AnimationMocomps[mocompName] ), "BT - RegisterAnimationMocomps with " + mocompName + " does not exists." );
|
|
|
|
if( mocompStatus == 0 )
|
|
mocompStatus = "asm_mocomp_start";
|
|
else if( mocompStatus == 1 )
|
|
mocompStatus = "asm_mocomp_update";
|
|
else
|
|
mocompStatus = "asm_mocomp_terminate";
|
|
|
|
animationMocompResult = asmEntity [[level._AnimationMocomps[mocompName][mocompStatus]]]( asmEntity, mocompAnim, mocompAnimBlendOutTime, "", mocompDuration );
|
|
|
|
return animationMocompResult;
|
|
}
|
|
|
|
// ------------- AnimationMocomp API ----------- //
|
|
function RegisterAnimationMocomp( mocompName, startFuncPtr, updateFuncPtr, terminateFuncPtr )
|
|
{
|
|
mocompName = ToLower( mocompName );
|
|
|
|
Assert( IsString( mocompName ), "ASM - mocompName for RegisterAnimationMocomps is not a string." );
|
|
Assert( !IsDefined(level._AnimationMocomps[mocompName]), "mocomp with name " + mocompName + " is already registered." );
|
|
|
|
level._AnimationMocomps[mocompName] = array();
|
|
|
|
// ASM_MOCOMP_START
|
|
Assert( IsDefined( startFuncPtr ) && IsFunctionPtr( startFuncPtr ), "BT - RegisterAnimationMocomps must have startFunctionPtr and it must be of type functionPtr." );
|
|
level._AnimationMocomps[mocompName]["asm_mocomp_start"] = startFuncPtr;
|
|
|
|
// ASM_MOCOMP_UPDATE
|
|
if( IsDefined( updateFuncPtr ) )
|
|
{
|
|
Assert( IsFunctionPtr( updateFuncPtr ), "BT - RegisterAnimationMocomps must have updateFuncPtr and it must be of type functionPtr." );
|
|
level._AnimationMocomps[mocompName]["asm_mocomp_update"] = updateFuncPtr;
|
|
}
|
|
else
|
|
{
|
|
level._AnimationMocomps[mocompName]["asm_mocomp_update"] = &AnimationMocompEmptyFunc;
|
|
}
|
|
|
|
// ASM_MOCOMP_UPDATE
|
|
if( IsDefined( terminateFuncPtr ) )
|
|
{
|
|
Assert( IsFunctionPtr( terminateFuncPtr ), "BT - RegisterAnimationMocomps must have terminateFuncPtr and it must be of type functionPtr." );
|
|
level._AnimationMocomps[mocompName]["asm_mocomp_terminate"] = terminateFuncPtr;
|
|
}
|
|
else
|
|
{
|
|
level._AnimationMocomps[mocompName]["asm_mocomp_terminate"] = &AnimationMocompEmptyFunc;
|
|
}
|
|
}
|
|
|
|
function AnimationMocompEmptyFunc( entity, mocompAnim, mocompAnimBlendOutTime, mocompAnimFlag, mocompDuration )
|
|
{
|
|
|
|
}
|