Remove default grids (content) (#2241)

* Default grids go poof

* Address review

* Update submodule

* Fix DoAfterSystem for entities without grid.

* Fix SubFloorHideSystem for entities without grid.

* Fix ExplosionHelper for coordinates that aren't in a grid

* Fix TurfHelpers' GetWorldTileBox crash in the case of invalid grid

* Fix tile prying component crash when trying to pry space.

* Spill fixes when passing coordinates without grids.

* Are you static'in, son?

* Change SaveLoadSaveTest grid Id hardcoded value
It's still hardcoded, but at least now it's correct!

* Only send debug AI thing if grid is not invalid

* Update submodule.

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
This commit is contained in:
Víctor Aguilera Puerto
2020-10-21 17:13:41 +02:00
committed by GitHub
parent 78507ac9a2
commit 48841a274d
14 changed files with 76 additions and 78 deletions

View File

@@ -75,42 +75,44 @@ namespace Content.Server.Explosions
//Tile damage calculation mockup
//TODO: make it into some sort of actual damage component or whatever the boys think is appropriate
var mapGrid = mapManager.GetGrid(coords.GetGridId(entityManager));
var circle = new Circle(coords.Position, maxRange);
var tiles = mapGrid.GetTilesIntersecting(circle);
foreach (var tile in tiles)
if (mapManager.TryGetGrid(coords.GetGridId(entityManager), out var mapGrid))
{
var tileLoc = mapGrid.GridTileToLocal(tile.GridIndices);
var tileDef = (ContentTileDefinition) tileDefinitionManager[tile.Tile.TypeId];
var baseTurfs = tileDef.BaseTurfs;
if (baseTurfs.Count == 0)
var circle = new Circle(coords.Position, maxRange);
var tiles = mapGrid?.GetTilesIntersecting(circle);
foreach (var tile in tiles)
{
continue;
}
var tileLoc = mapGrid.GridTileToLocal(tile.GridIndices);
var tileDef = (ContentTileDefinition) tileDefinitionManager[tile.Tile.TypeId];
var baseTurfs = tileDef.BaseTurfs;
if (baseTurfs.Count == 0)
{
continue;
}
if (!tileLoc.TryDistance(entityManager, coords, out var distance))
{
continue;
}
if (!tileLoc.TryDistance(entityManager, coords, out var distance))
{
continue;
}
var zeroTile = new Tile(tileDefinitionManager[baseTurfs[0]].TileId);
var previousTile = new Tile(tileDefinitionManager[baseTurfs[^1]].TileId);
var zeroTile = new Tile(tileDefinitionManager[baseTurfs[0]].TileId);
var previousTile = new Tile(tileDefinitionManager[baseTurfs[^1]].TileId);
switch (distance)
{
case var d when d < devastationRange:
mapGrid.SetTile(tileLoc, zeroTile);
break;
case var d when d < heavyImpactRange
&& !previousTile.IsEmpty
&& robustRandom.Prob(0.8f):
mapGrid.SetTile(tileLoc, previousTile);
break;
case var d when d < lightImpactRange
&& !previousTile.IsEmpty
&& robustRandom.Prob(0.5f):
mapGrid.SetTile(tileLoc, previousTile);
break;
switch (distance)
{
case var d when d < devastationRange:
mapGrid.SetTile(tileLoc, zeroTile);
break;
case var d when d < heavyImpactRange
&& !previousTile.IsEmpty
&& robustRandom.Prob(0.8f):
mapGrid.SetTile(tileLoc, previousTile);
break;
case var d when d < lightImpactRange
&& !previousTile.IsEmpty
&& robustRandom.Prob(0.5f):
mapGrid.SetTile(tileLoc, previousTile);
break;
}
}
}