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:
@@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user