Replace every usage of GridCoordinates with EntityCoordinates (#2021)

* Update RobustToolbox

* Transition direct type usages

* More updates

* Fix invalid use of to map

* Update RobustToolbox

* Fix dropping items

* Rename name usages of "GridCoordinates" to "EntityCoordinates"

* Revert "Update RobustToolbox"

This reverts commit 9f334a17c5908ded0043a63158bb671e4aa3f346.

* Revert "Update RobustToolbox"

This reverts commit 3a9c8cfa3606fa501aa84407796d2ad920853a09.

# Conflicts:
#	RobustToolbox

* Fix cursed IMapGrid method usage.

* GridTileLookupTest now uses EntityCoordinates

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
This commit is contained in:
DrSmugleaf
2020-09-06 16:11:53 +02:00
committed by GitHub
parent 72d2318ea7
commit 48b61f6bcc
196 changed files with 780 additions and 676 deletions

View File

@@ -26,13 +26,14 @@ namespace Content.Server.Explosions
/// </summary>
private static Vector2 _epicenterDistance = (0.1f, 0.1f);
public static void SpawnExplosion(GridCoordinates coords, int devastationRange, int heavyImpactRange, int lightImpactRange, int flashRange)
public static void SpawnExplosion(EntityCoordinates coords, int devastationRange, int heavyImpactRange, int lightImpactRange, int flashRange)
{
var tileDefinitionManager = IoCManager.Resolve<ITileDefinitionManager>();
var serverEntityManager = IoCManager.Resolve<IServerEntityManager>();
var entitySystemManager = IoCManager.Resolve<IEntitySystemManager>();
var mapManager = IoCManager.Resolve<IMapManager>();
var robustRandom = IoCManager.Resolve<IRobustRandom>();
var entityManager = IoCManager.Resolve<IEntityManager>();
var maxRange = MathHelper.Max(devastationRange, heavyImpactRange, lightImpactRange, 0f);
//Entity damage calculation
@@ -45,17 +46,21 @@ namespace Content.Server.Explosions
if (!entity.Transform.IsMapTransform)
continue;
var distanceFromEntity = (int)entity.Transform.GridPosition.Distance(mapManager, coords);
if (!entity.Transform.Coordinates.TryDistance(entityManager, coords, out var distance))
{
continue;
}
ExplosionSeverity severity;
if (distanceFromEntity < devastationRange)
if (distance < devastationRange)
{
severity = ExplosionSeverity.Destruction;
}
else if (distanceFromEntity < heavyImpactRange)
else if (distance < heavyImpactRange)
{
severity = ExplosionSeverity.Heavy;
}
else if (distanceFromEntity < lightImpactRange)
else if (distance < lightImpactRange)
{
severity = ExplosionSeverity.Light;
}
@@ -70,7 +75,7 @@ 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.GridID);
var mapGrid = mapManager.GetGrid(coords.GetGridId(entityManager));
var circle = new Circle(coords.Position, maxRange);
var tiles = mapGrid.GetTilesIntersecting(circle);
foreach (var tile in tiles)
@@ -82,12 +87,16 @@ namespace Content.Server.Explosions
{
continue;
}
var distanceFromTile = (int) tileLoc.Distance(mapManager, coords);
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);
switch (distanceFromTile)
switch (distance)
{
case var d when d < devastationRange:
mapGrid.SetTile(tileLoc, zeroTile);
@@ -137,7 +146,7 @@ namespace Content.Server.Explosions
}
var playerPos = player.AttachedEntity.Transform.WorldPosition;
var delta = coords.ToMapPos(mapManager) - playerPos;
var delta = coords.ToMapPos(entityManager) - playerPos;
//Change if zero. Will result in a NaN later breaking camera shake if not changed
if (delta.EqualsApprox((0.0f, 0.0f)))
delta = _epicenterDistance;