using Content.Shared.GameObjects.Components.Power; using Robust.Client.GameObjects; using Robust.Client.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.GameObjects; namespace Content.Client.GameObjects.Components.Power { public class ApcVisualizer2D : AppearanceVisualizer { public override void InitializeEntity(IEntity entity) { base.InitializeEntity(entity); var sprite = entity.GetComponent(); sprite.LayerMapSet(Layers.ChargeState, sprite.AddLayerState("apco3-0")); sprite.LayerSetShader(Layers.ChargeState, "unshaded"); sprite.LayerMapSet(Layers.Lock, sprite.AddLayerState("apcox-0")); sprite.LayerSetShader(Layers.Lock, "unshaded"); sprite.LayerMapSet(Layers.Equipment, sprite.AddLayerState("apco0-3")); sprite.LayerSetShader(Layers.Equipment, "unshaded"); sprite.LayerMapSet(Layers.Lighting, sprite.AddLayerState("apco1-3")); sprite.LayerSetShader(Layers.Lighting, "unshaded"); sprite.LayerMapSet(Layers.Environment, sprite.AddLayerState("apco2-3")); sprite.LayerSetShader(Layers.Environment, "unshaded"); } public override void OnChangeData(AppearanceComponent component) { base.OnChangeData(component); var sprite = component.Owner.GetComponent(); if (component.TryGetData(ApcVisuals.ChargeState, out var state)) { switch (state) { case ApcChargeState.Lack: sprite.LayerSetState(Layers.ChargeState, "apco3-0"); break; case ApcChargeState.Charging: sprite.LayerSetState(Layers.ChargeState, "apco3-1"); break; case ApcChargeState.Full: sprite.LayerSetState(Layers.ChargeState, "apco3-2"); break; } } else { sprite.LayerSetState(Layers.ChargeState, "apco3-0"); } } enum Layers { ChargeState, Lock, Equipment, Lighting, Environment, } } }