using Content.Shared.PowerCell; using JetBrains.Annotations; using Robust.Client.GameObjects; namespace Content.Client.PowerCell; [UsedImplicitly] public sealed class PowerCellSystem : SharedPowerCellSystem { [Dependency] private readonly SharedAppearanceSystem _appearance = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnPowerCellVisualsChange); } private void OnPowerCellVisualsChange(EntityUid uid, PowerCellVisualsComponent component, ref AppearanceChangeEvent args) { if (args.Sprite == null) return; if (!args.Sprite.TryGetLayer((int) PowerCellVisualLayers.Unshaded, out var unshadedLayer)) return; if (_appearance.TryGetData(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component)) { if (level == 0) { unshadedLayer.Visible = false; return; } unshadedLayer.Visible = true; args.Sprite.LayerSetState(PowerCellVisualLayers.Unshaded, $"o{level}"); } } private enum PowerCellVisualLayers : byte { Base, Unshaded, } }