using Content.Shared.Movement.Systems;
using Content.Shared.Whitelist;
using Robust.Shared.GameStates;
namespace Content.Shared.Movement.Components;
///
/// Component that modifies the movement speed of other entities that come into contact with the entity this component is added to.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SpeedModifierContactsSystem))]
public sealed partial class SpeedModifierContactsComponent : Component
{
///
/// The modifier applied to the walk speed of entities that come into contact with the entity this component is added to.
///
[DataField, AutoNetworkedField]
public float WalkSpeedModifier = 1.0f;
///
/// The modifier applied to the sprint speed of entities that come into contact with the entity this component is added to.
///
[DataField, AutoNetworkedField]
public float SprintSpeedModifier = 1.0f;
///
/// Indicates whether this component affects the movement speed of airborne entities that come into contact with the entity this component is added to.
///
[DataField, AutoNetworkedField]
public bool AffectAirborne;
///
/// A whitelist of entities that should be ignored by this component's speed modifiers.
///
[DataField]
public EntityWhitelist? IgnoreWhitelist;
}