Pawn/SkateAnimator.cs
namespace Skateboard;
public sealed class SkateAnimator : PawnAnimator
{
[Property] public Skateboard.Player.SkatePawn Pawn { get; set; }
[Property] public SkinnedModelRenderer BoardRenderer { get; set; }
protected override void OnUpdate()
{
var pawn = Pawn ?? Components.Get<Skateboard.Player.SkatePawn>();
if ( pawn is null )
return;
var controller = pawn.Controller;
SetAnimParameter( "b_grind", controller?.OnGrind ?? false );
SetAnimParameter( "b_onground", controller?.IsGrounded ?? false );
SetAnimParameter( "b_crouch", pawn.Crouch );
SetAnimParameter( "f_left", -pawn.TurnRight );
if ( BoardRenderer.IsValid() )
BoardRenderer.Set( "f_left", -pawn.TurnRight );
}
public void HandleEvent( string name )
{
switch ( name )
{
case "jump":
Trigger( "b_ollie" );
BoardRenderer?.Set( "b_ollie", true );
break;
case "land":
Trigger( "b_land" );
break;
case "front":
Trigger( "b_hit_front" );
break;
case "back":
Trigger( "b_hit_back" );
break;
case "angry":
Trigger( "b_angry" );
break;
}
}
}