using System.Numerics;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Shared.Climbing.Components;
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class ClimbingComponent : Component
{
///
/// Whether the owner is climbing on a climbable entity.
///
[AutoNetworkedField, DataField]
public bool IsClimbing;
///
/// Whether the owner is being moved onto the climbed entity.
///
[AutoNetworkedField, DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
public TimeSpan? NextTransition;
///
/// Direction to move when transition.
///
[AutoNetworkedField, DataField]
public Vector2 Direction;
///
/// How fast the entity is moved when climbing.
///
[DataField]
public float TransitionRate = 5f;
[AutoNetworkedField, DataField]
public Dictionary DisabledFixtureMasks = new();
}