public VoxelHandle FindLand( ChunkManager Data, GlobalVoxelCoordinate Start, int Radius) { GlobalVoxelCoordinate landFound; if (VoxelHelpers.BreadthFirstSearch(Data, Start, Radius, coord => { var v = new VoxelHandle(Data, coord); if (!v.IsValid || !v.IsEmpty || v.LiquidLevel > 0) { return(false); } var below = new VoxelHandle(Data, new GlobalVoxelCoordinate(coord.X, coord.Y - 1, coord.Z)); return(below.IsValid && !below.IsEmpty); }, out landFound)) { return(new VoxelHandle(Data, landFound)); } return(VoxelHandle.InvalidHandle); }