public Biome getBiome(Vector3i position) { if (caveNoise3D.GetNoise(position.x, position.y, position.z) > 0.7f && position.y >= 2) { return(null); } int noise = (int)Math.Floor(biomeNoise3D.GetNoise(position.x, position.y, position.z) / (1.0f / biomes.Count)); if (noise == biomes.Count) { noise--; } Biome tmpBiome = (Biome)biomes.GetByIndex(noise); if (tmpBiome != currentBiome) { biomeNoise3D.setScale(1.0f / tmpBiome.persistence); } if (noise >= 0 && noise < biomes.Count) { currentBiome = tmpBiome; } return(currentBiome); }
private void GenerateBlockForIsland(Vector3i worldPos, int deep, int height) { if (caveNoise3D.GetNoise(worldPos.x, worldPos.y, worldPos.z) > 0.7f) { return; } float noise = islandNoise3D.GetNoise(worldPos.x, worldPos.y, worldPos.z); OpenCog.BlockSet.BaseBlockSet.OCBlock block = null; if (IsInRange(noise, 0, 0.2f)) { block = sand; } if (IsInRange(noise, 0.2f, 0.6f)) { block = dirt; } if (IsInRange(noise, 0.6f, 1f)) { block = stone; } if (block != null) { map.SetBlock(block, worldPos); } }
private void GenerateBlockForBaseTerrain(Vector3i worldPos) { float noise = terrainNoise3D.GetNoise(worldPos.x, worldPos.y, worldPos.z); Block block = null; if (IsInRange(noise, 0, 0.2f)) { block = sand; } if (IsInRange(noise, 0.2f, 0.6f)) { block = dirt; } if (IsInRange(noise, 0.6f, 1f)) { block = stone; } if (System.DateTime.Now.Millisecond.ToString().EndsWith("9")) { Debug.Log("About to create a block at [" + worldPos.x + ", " + worldPos.y + ", " + worldPos.z + "]."); } if (block != null) { map.SetBlock(block, worldPos); } }
private void GenerateBase(int x, int y, int z) { float noise = terrainNoise3D.GetNoise(x, y, z); Block block = new Block(BlockID.Air); if (IsInRange(noise, 0.0f, 0.6f)) { block.ID = BlockID.Dirt; } if (IsInRange(noise, 0.6f, 1.0f)) { block.ID = BlockID.Stone; } if (block.ID != BlockID.Air) { Map.SetBlock(x, y, z, block); } }
private void GenerateBlockForBaseTerrain(Vector3i worldPos) { float noise = terrainNoise3D.GetNoise(worldPos.x, worldPos.y, worldPos.z); OpenCog.BlockSet.BaseBlockSet.OCBlock block = null; if (IsInRange(noise, 0, 0.2f)) { block = sand; } if (IsInRange(noise, 0.2f, 0.6f)) { block = dirt; } if (IsInRange(noise, 0.6f, 1f)) { block = stone; } if (block != null) { map.SetBlock(block, worldPos); } }