Dwarrowdelf.Server.Fortress.DungeonWorldCreator.GetRandomRoomLoc C# (CSharp) Method

GetRandomRoomLoc() static private method

static private GetRandomRoomLoc ( EnvironmentObject env, IntGrid2Z &grid ) : IntVector3?
env EnvironmentObject
grid IntGrid2Z
return IntVector3?
        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;
        }