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;
Alert = alert;
_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
{
Scale = new Vector2(2, 2)
};
_icon.SetEntity(_spriteViewEntity);
SetupIcon();
Children.Add(_icon);
_cooldownGraphic = new CooldownGraphic
@@ -113,6 +105,36 @@ namespace Content.Client.UserInterface.Systems.Alerts.Controls
_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)
{
base.Dispose(disposing);