Fixes a crash when an entity goes off-grid. (hehe)

Now, it performs a TryGetGrid instead of GetGrid.
This commit is contained in:
Vera Aguilera Puerto
2021-02-28 17:42:11 +01:00
parent 71e6effd48
commit 3967ecf098

View File

@@ -88,14 +88,10 @@ namespace Content.Shared.Physics.Controllers
[Pure] [Pure]
private float GetTileFriction(IPhysBody body) private float GetTileFriction(IPhysBody body)
{ {
if (body.BodyStatus == BodyStatus.InAir || body.Entity.Transform.GridID == GridId.Invalid) if (body.BodyStatus == BodyStatus.InAir || !_mapManager.TryGetGrid(body.Owner.Transform.GridID, out var grid))
return 0.0f; return 0.0f;
var transform = body.Owner.Transform; var tile = grid.GetTileRef(body.Owner.Transform.Coordinates);
var coords = transform.Coordinates;
var grid = _mapManager.GetGrid(coords.GetGridId(body.Owner.EntityManager));
var tile = grid.GetTileRef(coords);
var tileDef = _tileDefinitionManager[tile.Tile.TypeId]; var tileDef = _tileDefinitionManager[tile.Tile.TypeId];
return tileDef.Friction; return tileDef.Friction;
} }