fix: set correct layer visibility for power cell sprites (#38458)

* fix: set correct layer visibility for power cell sprites

* fix: use a default charge level for power cell sprites' appearance data
This commit is contained in:
Perry Fraser
2025-06-20 18:48:54 -04:00
committed by GitHub
parent 8e8f47497b
commit 416b276ac3

View File

@@ -48,18 +48,15 @@ public sealed class PowerCellSystem : SharedPowerCellSystem
if (!_sprite.LayerExists((uid, args.Sprite), PowerCellVisualLayers.Unshaded)) if (!_sprite.LayerExists((uid, args.Sprite), PowerCellVisualLayers.Unshaded))
return; return;
if (_appearance.TryGetData<byte>(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component)) if (!_appearance.TryGetData<byte>(uid, PowerCellVisuals.ChargeLevel, out var level, args.Component))
{ level = 0;
if (level == 0)
{
_sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, false);
return;
}
_sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, false); var positiveCharge = level > 0;
_sprite.LayerSetVisible((uid, args.Sprite), PowerCellVisualLayers.Unshaded, positiveCharge);
if (positiveCharge)
_sprite.LayerSetRsiState((uid, args.Sprite), PowerCellVisualLayers.Unshaded, $"o{level}"); _sprite.LayerSetRsiState((uid, args.Sprite), PowerCellVisualLayers.Unshaded, $"o{level}");
} }
}
private enum PowerCellVisualLayers : byte private enum PowerCellVisualLayers : byte
{ {