using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.SubFloor { /// /// Simple component that automatically hides the sibling /// when the tile it's on is not a sub floor /// (plating). /// /// [NetworkedComponent] [RegisterComponent] [Friend(typeof(SharedSubFloorHideSystem))] public sealed class SubFloorHideComponent : Component { /// /// Whether the entity's current position has a "Floor-type" tile above its current position. /// [ViewVariables] public bool IsUnderCover { get; set; } = false; /// /// Whether interactions with this entity should be blocked while it is under floor tiles. /// /// /// Useful for entities like vents, which are only partially hidden. Anchor attempts will still be blocked. /// [DataField("blockInteractions")] public bool BlockInteractions { get; set; } = true; /// /// Whether this entity's ambience should be disabled when underneath the floor. /// /// /// Useful for cables and piping, gives maint it's distinct noise. /// [DataField("blockAmbience")] public bool BlockAmbience { get; set; } = true; /// /// When revealed using some scanning tool, what transparency should be used to draw this item? /// [DataField("scannerTransparency")] public float ScannerTransparency = 0.8f; /// /// The entities this subfloor is revealed by. /// [ViewVariables] public HashSet RevealedBy { get; set; } = new(); } }