Cleanup warnings in DamageVisualsSystem (#37372)

This commit is contained in:
Tayrtahn
2025-05-12 12:48:13 -04:00
committed by GitHub
parent 66c01abbaa
commit 410d8087c6

View File

@@ -27,6 +27,7 @@ namespace Content.Client.Damage;
public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponent> public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponent>
{ {
[Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -228,7 +229,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
// the layer key just doesn't exist, we skip it. // the layer key just doesn't exist, we skip it.
foreach (var key in damageVisComp.TargetLayers) foreach (var key in damageVisComp.TargetLayers)
{ {
if (!spriteComponent.LayerMapTryGet(key, out var index)) if (!_sprite.LayerMapTryGet((entity, spriteComponent), key, out var index, false))
{ {
Log.Warning($"Layer at key {key} was invalid for entity {entity}."); Log.Warning($"Layer at key {key} was invalid for entity {entity}.");
continue; continue;
@@ -253,7 +254,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
foreach (var layer in damageVisComp.TargetLayerMapKeys) foreach (var layer in damageVisComp.TargetLayerMapKeys)
{ {
var layerCount = spriteComponent.AllLayers.Count(); var layerCount = spriteComponent.AllLayers.Count();
var index = spriteComponent.LayerMapGet(layer); var index = _sprite.LayerMapGet((entity, spriteComponent), layer);
// var layerState = spriteComponent.LayerGetState(index).ToString()!; // var layerState = spriteComponent.LayerGetState(index).ToString()!;
if (index + 1 != layerCount) if (index + 1 != layerCount)
@@ -269,7 +270,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
{ {
foreach (var (group, sprite) in damageVisComp.DamageOverlayGroups) foreach (var (group, sprite) in damageVisComp.DamageOverlayGroups)
{ {
AddDamageLayerToSprite(spriteComponent, AddDamageLayerToSprite((entity, spriteComponent),
sprite, sprite,
$"{layer}_{group}_{damageVisComp.Thresholds[1]}", $"{layer}_{group}_{damageVisComp.Thresholds[1]}",
$"{layer}{group}", $"{layer}{group}",
@@ -283,7 +284,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
// was taken. // was taken.
else if (damageVisComp.DamageOverlay != null) else if (damageVisComp.DamageOverlay != null)
{ {
AddDamageLayerToSprite(spriteComponent, AddDamageLayerToSprite((entity, spriteComponent),
damageVisComp.DamageOverlay, damageVisComp.DamageOverlay,
$"{layer}_{damageVisComp.Thresholds[1]}", $"{layer}_{damageVisComp.Thresholds[1]}",
$"{layer}trackDamage", $"{layer}trackDamage",
@@ -301,7 +302,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
{ {
foreach (var (group, sprite) in damageVisComp.DamageOverlayGroups) foreach (var (group, sprite) in damageVisComp.DamageOverlayGroups)
{ {
AddDamageLayerToSprite(spriteComponent, AddDamageLayerToSprite((entity, spriteComponent),
sprite, sprite,
$"DamageOverlay_{group}_{damageVisComp.Thresholds[1]}", $"DamageOverlay_{group}_{damageVisComp.Thresholds[1]}",
$"DamageOverlay{group}"); $"DamageOverlay{group}");
@@ -310,7 +311,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
} }
else if (damageVisComp.DamageOverlay != null) else if (damageVisComp.DamageOverlay != null)
{ {
AddDamageLayerToSprite(spriteComponent, AddDamageLayerToSprite((entity, spriteComponent),
damageVisComp.DamageOverlay, damageVisComp.DamageOverlay,
$"DamageOverlay_{damageVisComp.Thresholds[1]}", $"DamageOverlay_{damageVisComp.Thresholds[1]}",
"DamageOverlay"); "DamageOverlay");
@@ -322,16 +323,19 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// <summary> /// <summary>
/// Adds a damage tracking layer to a given sprite component. /// Adds a damage tracking layer to a given sprite component.
/// </summary> /// </summary>
private void AddDamageLayerToSprite(SpriteComponent spriteComponent, DamageVisualizerSprite sprite, string state, string mapKey, int? index = null) private void AddDamageLayerToSprite(Entity<SpriteComponent?> spriteEnt, DamageVisualizerSprite sprite, string state, string mapKey, int? index = null)
{ {
var newLayer = spriteComponent.AddLayer( var newLayer = _sprite.AddLayer(
spriteEnt,
new SpriteSpecifier.Rsi( new SpriteSpecifier.Rsi(
new (sprite.Sprite), state new(sprite.Sprite), state
), index); ),
spriteComponent.LayerMapSet(mapKey, newLayer); index
);
_sprite.LayerMapSet(spriteEnt, mapKey, newLayer);
if (sprite.Color != null) if (sprite.Color != null)
spriteComponent.LayerSetColor(newLayer, Color.FromHex(sprite.Color)); _sprite.LayerSetColor(spriteEnt, newLayer, Color.FromHex(sprite.Color));
spriteComponent.LayerSetVisible(newLayer, false); _sprite.LayerSetVisible(spriteEnt, newLayer, false);
} }
protected override void OnAppearanceChange(EntityUid uid, DamageVisualsComponent damageVisComp, ref AppearanceChangeEvent args) protected override void OnAppearanceChange(EntityUid uid, DamageVisualsComponent damageVisComp, ref AppearanceChangeEvent args)
@@ -362,18 +366,18 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
UpdateDisabledLayers(uid, spriteComponent, component, damageVisComp); UpdateDisabledLayers(uid, spriteComponent, component, damageVisComp);
if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null && damageVisComp.TargetLayers == null) if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null && damageVisComp.TargetLayers == null)
CheckOverlayOrdering(spriteComponent, damageVisComp); CheckOverlayOrdering((uid, spriteComponent), damageVisComp);
if (AppearanceSystem.TryGetData<bool>(uid, DamageVisualizerKeys.ForceUpdate, out var update, component) if (AppearanceSystem.TryGetData<bool>(uid, DamageVisualizerKeys.ForceUpdate, out var update, component)
&& update) && update)
{ {
ForceUpdateLayers(damageComponent, spriteComponent, damageVisComp); ForceUpdateLayers((uid, damageComponent, spriteComponent, damageVisComp));
return; return;
} }
if (damageVisComp.TrackAllDamage) if (damageVisComp.TrackAllDamage)
{ {
UpdateDamageVisuals(damageComponent, spriteComponent, damageVisComp); UpdateDamageVisuals((uid, damageComponent, spriteComponent, damageVisComp));
return; return;
} }
@@ -383,7 +387,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
data = new DamageVisualizerGroupData(Comp<DamageableComponent>(uid).DamagePerGroup.Keys.ToList()); data = new DamageVisualizerGroupData(Comp<DamageableComponent>(uid).DamagePerGroup.Keys.ToList());
} }
UpdateDamageVisuals(data.GroupList, damageComponent, spriteComponent, damageVisComp); UpdateDamageVisuals(data.GroupList, (uid, damageComponent, spriteComponent, damageVisComp));
} }
/// <summary> /// <summary>
@@ -406,7 +410,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
damageVisComp.DisabledLayers[layer] = disabled; damageVisComp.DisabledLayers[layer] = disabled;
if (damageVisComp.TrackAllDamage) if (damageVisComp.TrackAllDamage)
{ {
spriteComponent.LayerSetVisible($"{layer}trackDamage", !disabled); _sprite.LayerSetVisible((uid, spriteComponent), $"{layer}trackDamage", !disabled);
continue; continue;
} }
@@ -415,7 +419,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
foreach (var damageGroup in damageVisComp.DamageOverlayGroups.Keys) foreach (var damageGroup in damageVisComp.DamageOverlayGroups.Keys)
{ {
spriteComponent.LayerSetVisible($"{layer}{damageGroup}", !disabled); _sprite.LayerSetVisible((uid, spriteComponent), $"{layer}{damageGroup}", !disabled);
} }
} }
} }
@@ -427,16 +431,16 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// most layer doesn't match, the sprite /// most layer doesn't match, the sprite
/// layers are recreated and placed on top. /// layers are recreated and placed on top.
/// </summary> /// </summary>
private void CheckOverlayOrdering(SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp) private void CheckOverlayOrdering(Entity<SpriteComponent> spriteEnt, DamageVisualsComponent damageVisComp)
{ {
if (spriteComponent[damageVisComp.TopMostLayerKey] != spriteComponent[spriteComponent.AllLayers.Count() - 1]) if (spriteEnt.Comp[damageVisComp.TopMostLayerKey] != spriteEnt.Comp[spriteEnt.Comp.AllLayers.Count() - 1])
{ {
if (!damageVisComp.TrackAllDamage && damageVisComp.DamageOverlayGroups != null) if (!damageVisComp.TrackAllDamage && damageVisComp.DamageOverlayGroups != null)
{ {
foreach (var (damageGroup, sprite) in damageVisComp.DamageOverlayGroups) foreach (var (damageGroup, sprite) in damageVisComp.DamageOverlayGroups)
{ {
var threshold = damageVisComp.LastThresholdPerGroup[damageGroup]; var threshold = damageVisComp.LastThresholdPerGroup[damageGroup];
ReorderOverlaySprite(spriteComponent, ReorderOverlaySprite(spriteEnt,
damageVisComp, damageVisComp,
sprite, sprite,
$"DamageOverlay{damageGroup}", $"DamageOverlay{damageGroup}",
@@ -446,7 +450,7 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
} }
else if (damageVisComp.TrackAllDamage && damageVisComp.DamageOverlay != null) else if (damageVisComp.TrackAllDamage && damageVisComp.DamageOverlay != null)
{ {
ReorderOverlaySprite(spriteComponent, ReorderOverlaySprite(spriteEnt,
damageVisComp, damageVisComp,
damageVisComp.DamageOverlay, damageVisComp.DamageOverlay,
$"DamageOverlay", $"DamageOverlay",
@@ -456,21 +460,22 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
} }
} }
private void ReorderOverlaySprite(SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp, DamageVisualizerSprite sprite, string key, string statePrefix, FixedPoint2 threshold) private void ReorderOverlaySprite(Entity<SpriteComponent> spriteEnt, DamageVisualsComponent damageVisComp, DamageVisualizerSprite sprite, string key, string statePrefix, FixedPoint2 threshold)
{ {
spriteComponent.LayerMapTryGet(key, out var spriteLayer); _sprite.LayerMapTryGet(spriteEnt.AsNullable(), key, out var spriteLayer, false);
var visibility = spriteComponent[spriteLayer].Visible; var visibility = spriteEnt.Comp[spriteLayer].Visible;
spriteComponent.RemoveLayer(spriteLayer); _sprite.RemoveLayer(spriteEnt.AsNullable(), spriteLayer);
if (threshold == FixedPoint2.Zero) // these should automatically be invisible if (threshold == FixedPoint2.Zero) // these should automatically be invisible
threshold = damageVisComp.Thresholds[1]; threshold = damageVisComp.Thresholds[1];
spriteLayer = spriteComponent.AddLayer( spriteLayer = _sprite.AddLayer(
spriteEnt.AsNullable(),
new SpriteSpecifier.Rsi( new SpriteSpecifier.Rsi(
new (sprite.Sprite), new(sprite.Sprite),
$"{statePrefix}_{threshold}" $"{statePrefix}_{threshold}"
), ),
spriteLayer); spriteLayer);
spriteComponent.LayerMapSet(key, spriteLayer); _sprite.LayerMapSet(spriteEnt.AsNullable(), key, spriteLayer);
spriteComponent.LayerSetVisible(spriteLayer, visibility); _sprite.LayerSetVisible(spriteEnt.AsNullable(), spriteLayer, visibility);
// this is somewhat iffy since it constantly reallocates // this is somewhat iffy since it constantly reallocates
damageVisComp.TopMostLayerKey = key; damageVisComp.TopMostLayerKey = key;
} }
@@ -479,8 +484,12 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// Updates damage visuals without tracking /// Updates damage visuals without tracking
/// any damage groups. /// any damage groups.
/// </summary> /// </summary>
private void UpdateDamageVisuals(DamageableComponent damageComponent, SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp) private void UpdateDamageVisuals(Entity<DamageableComponent, SpriteComponent, DamageVisualsComponent> entity)
{ {
var damageComponent = entity.Comp1;
var spriteComponent = entity.Comp2;
var damageVisComp = entity.Comp3;
if (!CheckThresholdBoundary(damageComponent.TotalDamage, damageVisComp.LastDamageThreshold, damageVisComp, out var threshold)) if (!CheckThresholdBoundary(damageComponent.TotalDamage, damageVisComp.LastDamageThreshold, damageVisComp, out var threshold))
return; return;
@@ -490,12 +499,12 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
{ {
foreach (var layerMapKey in damageVisComp.TargetLayerMapKeys) foreach (var layerMapKey in damageVisComp.TargetLayerMapKeys)
{ {
UpdateTargetLayer(spriteComponent, damageVisComp, layerMapKey, threshold); UpdateTargetLayer((entity, spriteComponent), damageVisComp, layerMapKey, threshold);
} }
} }
else else
{ {
UpdateOverlay(spriteComponent, threshold); UpdateOverlay((entity, spriteComponent), threshold);
} }
} }
@@ -504,8 +513,12 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// according to the list of damage groups /// according to the list of damage groups
/// passed into it. /// passed into it.
/// </summary> /// </summary>
private void UpdateDamageVisuals(List<string> delta, DamageableComponent damageComponent, SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp) private void UpdateDamageVisuals(List<string> delta, Entity<DamageableComponent, SpriteComponent, DamageVisualsComponent> entity)
{ {
var damageComponent = entity.Comp1;
var spriteComponent = entity.Comp2;
var damageVisComp = entity.Comp3;
foreach (var damageGroup in delta) foreach (var damageGroup in delta)
{ {
if (!damageVisComp.Overlay && damageGroup != damageVisComp.DamageGroup) if (!damageVisComp.Overlay && damageGroup != damageVisComp.DamageGroup)
@@ -525,12 +538,12 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
{ {
foreach (var layerMapKey in damageVisComp.TargetLayerMapKeys) foreach (var layerMapKey in damageVisComp.TargetLayerMapKeys)
{ {
UpdateTargetLayer(spriteComponent, damageVisComp, layerMapKey, damageGroup, threshold); UpdateTargetLayer((entity, spriteComponent, damageVisComp), layerMapKey, damageGroup, threshold);
} }
} }
else else
{ {
UpdateOverlay(spriteComponent, damageVisComp, damageGroup, threshold); UpdateOverlay((entity, spriteComponent, damageVisComp), damageGroup, threshold);
} }
} }
@@ -567,19 +580,21 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// Does different things depending on /// Does different things depending on
/// the configuration of the visualizer. /// the configuration of the visualizer.
/// </summary> /// </summary>
private void ForceUpdateLayers(DamageableComponent damageComponent, SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp) private void ForceUpdateLayers(Entity<DamageableComponent, SpriteComponent, DamageVisualsComponent> entity)
{ {
var damageVisComp = entity.Comp3;
if (damageVisComp.DamageOverlayGroups != null) if (damageVisComp.DamageOverlayGroups != null)
{ {
UpdateDamageVisuals(damageVisComp.DamageOverlayGroups.Keys.ToList(), damageComponent, spriteComponent, damageVisComp); UpdateDamageVisuals(damageVisComp.DamageOverlayGroups.Keys.ToList(), entity);
} }
else if (damageVisComp.DamageGroup != null) else if (damageVisComp.DamageGroup != null)
{ {
UpdateDamageVisuals(new List<string>(){ damageVisComp.DamageGroup }, damageComponent, spriteComponent, damageVisComp); UpdateDamageVisuals(new List<string>() { damageVisComp.DamageGroup }, entity);
} }
else if (damageVisComp.DamageOverlay != null) else if (damageVisComp.DamageOverlay != null)
{ {
UpdateDamageVisuals(damageComponent, spriteComponent, damageVisComp); UpdateDamageVisuals(entity);
} }
} }
@@ -588,16 +603,16 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// it assumes you're updating a layer that is tracking all /// it assumes you're updating a layer that is tracking all
/// damage. /// damage.
/// </summary> /// </summary>
private void UpdateTargetLayer(SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp, object layerMapKey, FixedPoint2 threshold) private void UpdateTargetLayer(Entity<SpriteComponent> spriteEnt, DamageVisualsComponent damageVisComp, object layerMapKey, FixedPoint2 threshold)
{ {
if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null) if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null)
{ {
if (!damageVisComp.DisabledLayers[layerMapKey]) if (!damageVisComp.DisabledLayers[layerMapKey])
{ {
var layerState = damageVisComp.LayerMapKeyStates[layerMapKey]; var layerState = damageVisComp.LayerMapKeyStates[layerMapKey];
spriteComponent.LayerMapTryGet($"{layerMapKey}trackDamage", out var spriteLayer); _sprite.LayerMapTryGet(spriteEnt.AsNullable(), $"{layerMapKey}trackDamage", out var spriteLayer, false);
UpdateDamageLayerState(spriteComponent, UpdateDamageLayerState(spriteEnt,
spriteLayer, spriteLayer,
$"{layerState}", $"{layerState}",
threshold); threshold);
@@ -606,9 +621,9 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
else if (!damageVisComp.Overlay) else if (!damageVisComp.Overlay)
{ {
var layerState = damageVisComp.LayerMapKeyStates[layerMapKey]; var layerState = damageVisComp.LayerMapKeyStates[layerMapKey];
spriteComponent.LayerMapTryGet(layerMapKey, out var spriteLayer); _sprite.LayerMapTryGet(spriteEnt.AsNullable(), $"{layerMapKey}", out var spriteLayer, false);
UpdateDamageLayerState(spriteComponent, UpdateDamageLayerState(spriteEnt,
spriteLayer, spriteLayer,
$"{layerState}", $"{layerState}",
threshold); threshold);
@@ -618,16 +633,20 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// <summary> /// <summary>
/// Updates a target layer by damage group. /// Updates a target layer by damage group.
/// </summary> /// </summary>
private void UpdateTargetLayer(SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp, object layerMapKey, string damageGroup, FixedPoint2 threshold) private void UpdateTargetLayer(Entity<SpriteComponent, DamageVisualsComponent> entity, object layerMapKey, string damageGroup, FixedPoint2 threshold)
{ {
var spriteComponent = entity.Comp1;
var damageVisComp = entity.Comp2;
if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null) if (damageVisComp.Overlay && damageVisComp.DamageOverlayGroups != null)
{ {
if (damageVisComp.DamageOverlayGroups.ContainsKey(damageGroup) && !damageVisComp.DisabledLayers[layerMapKey]) if (damageVisComp.DamageOverlayGroups.ContainsKey(damageGroup) && !damageVisComp.DisabledLayers[layerMapKey])
{ {
var layerState = damageVisComp.LayerMapKeyStates[layerMapKey]; var layerState = damageVisComp.LayerMapKeyStates[layerMapKey];
spriteComponent.LayerMapTryGet($"{layerMapKey}{damageGroup}", out var spriteLayer); _sprite.LayerMapTryGet((entity, spriteComponent), $"{layerMapKey}{damageGroup}", out var spriteLayer, false);
UpdateDamageLayerState(spriteComponent, UpdateDamageLayerState(
(entity, spriteComponent),
spriteLayer, spriteLayer,
$"{layerState}_{damageGroup}", $"{layerState}_{damageGroup}",
threshold); threshold);
@@ -636,9 +655,10 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
else if (!damageVisComp.Overlay) else if (!damageVisComp.Overlay)
{ {
var layerState = damageVisComp.LayerMapKeyStates[layerMapKey]; var layerState = damageVisComp.LayerMapKeyStates[layerMapKey];
spriteComponent.LayerMapTryGet(layerMapKey, out var spriteLayer); _sprite.LayerMapTryGet((entity, spriteComponent), $"{layerMapKey}", out var spriteLayer, false);
UpdateDamageLayerState(spriteComponent, UpdateDamageLayerState(
(entity, spriteComponent),
spriteLayer, spriteLayer,
$"{layerState}_{damageGroup}", $"{layerState}_{damageGroup}",
threshold); threshold);
@@ -648,11 +668,11 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// <summary> /// <summary>
/// Updates an overlay that is tracking all damage. /// Updates an overlay that is tracking all damage.
/// </summary> /// </summary>
private void UpdateOverlay(SpriteComponent spriteComponent, FixedPoint2 threshold) private void UpdateOverlay(Entity<SpriteComponent> spriteEnt, FixedPoint2 threshold)
{ {
spriteComponent.LayerMapTryGet($"DamageOverlay", out var spriteLayer); _sprite.LayerMapTryGet(spriteEnt.AsNullable(), $"DamageOverlay", out var spriteLayer, false);
UpdateDamageLayerState(spriteComponent, UpdateDamageLayerState(spriteEnt,
spriteLayer, spriteLayer,
$"DamageOverlay", $"DamageOverlay",
threshold); threshold);
@@ -661,15 +681,19 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// <summary> /// <summary>
/// Updates an overlay based on damage group. /// Updates an overlay based on damage group.
/// </summary> /// </summary>
private void UpdateOverlay(SpriteComponent spriteComponent, DamageVisualsComponent damageVisComp, string damageGroup, FixedPoint2 threshold) private void UpdateOverlay(Entity<SpriteComponent, DamageVisualsComponent> entity, string damageGroup, FixedPoint2 threshold)
{ {
var spriteComponent = entity.Comp1;
var damageVisComp = entity.Comp2;
if (damageVisComp.DamageOverlayGroups != null) if (damageVisComp.DamageOverlayGroups != null)
{ {
if (damageVisComp.DamageOverlayGroups.ContainsKey(damageGroup)) if (damageVisComp.DamageOverlayGroups.ContainsKey(damageGroup))
{ {
spriteComponent.LayerMapTryGet($"DamageOverlay{damageGroup}", out var spriteLayer); _sprite.LayerMapTryGet((entity, spriteComponent), $"DamageOverlay{damageGroup}", out var spriteLayer, false);
UpdateDamageLayerState(spriteComponent, UpdateDamageLayerState(
(entity, spriteComponent),
spriteLayer, spriteLayer,
$"DamageOverlay_{damageGroup}", $"DamageOverlay_{damageGroup}",
threshold); threshold);
@@ -683,19 +707,19 @@ public sealed class DamageVisualsSystem : VisualizerSystem<DamageVisualsComponen
/// function calls it), and what threshold /// function calls it), and what threshold
/// was passed into it. /// was passed into it.
/// </summary> /// </summary>
private void UpdateDamageLayerState(SpriteComponent spriteComponent, int spriteLayer, string statePrefix, FixedPoint2 threshold) private void UpdateDamageLayerState(Entity<SpriteComponent> spriteEnt, int spriteLayer, string statePrefix, FixedPoint2 threshold)
{ {
if (threshold == 0) if (threshold == 0)
{ {
spriteComponent.LayerSetVisible(spriteLayer, false); _sprite.LayerSetVisible(spriteEnt.AsNullable(), spriteLayer, false);
} }
else else
{ {
if (!spriteComponent[spriteLayer].Visible) if (!spriteEnt.Comp[spriteLayer].Visible)
{ {
spriteComponent.LayerSetVisible(spriteLayer, true); _sprite.LayerSetVisible(spriteEnt.AsNullable(), spriteLayer, true);
} }
spriteComponent.LayerSetState(spriteLayer, $"{statePrefix}_{threshold}"); _sprite.LayerSetRsiState(spriteEnt.AsNullable(), spriteLayer, $"{statePrefix}_{threshold}");
} }
} }
} }