Attempt to fix random test fail by undeleted AlertControl._spriteViewEntity (#29424)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user