Attempt to fix random test fail by undeleted AlertControl._spriteViewEntity (#29424)

This commit is contained in:
DrSmugleaf
2024-06-24 18:31:38 -07:00
committed by GitHub
parent 27665e44a9
commit a4d93362c3

View File

@@ -52,20 +52,12 @@ namespace Content.Client.UserInterface.Systems.Alerts.Controls
TooltipSupplier = SupplyTooltip; TooltipSupplier = SupplyTooltip;
Alert = alert; Alert = alert;
_severity = severity; _severity = severity;
_spriteViewEntity = _entityManager.Spawn(Alert.AlertViewEntity);
if (_entityManager.TryGetComponent<SpriteComponent>(_spriteViewEntity, out var sprite))
{
var icon = Alert.GetIcon(_severity);
if (sprite.LayerMapTryGet(AlertVisualLayers.Base, out var layer))
sprite.LayerSetSprite(layer, icon);
}
_icon = new SpriteView _icon = new SpriteView
{ {
Scale = new Vector2(2, 2) Scale = new Vector2(2, 2)
}; };
_icon.SetEntity(_spriteViewEntity);
SetupIcon();
Children.Add(_icon); Children.Add(_icon);
_cooldownGraphic = new CooldownGraphic _cooldownGraphic = new CooldownGraphic
@@ -113,6 +105,36 @@ namespace Content.Client.UserInterface.Systems.Alerts.Controls
_cooldownGraphic.FromTime(Cooldown.Value.Start, Cooldown.Value.End); _cooldownGraphic.FromTime(Cooldown.Value.Start, Cooldown.Value.End);
} }
private void SetupIcon()
{
if (!_entityManager.Deleted(_spriteViewEntity))
_entityManager.QueueDeleteEntity(_spriteViewEntity);
_spriteViewEntity = _entityManager.Spawn(Alert.AlertViewEntity);
if (_entityManager.TryGetComponent<SpriteComponent>(_spriteViewEntity, out var sprite))
{
var icon = Alert.GetIcon(_severity);
if (sprite.LayerMapTryGet(AlertVisualLayers.Base, out var layer))
sprite.LayerSetSprite(layer, icon);
}
_icon.SetEntity(_spriteViewEntity);
}
protected override void EnteredTree()
{
base.EnteredTree();
SetupIcon();
}
protected override void ExitedTree()
{
base.ExitedTree();
if (!_entityManager.Deleted(_spriteViewEntity))
_entityManager.QueueDeleteEntity(_spriteViewEntity);
}
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
base.Dispose(disposing); base.Dispose(disposing);