using Content.Shared.StepTrigger.Systems; using Content.Shared.Whitelist; using Robust.Shared.GameStates; namespace Content.Shared.StepTrigger.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true)] [Access(typeof(StepTriggerSystem))] public sealed partial class StepTriggerComponent : Component { /// /// List of entities that are currently colliding with the entity. /// [ViewVariables, AutoNetworkedField] public HashSet Colliding = new(); /// /// The list of entities that are standing on this entity, /// which shouldn't be able to trigger it again until stepping off. /// [ViewVariables, AutoNetworkedField] public HashSet CurrentlySteppedOn = new(); /// /// Whether or not this component will currently try to trigger for entities. /// [DataField, AutoNetworkedField] public bool Active = true; /// /// Ratio of shape intersection for a trigger to occur. /// [DataField, AutoNetworkedField] public float IntersectRatio = 0.3f; /// /// Entities will only be triggered if their speed exceeds this limit. /// [DataField, AutoNetworkedField] public float RequiredTriggeredSpeed = 3.5f; /// /// If any entities occupy the blacklist on the same tile then steptrigger won't work. /// [DataField] public EntityWhitelist? Blacklist; /// /// If this is true, steptrigger will still occur on entities that are in air / weightless. They do not /// by default. /// [DataField] public bool IgnoreWeightless; } [RegisterComponent] [Access(typeof(StepTriggerSystem))] public sealed partial class StepTriggerActiveComponent : Component { }