Try fix random explosion test failures (#23158)

This commit is contained in:
Leon Friedrich
2023-12-28 22:23:41 -05:00
committed by GitHub
parent 4bc97c9594
commit c2c76c2035
2 changed files with 15 additions and 8 deletions

View File

@@ -3,6 +3,7 @@ using Robust.Client.Graphics;
using Robust.Client.ResourceManagement; using Robust.Client.ResourceManagement;
using Robust.Shared.GameStates; using Robust.Shared.GameStates;
using Robust.Shared.Graphics.RSI; using Robust.Shared.Graphics.RSI;
using Robust.Shared.Map;
using Robust.Shared.Prototypes; using Robust.Shared.Prototypes;
using Robust.Shared.Utility; using Robust.Shared.Utility;
@@ -18,6 +19,7 @@ public sealed class ExplosionOverlaySystem : EntitySystem
[Dependency] private readonly IResourceCache _resCache = default!; [Dependency] private readonly IResourceCache _resCache = default!;
[Dependency] private readonly IOverlayManager _overlayMan = default!; [Dependency] private readonly IOverlayManager _overlayMan = default!;
[Dependency] private readonly SharedPointLightSystem _lights = default!; [Dependency] private readonly SharedPointLightSystem _lights = default!;
[Dependency] private readonly IMapManager _mapMan = default!;
public override void Initialize() public override void Initialize()
{ {
@@ -65,15 +67,20 @@ public sealed class ExplosionOverlaySystem : EntitySystem
return; return;
} }
// spawn in a client-side light source at the epicenter // Map may have been deleted.
var lightEntity = Spawn("ExplosionLight", component.Epicenter); if (_mapMan.MapExists(component.Epicenter.MapId))
var light = _lights.EnsureLight(lightEntity); {
// spawn in a client-side light source at the epicenter
var lightEntity = Spawn("ExplosionLight", component.Epicenter);
var light = _lights.EnsureLight(lightEntity);
_lights.SetRadius(lightEntity, component.Intensity.Count, light);
_lights.SetEnergy(lightEntity, component.Intensity.Count, light);
_lights.SetColor(lightEntity, type.LightColor, light);
textures.LightEntity = lightEntity;
}
_lights.SetRadius(lightEntity, component.Intensity.Count, light);
_lights.SetEnergy(lightEntity, component.Intensity.Count, light);
_lights.SetColor(lightEntity, type.LightColor, light);
textures.LightEntity = lightEntity;
textures.FireColor = type.FireColor; textures.FireColor = type.FireColor;
textures.IntensityPerState = type.IntensityPerState; textures.IntensityPerState = type.IntensityPerState;

View File

@@ -67,7 +67,7 @@ public sealed class ModularGrenadeTests : InteractionTest
} }
// Grenade has exploded. // Grenade has exploded.
await RunTicks(5); await RunTicks(30);
AssertDeleted(); AssertDeleted();
} }
} }