Jump to content

[SOLVED] [1.7.10] Ore doesn't generate


Recommended Posts

Posted

I tried to make my ores generate in a new world. Although the values are even higher than the ones from coal ore, I can't find the ore.

This is my world generator:

package XFactHD.thermalreactors.common.world;

import XFactHD.thermalreactors.common.TRContent;
import cpw.mods.fml.common.IWorldGenerator;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.feature.WorldGenMinable;
import net.minecraft.world.gen.feature.WorldGenerator;

import java.util.Random;

public class TROreGen implements IWorldGenerator
{
    private WorldGenerator genOreUranium;
    private WorldGenerator genOreZirconium;
    private WorldGenerator genOreBoron;

    public TROreGen()
    {
        this.genOreBoron = new WorldGenMinable(TRContent.blockOre, 3, 16, Blocks.stone);
        this.genOreUranium = new WorldGenMinable(TRContent.blockOre, 1, 16, Blocks.stone);
        this.genOreZirconium = new WorldGenMinable(TRContent.blockOre, 2, 16, Blocks.stone);
    }

    @Override
    public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider)
    {
        switch (world.provider.dimensionId)
        {
            case 0: //Overworld
                this.runGenerator(this.genOreBoron, world, random, chunkX, chunkZ, 50, 0, 128);
                this.runGenerator(this.genOreUranium, world, random, chunkX, chunkZ, 50, 0, 128);
                this.runGenerator(this.genOreZirconium, world, random, chunkX, chunkZ, 50, 0, 128);
                break;
            case -1: //Nether

                break;
            case 1: //End

                break;
        }
    }

    private void runGenerator(WorldGenerator generator, World world, Random rand, int chunk_X, int chunk_Z, int chancesToSpawn, int minHeight, int maxHeight)
    {
        if (minHeight < 0 || maxHeight > 256 || minHeight > maxHeight)
        {
            throw new IllegalArgumentException("Illegal Height Arguments for WorldGenerator");
        }

        int heightDiff = maxHeight - minHeight + 1;
        for (int i = 0; i < chancesToSpawn; i ++)
        {
            int x = chunk_X * 16 + rand.nextInt(16);
            int y = minHeight + rand.nextInt(heightDiff);
            int z = chunk_Z * 16 + rand.nextInt(16);
            generator.generate(world, rand, x, y, z);
        }
    }
}

The generator is registered in the common proxy in FMLInitializationEvent.

Am I just not searching long enough or am I doing something wrong?

Posted

I realize this has nothing to do with your question, but what is with people moving all of their FML event code into the common proxy?

 

All I can figure is that you guys all read some tutorial where the author did that "for reasons" that were never explained just because it was their style.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

I am orienting myself on other modders and their code on github, but actually you are right, we are just doing it because someone said it.  ;D

Posted

Set breakpoints in the methods you think are relevant, and then run in the debugger to see what's happening. If the ores appear to be generating somewhere, write down the block coords and then go see what's actually there.

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

Posted

I tried putting some log output of the coordinates into the runGenerator() method and it still didn't work, then I put the registration in the main mod class and it worked. Seems that my proxy is broken or I am being to dump to fire the start-up events in the proxy. Anyway, it works now. Thank you all for your help.

Posted

Aha, for methods in CommonProxy to always execute, you must make sure that ClientProxy and (in your case) ServerProxy call their supers from any methods that they override. Otherwise the overrides intercept the calls so that they never reach common.

 

Welcome to O-O programming  :)

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

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.