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
_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);