Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
        }
    }
Esempio n. 3
0
    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);
        }
    }
Esempio n. 4
0
    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);
        }
    }
Esempio n. 5
0
    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);
        }
    }