using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Standing; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] public sealed partial class StandingStateComponent : Component { [DataField] public SoundSpecifier DownSound { get; private set; } = new SoundCollectionSpecifier("BodyFall"); [DataField, AutoNetworkedField] public StandingState CurrentState { get; set; } = StandingState.Standing; [DataField, AutoNetworkedField] public bool Standing { get; set; } = true; /// /// List of fixtures that had their collision mask changed when the entity was downed. /// Required for re-adding the collision mask. /// [DataField, AutoNetworkedField] public List ChangedFixtures = new(); /// /// WWDP - How much should the floor friction change if not standing /// [DataField, AutoNetworkedField] public float LayingFrictionMultiplier = 3f; } public enum StandingState { Lying, GettingUp, Standing, }