static IntVector3? GetRandomRoomLoc(EnvironmentObject env, ref IntGrid2Z grid)
{
int x = grid.X + Helpers.GetRandomInt(grid.Columns);
int y = grid.Y + Helpers.GetRandomInt(grid.Rows);
foreach (var p in IntVector2.SquareSpiral(new IntVector2(x, y), Math.Max(grid.Columns, grid.Rows)))
{
if (env.Size.Plane.Contains(p) == false)
continue;
var p3 = new IntVector3(p, grid.Z);
if (env.CanEnter(p3) == false)
continue;
return p3;
}
return null;
}