Make EyeManager resilient to invalid grid IDs

This commit is contained in:
Pieter-Jan Briers
2018-11-22 00:51:47 +01:00
parent 8320339ab0
commit 5c977b6f07

View File

@@ -98,7 +98,15 @@ namespace SS14.Client.Graphics.ClientEye
{
var matrix = Matrix3.Invert(MatrixViewPortTransform(sceneTree));
var worldPos = matrix.Transform(point) / PIXELSPERMETER * new Vector2(1, -1);
var grid = _mapManager.GetMap(currentEye.MapId).FindGridAt(worldPos);
IMapGrid grid ;
if (_mapManager.TryGetMap(currentEye.MapId, out var map))
{
grid = map.FindGridAt(worldPos);
}
else
{
grid = _mapManager.GetGrid(GridId.Nullspace);
}
return new GridLocalCoordinates(grid.WorldToLocal(worldPos), grid);
}