Jump to content

Spawning Ore in 1.10.2


opum2

Recommended Posts

Hi there!

 

I need help spawning ore in 1.10.2. Not really sure where to start. I did it back in 1.7, but not really sure now. Here is my code from 1.7 that I tried to convert.

 

public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
    {
        switch (world.provider.dimensionId)
        {
            case 0:
                this.generateOverworld(world, random, chunkX, chunkZ);
                break;
        }
    }

    public void generateOverworld(World world, Random rand, int x, int z)
    {
        this.generateOre(main.blockOre, world, rand, x, z, 2, 7, 5, 10, 30, Blocks.stone);
    }

    public void generateOre(Block block, World world, Random random, int chunkX, int chunkZ, int minVienSize, int maxVienSize, int chance, int minY, int maxY, Block generateIn)
    {
        int vienSize = minVienSize + random.nextInt(maxVienSize - minVienSize);
        int heightRange = maxY - minY;
        WorldGenMinable gen = new WorldGenMinable(block, vienSize, generateIn);

        for (int i = 0; i < chance; ++i)
        {
            int xRand = chunkX * 16 + random.nextInt(16);
            int yRand = random.nextInt(heightRange) + minY;
            int zRand = chunkZ * 16 + random.nextInt(16);
            gen.generate(world, random, xRand, yRand, zRand);
        }
    }
}

Link to comment
Share on other sites

Well i know how to do this but 1rst. Would you like to work on a mod together 2nd Provide Your main Mod File and your blocks file

 

We offer help for free here in this forum, don't ask for anything to give the answer. What you did is intolerable!

 

As for op, A lot of things are quite similar but here's what you should change:

  • Make sure the class implements
    IWorldGenerator


  • The fifth parameter of generate should be of type
    IChunkGenerator

    not

    IChunkProvider


  • world.provider.getDimensionType()

    instead of

    world.provider.dimensionId

    and the cases are

    DimensionType.NETHER

    ,

    DimensionType.OVERWORLD

    and/or

    DimensionType.THE_END


  • new WorldGenMinable()

    now takes

    IBlockState

    which would indicate the block and the metadata. It also takes

    IPredicate<IBlockstate>

    to get the blocks that can surround the ore, you can get that using

    BlockMatcher.forBlock(Blocks.STONE)


  • WorldGenMinable#generate()

    takes

    BlockPos

    instead of

    x

    ,

    y

    and

    z

    which is easily made by

    new BlockPos(x, y, z)


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.