<?xml version="1.0"?>

<Component
    Name="NetworkAnimationComponent"
    Namespace="${Name}"
    OverrideComponent="true"
    OverrideController="false"
    OverrideInclude="Source/Components/NetworkAnimationComponent.h"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="MultiplayerAutoComponentSchema.xsd">

    <Include File="Source/${Name}Types.h"/>

    <ComponentRelation Constraint="Required" HasController="true" Name="NetworkTransformComponent" Namespace="Multiplayer" Include="Multiplayer/Components/NetworkTransformComponent.h" />
    <ComponentRelation Constraint="Required" HasController="true" Name="NetworkSimplePlayerCameraComponent" Namespace="${Name}" Include="Source/Components/NetworkSimplePlayerCameraComponent.h" />
    <ComponentRelation Constraint="Weak" HasController="true" Name="NetworkPlayerMovementComponent" Namespace="${Name}" Include="Source/Components/NetworkPlayerMovementComponent.h" />

    <NetworkProperty Type="CharacterAnimStateBitset" Name="ActiveAnimStates" Init="false" ReplicateFrom="Authority" ReplicateTo="Client" IsRewindable="true" IsPredictable="true" IsPublic="true" Container="Object" ExposeToEditor="false" ExposeToScript="false" GenerateEventBindings="false" Description="Bitset of active animation states" />

    <ArchetypeProperty Type="AZStd::string" Name="VelocityParamName"  Init="" ExposeToEditor="true" Description="Anim graph velocity parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="AimTargetParamName" Init="" ExposeToEditor="true" Description="Anim graph aim target parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="CrouchParamName"    Init="" ExposeToEditor="true" Description="Anim graph crouch parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="AimingParamName"    Init="" ExposeToEditor="true" Description="Anim graph aiming parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="ShootParamName"     Init="" ExposeToEditor="true" Description="Anim graph shoot parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="JumpParamName"      Init="" ExposeToEditor="true" Description="Anim graph jump parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="FallParamName"      Init="" ExposeToEditor="true" Description="Anim graph fall parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="LandParamName"      Init="" ExposeToEditor="true" Description="Anim graph land parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="HitParamName"       Init="" ExposeToEditor="true" Description="Anim graph hit parameter"/>
    <ArchetypeProperty Type="AZStd::string" Name="DeathParamName"     Init="" ExposeToEditor="true" Description="Anim graph death parameter"/>
</Component>
