Jump to content

WorldGen trouble


ulmon

Recommended Posts

How do I get it so my worldgen mod is the last thing that happens during world-generation?  The reason I want this to happen is that I have a natura seed that I like, but my mods presence seems to alter the generation slightly.

 

Here is my very simple worldgen code.

package worldGen.zMiningPeace;

// This Import list will grow longer with each additional tutorial.
// It's not pruned between full class postings, unlike other tutorial code.
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes;
import net.minecraftforge.common.MinecraftForge;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;

@Mod(modid = "zMiningPeace", name = "zMiningPeace", version = "0.0.0", dependencies = "required-after:Natura")
@NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = { "MiningPeaceRandom" })
public class zMiningPeace {
zMyWorldGenerator gen = new zMyWorldGenerator();
@Instance("zMiningPeace")
public static zMiningPeace instance;

@SidedProxy(clientSide = "worldGen.zMiningPeace.client.ClientProxy", serverSide = "worldGen.MiningPeace.CommonProxy")
public static CommonProxy proxy;

@PreInit
public void preInit(FMLPreInitializationEvent event) {

	// Stub Method
}

@Init
public void load(FMLInitializationEvent event) {
	proxy.registerRenderers();

}

@PostInit
public void postInit(FMLPostInitializationEvent event) {
	// Stub Method
	GameRegistry.registerWorldGenerator(gen);
    }
}

 

package worldGen.zMiningPeace;

import java.util.Random;

import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import cpw.mods.fml.common.IWorldGenerator;
import net.minecraft.block.Block;

public class zMyWorldGenerator implements IWorldGenerator {

@Override
public void generate(Random random, int chunkX, int chunkZ, World world,
		IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
	// System.out.printf("chunkX = %d, chunkZ = %d\n", chunkX, chunkZ);
	switch (world.provider.dimensionId) {
	case 0:
		generateSurface(world, random, chunkX * 16, chunkZ * 16);
		break;
	case -1:
		break;
	case 1:
		break;

	}

}

private void generateSurface(World world, Random random, int chunkX,
		int chunkZ) {
	this.fillArea(world, random, chunkX, chunkZ, 11, 16);

}

private void fillArea(World world, Random random, int chunkX, int chunkZ,
		int miny, int maxy) {
	int numLayers = maxy - miny;
	for (int x = 0; x < 16; x++) {
		for (int z = 0; z < 16; z++) {
			for (int y = 0; y < numLayers; y++) {
				int posx, posy, posz;
				posx = chunkX + x;
				posy = miny + y;
				posz = chunkZ + z;
				if (world.isAirBlock(posx, posy, posz)) {
					world.setBlock(posx, posy, posz, Block.stone.blockID,
							0, 0);
					// world.setb(posx, posy, posz,
					// Block.cobblestone.blockID);
				}
			}
		}

	}
	// System.out.print("Done with fill area\n");

}


}

 

As you can see, I've tried a few things to try and make this happen (renaming classes, making it dependent on natura), but it doesn't seem to work.

Thanks for your help

Link to comment
Share on other sites

All right.  It appears that this problem is not something that is inherent to the presence of my mod.  I've done some tests without my mod installed and it appears that generation is slightly altered if you try to create the same world after exiting minecraft and reopening it (the worldgen is the same if you try to recreate within the same session).  This is fine, I guess, as long as the problem wasn't something that was originating from me, thus the perfectionist in me can rest easy.

 

Oh, and in case I wasn't clear, I am working within the context of FTB 1.5.2 beta no greg tech. 

 

Thanks for the input ObsequiousNewt.

 

 

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.