Skip to content

Commit

Permalink
Explosion block fix visual issue
Browse files Browse the repository at this point in the history
  • Loading branch information
dvir001 committed Apr 20, 2024
1 parent 61ed74b commit 2c36468
Showing 1 changed file with 19 additions and 17 deletions.
36 changes: 19 additions & 17 deletions Content.Server/Explosion/EntitySystems/ExplosionSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,25 @@ public void QueueExplosion(MapCoordinates epicenter,

var (area, iterationIntensity, spaceData, gridData, spaceMatrix) = results.Value;

// Frontier - Block explosions on safe zone
var location = EntityCoordinates.FromMap(_mapManager.GetMapEntityId(pos.MapId), pos, _transformSystem, EntityManager);
var gridId = location.GetGridUid(EntityManager);
if (!HasComp<MapGridComponent>(gridId))
{
location = location.AlignWithClosestGridTile();
gridId = location.GetGridUid(EntityManager);
// Check if fixing it failed / get final grid ID
if (HasComp<MapGridComponent>(gridId))
{
var mapGrid = _mapManager.GetGrid(gridId.Value);
var gridUid = mapGrid.Owner;
var ev = new FloorTileAttemptEvent();
if (HasComp<ProtectedGridComponent>(gridUid) || ev.Cancelled)
return null;
}
}
// Frontier - Block explosions on safe zone

var visualEnt = CreateExplosionVisualEntity(pos, queued.Proto.ID, spaceMatrix, spaceData, gridData.Values, iterationIntensity);

// camera shake
Expand Down Expand Up @@ -384,23 +403,6 @@ public void QueueExplosion(MapCoordinates epicenter,

_audio.PlayGlobal(farSound, farFilter, true, farSound.Params);

// Block explosions on safe zone
var location = mapEntityCoords;
var gridId = location.GetGridUid(EntityManager);
if (!HasComp<MapGridComponent>(gridId))
{
location = location.AlignWithClosestGridTile();
gridId = location.GetGridUid(EntityManager);
// Check if fixing it failed / get final grid ID
if (!HasComp<MapGridComponent>(gridId))
return null;
}
var mapGrid = _mapManager.GetGrid(gridId.Value);
var gridUid = mapGrid.Owner;
var ev = new FloorTileAttemptEvent();
if (HasComp<ProtectedGridComponent>(gridUid) || ev.Cancelled)
return null;

return new Explosion(this,
queued.Proto,
spaceData,
Expand Down

0 comments on commit 2c36468

Please sign in to comment.