static IntVector3? GetLocNearEntry(EnvironmentObject env) { foreach (var p in IntVector2.SquareSpiral(env.StartLocation.ToIntVector2(), env.Width / 2)) { if (env.Size.Plane.Contains(p) == false) continue; var p3 = env.GetSurfaceLocation(p); if (env.CanEnter(p3)) return p3; } return null; }
static IntVector3?GetLocNearEntry(EnvironmentObject env) { foreach (var p in IntVector2.SquareSpiral(env.StartLocation.ToIntVector2(), env.Width / 2)) { if (env.Size.Plane.Contains(p) == false) { continue; } var p3 = env.GetSurfaceLocation(p); if (env.CanEnter(p3)) { return(p3); } } return(null); }
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); }
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; }