using Content.Shared.SurveillanceCamera; using Robust.Client.GameObjects; namespace Content.Client.SurveillanceCamera; public sealed class SurveillanceCameraVisualsSystem : EntitySystem { [Dependency] private readonly SpriteSystem _sprite = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAppearanceChange); } private void OnAppearanceChange(EntityUid uid, SurveillanceCameraVisualsComponent component, ref AppearanceChangeEvent args) { if (!args.AppearanceData.TryGetValue(SurveillanceCameraVisualsKey.Key, out var data) || data is not SurveillanceCameraVisuals key || args.Sprite == null || !_sprite.LayerMapTryGet((uid, args.Sprite), SurveillanceCameraVisualsKey.Layer, out var layer, false) || !component.CameraSprites.TryGetValue(key, out var state)) { return; } _sprite.LayerSetRsiState((uid, args.Sprite), layer, state); } }