using Content.Shared.Physics; using Content.Shared.Whitelist; using Robust.Shared.GameStates; namespace Content.Shared.RepulseAttract; /// /// Used to repulse or attract entities away from the entity this is on /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(RepulseAttractSystem))] public sealed partial class RepulseAttractComponent : Component { /// /// How fast should the Repulsion/Attraction be? /// A positive value will repulse objects, a negative value will attract /// [DataField, AutoNetworkedField] public float Speed = 5.0f; /// /// How close do the entities need to be? /// [DataField, AutoNetworkedField] public float Range = 5.0f; /// /// What kind of entities should this effect apply to? /// [DataField, AutoNetworkedField] public EntityWhitelist? Whitelist; /// /// What collision layers should be excluded? /// The default excludes ghost mobs, revenants, the AI camera etc. /// [DataField, AutoNetworkedField] public CollisionGroup CollisionMask = CollisionGroup.GhostImpassable; }