using Robust.Client.GameObjects; using Robust.Shared.GameObjects; namespace Content.Client.Markers; public sealed class MarkerSystem : EntitySystem { private bool _markersVisible; public bool MarkersVisible { get => _markersVisible; set { _markersVisible = value; UpdateMarkers(); } } public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnStartup); } private void OnStartup(EntityUid uid, MarkerComponent marker, ComponentStartup args) { UpdateVisibility(uid); } private void UpdateVisibility(EntityUid uid) { if (EntityManager.TryGetComponent(uid, out SpriteComponent? sprite)) { sprite.Visible = MarkersVisible; } } private void UpdateMarkers() { var query = AllEntityQuery(); while (query.MoveNext(out var uid, out var comp)) { UpdateVisibility(uid); } } }