using Content.Shared.Shuttles.Components; using JetBrains.Annotations; namespace Content.Shared.Shuttles.Systems; public abstract partial class SharedShuttleSystem { /* * Handles the label visibility on radar controls. This can be hiding the label or applying other effects. */ protected virtual void UpdateIFFInterfaces(EntityUid gridUid, IFFComponent component) {} /// /// Sets the color for this grid to appear as on radar. /// [PublicAPI] public void SetIFFColor(EntityUid gridUid, Color color, IFFComponent? component = null) { component ??= EnsureComp(gridUid); if (component.Color.Equals(color)) return; component.Color = color; Dirty(component); UpdateIFFInterfaces(gridUid, component); } [PublicAPI] public void AddIFFFlag(EntityUid gridUid, IFFFlags flags, IFFComponent? component = null) { component ??= EnsureComp(gridUid); if ((component.Flags & flags) == flags) return; component.Flags |= flags; Dirty(component); UpdateIFFInterfaces(gridUid, component); } [PublicAPI] public void RemoveIFFFlag(EntityUid gridUid, IFFFlags flags, IFFComponent? component = null) { if (!Resolve(gridUid, ref component, false)) return; if ((component.Flags & flags) == 0x0) return; component.Flags &= ~flags; Dirty(component); UpdateIFFInterfaces(gridUid, component); } }