// Generates and adds heightmap to dictionary // based on initial cartesian coordinates public float[,] GenerateHeightmap(int x, int y, uint[,] subBiome, float[,] gradient) { // Create 2D array of noise values float[,] heightmap = new float[HeightmapDimensions, HeightmapDimensions]; // Assign this biome map BiomeMap = subBiome; // Check for adjacent heightmaps adjacentTruthTable = new Tuple <bool, bool, bool, bool>( MapDatabaseScript.IsFilled(x, y + 1), MapDatabaseScript.IsFilled(x + 1, y), MapDatabaseScript.IsFilled(x, y - 1), MapDatabaseScript.IsFilled(x - 1, y) ); // Copy over top values if (adjacentTruthTable.Item1) { float[,] hm = MapDatabaseScript.GetHeightmap(x, y + 1); for (int i = 0; i < HeightmapDimensions; i++) { heightmap[0, i] = hm[HeightmapDimensions - 1, i]; } } // Copy over right values if (adjacentTruthTable.Item2) { float[,] hm = MapDatabaseScript.GetHeightmap(x + 1, y); for (int i = 0; i < HeightmapDimensions; i++) { heightmap[i, HeightmapDimensions - 1] = hm[i, 0]; } } // Copy over bottom values if (adjacentTruthTable.Item3) { float[,] hm = MapDatabaseScript.GetHeightmap(x, y - 1); for (int i = 0; i < HeightmapDimensions; i++) { heightmap[HeightmapDimensions - 1, i] = hm[0, i]; } } // Copy over left values if (adjacentTruthTable.Item4) { float[,] hm = MapDatabaseScript.GetHeightmap(x - 1, y); for (int i = 0; i < HeightmapDimensions; i++) { heightmap[i, 0] = hm[i, HeightmapDimensions - 1]; } } /* * // Set values to uninitialized verticies * if (!adjacentTruthTable.Item1 && !adjacentTruthTable.Item4) * heightmap[0, 0] = GetBiomeVertex(0, 0); * * if (!adjacentTruthTable.Item3 && !adjacentTruthTable.Item4) * heightmap[HeightmapDimensions - 1, 0] = GetBiomeVertex(HeightmapDimensions - 1, 0); * * if (!adjacentTruthTable.Item1 && !adjacentTruthTable.Item2) * heightmap[0, HeightmapDimensions - 1] = GetBiomeVertex(0, HeightmapDimensions - 1); * * if (!adjacentTruthTable.Item2 && !adjacentTruthTable.Item3) * heightmap[HeightmapDimensions - 1, HeightmapDimensions - 1] = GetBiomeVertex(HeightmapDimensions - 1, HeightmapDimensions - 1); */ //DiamondSquareGen(heightmap, 0, HeightmapDimensions - 1, 0, HeightmapDimensions - 1); //ZeroGen(HeightmapDimensions, heightmap); //BasicBiomeGen(HeightmapDimensions, heightmap); AdvancedBiomeGen(HeightmapDimensions, heightmap, gradient); MapDatabaseScript.AddHeightmap(x, y, heightmap); return(heightmap); }