Ejemplo n.º 1
0
    private static void SetBlockOreGen(Chunk chunk)
    {
        for (int x = 0; x < CHUNK_SIZE; x++)
        {
            for (int y = 0; y < CHUNK_SIZE; y++)
            {
                for (int z = 0; z < CHUNK_SIZE; z++)
                {
                    if (chunk.Blocks[x, y, z].ID != Block.AIR_BLOCK_ID)
                    {
                        if (Utils.rand.Next(1, 100) < 35)
                        {
                            return;
                        }

                        BlockDef ore = BlockDefManager.RandomBlock(BlockDef.TYPE_ORE);
                        chunk.Blocks[x, y, z].Definition = ore;

                        int gen = 50;

                        //down
                        SetBlockWithProbability(chunk, new Position(x + 1, y - 1, z + 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y - 1, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x + 1, y - 1, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y - 1, z + 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y - 1, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y - 1, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x + 1, y - 1, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y - 1, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y - 1, z + 1), ore, gen);

                        //up
                        SetBlockWithProbability(chunk, new Position(x + 1, y + 1, z + 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y + 1, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x + 1, y + 1, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y + 1, z + 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y + 1, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y + 1, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x + 1, y + 1, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y + 1, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y + 1, z + 1), ore, gen);

                        //sides
                        SetBlockWithProbability(chunk, new Position(x + 1, y, z + 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x + 1, y, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y, z + 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x - 1, y, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x + 1, y, z), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y, z - 1), ore, gen);
                        SetBlockWithProbability(chunk, new Position(x, y, z + 1), ore, gen);
                    }
                }
            }
        }
    }