using Content.Shared._Horizon.ItemSwitch; using Content.Shared._Horizon.ItemSwitch.Components; using Robust.Client.GameObjects; namespace Content.Client._Horizon.ItemSwitch; public sealed class ItemSwitchSystem : SharedItemSwitchSystem { public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnChanged); } private void OnChanged(Entity ent, ref AfterAutoHandleStateEvent args) => UpdateVisuals(ent, ent.Comp.State); protected override void UpdateVisuals(Entity ent, string key) { base.UpdateVisuals(ent, key); if (!TryComp(ent, out SpriteComponent? sprite) || !ent.Comp.States.TryGetValue(key, out var state)) return; if (state.Sprite != null) sprite.LayerSetSprite(0, state.Sprite); } }