Fixes a crash when an entity goes off-grid. (hehe)
Now, it performs a TryGetGrid instead of GetGrid.
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user