Posted June 8, 201312 yr Crash:http://pastebin.com/hekb9CUZ WorldGenGlowTree: package bi.bi_Helper; import java.util.Random; import bi.bi_Blocks.ModBlocks; import net.minecraft.block.Block; import net.minecraft.util.Direction; import net.minecraft.world.World; import net.minecraft.world.gen.feature.WorldGenerator; public class WorldGenGlowTree extends WorldGenerator { /** The minimum height of a generated tree. */ private final int minTreeHeight; /** True if this tree should grow Vines. */ private final boolean vinesGrow; /** The metadata value of the wood to use in tree generation. */ private final int metaWood; /** The metadata value of the leaves to use in tree generation. */ private final int metaLeaves; public WorldGenGlowTree(boolean par1) { this(par1, 4, 0, 0, false); } public WorldGenGlowTree(boolean par1, int par2, int par3, int par4, boolean par5) { super(par1); this.minTreeHeight = par2; this.metaWood = par3; this.metaLeaves = par4; this.vinesGrow = par5; } public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) { int var6 = par2Random.nextInt(3) + this.minTreeHeight; boolean var7 = true; if (par4 >= 1 && par4 + var6 + 1 <= 256) { int var8; byte var9; int var11; int var12; for (var8 = par4; var8 <= par4 + 1 + var6; ++var8) { var9 = 1; if (var8 == par4) { var9 = 0; } if (var8 >= par4 + 1 + var6 - 2) { var9 = 2; } for (int var10 = par3 - var9; var10 <= par3 + var9 && var7; ++var10) { for (var11 = par5 - var9; var11 <= par5 + var9 && var7; ++var11) { if (var8 >= 0 && var8 < 256) { var12 = par1World.getBlockId(var10, var8, var11); Block block = Block.blocksList[var12]; if (var12 != 0 && !block.isLeaves(par1World, var10, var8, var11) && var12 != Block.grass.blockID && var12 != Block.dirt.blockID && !block.isWood(par1World, var10, var8, var11)) { var7 = false; } } else { var7 = false; } } } } if (!var7) { return false; } else { var8 = par1World.getBlockId(par3, par4 - 1, par5); if ((var8 == Block.grass.blockID || var8 == Block.dirt.blockID) && par4 < 256 - var6 - 1) { this.setBlock(par1World, par3, par4 - 1, par5, Block.dirt.blockID); var9 = 3; byte var18 = 0; int var13; int var14; int var15; for (var11 = par4 - var9 + var6; var11 <= par4 + var6; ++var11) { var12 = var11 - (par4 + var6); var13 = var18 + 1 - var12 / 2; for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) { var15 = var14 - par3; for (int var16 = par5 - var13; var16 <= par5 + var13; ++var16) { int var17 = var16 - par5; Block block = Block.blocksList[par1World.getBlockId(var14, var11, var16)]; if ((Math.abs(var15) != var13 || Math.abs(var17) != var13 || par2Random.nextInt(2) != 0 && var12 != 0) && (block == null || block.canBeReplacedByLeaves(par1World, var14, var11, var16))) { this.setBlockAndMetadata(par1World, var14, var11, var16, ModBlocks.GlowingLeaves.blockID, this.metaLeaves); } } } } for (var11 = 0; var11 < var6; ++var11) { var12 = par1World.getBlockId(par3, par4 + var11, par5); Block block = Block.blocksList[var12]; if (var12 == 0 || block == null || block.isLeaves(par1World, par3, par4 + var11, par5)) { this.setBlockAndMetadata(par1World, par3, par4 + var11, par5, ModBlocks.GlowingLog.blockID, this.metaWood); if (this.vinesGrow && var11 > 0) { if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 - 1, par4 + var11, par5)) { this.setBlockAndMetadata(par1World, par3 - 1, par4 + var11, par5, Block.vine.blockID, ; } if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3 + 1, par4 + var11, par5)) { this.setBlockAndMetadata(par1World, par3 + 1, par4 + var11, par5, Block.vine.blockID, 2); } if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 - 1)) { this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 - 1, Block.vine.blockID, 1); } if (par2Random.nextInt(3) > 0 && par1World.isAirBlock(par3, par4 + var11, par5 + 1)) { this.setBlockAndMetadata(par1World, par3, par4 + var11, par5 + 1, Block.vine.blockID, 4); } } } } if (this.vinesGrow) { for (var11 = par4 - 3 + var6; var11 <= par4 + var6; ++var11) { var12 = var11 - (par4 + var6); var13 = 2 - var12 / 2; for (var14 = par3 - var13; var14 <= par3 + var13; ++var14) { for (var15 = par5 - var13; var15 <= par5 + var13; ++var15) { Block block = Block.blocksList[par1World.getBlockId(var14, var11, var15)]; if (block != null && block.isLeaves(par1World, var14, var11, var15)) { if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 - 1, var11, var15) == 0) { this.growVines(par1World, var14 - 1, var11, var15, ; } if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14 + 1, var11, var15) == 0) { this.growVines(par1World, var14 + 1, var11, var15, 2); } if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 - 1) == 0) { this.growVines(par1World, var14, var11, var15 - 1, 1); } if (par2Random.nextInt(4) == 0 && par1World.getBlockId(var14, var11, var15 + 1) == 0) { this.growVines(par1World, var14, var11, var15 + 1, 4); } } } } } if (par2Random.nextInt(5) == 0 && var6 > 5) { for (var11 = 0; var11 < 2; ++var11) { for (var12 = 0; var12 < 4; ++var12) { if (par2Random.nextInt(4 - var11) == 0) { var13 = par2Random.nextInt(3); this.setBlockAndMetadata(par1World, par3 + Direction.offsetX[Direction.rotateOpposite[var12]], par4 + var6 - 5 + var11, par5 + Direction.offsetZ[Direction.rotateOpposite[var12]], Block.cocoaPlant.blockID, var13 << 2 | var12); } } } } } return true; } else { return false; } } } else { return false; } } /** * Grows vines downward from the given block for a given length. Args: World, x, starty, z, vine-length */ private void growVines(World par1World, int par2, int par3, int par4, int par5) { this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); int var6 = 4; while (true) { --par3; if (par1World.getBlockId(par2, par3, par4) != 0 || var6 <= 0) { return; } this.setBlockAndMetadata(par1World, par2, par3, par4, Block.vine.blockID, par5); --var6; } } } WorldGenTree package bi.bi_Helper; import java.util.Random; import net.minecraft.world.World; import net.minecraft.world.chunk.IChunkProvider; import net.minecraft.world.gen.feature.WorldGenMinable; import cpw.mods.fml.common.IWorldGenerator; public class WorldGenTree implements IWorldGenerator{ @Override public void generate(Random random, int chunkX, int chunkZ, World world,IChunkProvider chunkGenerator, IChunkProvider chunkProvider){ switch(world.provider.dimensionId){ case 0: generateSurface(world, random, chunkX * 16, chunkZ * 16); } } private void generateEnd(World world, Random random, int chunkX, int chunkZ){ } private void generateSurface(World world, Random random, int BlockX, int BlockZ) { for(int i = 0; i < 20; i++){ int Xcoord1 = BlockX + random.nextInt(16); int Ycoord1 = random.nextInt(90); int Zcoord1 = BlockZ + random.nextInt(16); (new WorldGenGlowTree(false, 6, 0, 0, false)).generate(world, random, Xcoord1, Ycoord1, Zcoord1); } } private void generateNether(World world, Random random, int chunkX, int chunkZ){ } } BaseClass: package bi.bi_BasePackage; import java.io.File; import java.util.Random; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.ItemStack; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenDesert; import net.minecraft.world.biome.BiomeGenForest; import net.minecraft.world.biome.BiomeGenHills; import net.minecraft.world.biome.BiomeGenPlains; import net.minecraft.world.biome.BiomeGenSwamp; import net.minecraft.world.biome.BiomeGenTaiga; import net.minecraft.world.gen.feature.WorldGenMinable; import net.minecraftforge.oredict.OreDictionary; import bi.bi_Blocks.ModBlocks; import bi.bi_Config.ConfigurationHandler; import bi.bi_Helper.EntityLaserMunition; import bi.bi_Helper.Reference; import bi.bi_Helper.WorldGenGlowTree; import bi.bi_Items.ModItems; import bi.bi_Registers.Recipes; import bi.bi_Registers.Registry; import bi.bi_gui.GuiHandlerC; import cpw.mods.fml.common.FMLLog; 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.network.NetworkRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME2, version = Reference.VERSION_NUMBER) @NetworkMod(clientSideRequired = true, serverSideRequired = false, channels = { "B&I" }, packetHandler = PacketHandler.class) public class BaseClass { @Instance public static BaseClass instance; private GuiHandlerC guiHandler = new GuiHandlerC(); @SidedProxy(clientSide = "bi.bi_BasePackage.ClientProxy", serverSide = "bi.bi_BasePackage.CommonProxy") public static CommonProxy proxy; public static CreativeTabs BITab = new TutTab(CreativeTabs.getNextID(), "B&I Mod"); @PreInit public void initialize(FMLPreInitializationEvent evt) { ConfigurationHandler.init(new File(evt.getModConfigurationDirectory().getAbsolutePath() + "\\B&I\\" + "B&I" + ".cfg")); ModItems.init(); ModBlocks.init(); } @Init public void load(FMLInitializationEvent evt) { Registry.init(); Recipes.init(); NetworkRegistry.instance().registerGuiHandler(this, guiHandler); EntityRegistry.registerModEntity(EntityLaserMunition.class, "LaserMunition", 0, this, 128, 1, true); proxy.registerRenderers(); } @PostInit public static void postInit(FMLPostInitializationEvent event) { FMLLog.info("Blocks and Items: Looks like everything ran correctly, you are good to go!!!"); } private void oreRegistration() { OreDictionary.registerOre("StormmSand", new ItemStack(ModBlocks.StormmSand)); } } Registry: package bi.bi_Registers; import net.minecraft.src.ModLoader; import net.minecraftforge.common.MinecraftForge; import bi.bi_BasePackage.CommonProxy; import bi.bi_Blocks.ModBlocks; import bi.bi_Helper.BFuelHandler; import bi.bi_Helper.BIWorldGenerator; import bi.bi_Helper.BlockHandler; import bi.bi_Helper.EntityLaserMunition; import bi.bi_Helper.TileEntityGlowNuggetChest; import bi.bi_Helper.WorldGenTree; import bi.bi_Items.ModItems; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; public class Registry { public static void init() { //Blocks GameRegistry.registerBlock(ModBlocks.StarSky, "Mod_Starsky"); LanguageRegistry.addName(ModBlocks.StarSky, "StarSky"); GameRegistry.registerBlock(ModBlocks.StormmStone, "Mod_StormmStone"); LanguageRegistry.addName(ModBlocks.StormmStone, "Stormm Stone"); GameRegistry.registerBlock(ModBlocks.ReinforcedStone, "Mod_ReinforcedStone"); LanguageRegistry.addName(ModBlocks.ReinforcedStone, "Reinforced Stone"); GameRegistry.registerBlock(ModBlocks.StormmSand, "Mod_StormmSand"); LanguageRegistry.addName(ModBlocks.StormmSand, "Stormm Sand"); GameRegistry.registerBlock(ModBlocks.StormmGlass, "Mod_StormmGlass"); LanguageRegistry.addName(ModBlocks.StormmGlass, "Stormm Glass"); LanguageRegistry.addName(ModBlocks.LittleGlowstone, "Little Glowstone"); GameRegistry.registerBlock(ModBlocks.LittleGlowstone, "Mod_LittleGlowstone"); GameRegistry.registerBlock(ModBlocks.Crafter, "Mod_Crafter"); LanguageRegistry.addName(ModBlocks.Crafter, "Crafter"); GameRegistry.registerBlock(ModBlocks.Fence, "Mod_Fence"); LanguageRegistry.addName(ModBlocks.Fence, "GlowNugget Fence"); GameRegistry.registerBlock(ModBlocks.FenceGate, "Mod_FenceGate"); LanguageRegistry.addName(ModBlocks.FenceGate, "GlowNugget FenceGate"); GameRegistry.registerBlock(ModBlocks.Stair, "Mod_Stair"); LanguageRegistry.addName(ModBlocks.Stair, "GlowNugget Stair"); GameRegistry.registerBlock(ModBlocks.GlowNuggetBlock, "Mod_GlowNuggetBlock"); LanguageRegistry.addName(ModBlocks.GlowNuggetBlock, "GlowNugget Block"); GameRegistry.registerBlock(ModBlocks.GlowNuggetChest, "Mod_GlowNuggetChest"); LanguageRegistry.addName(ModBlocks.GlowNuggetChest, "GlowNuggetChest"); GameRegistry.registerBlock(ModBlocks.GlowingLog, "Mod_GlowingLog"); LanguageRegistry.addName(ModBlocks.GlowingLog, "Glowing Wood"); GameRegistry.registerBlock(ModBlocks.GlowingSapling, "Mod_GlowingSapling"); LanguageRegistry.addName(ModBlocks.GlowingSapling, "Glowing Sapling"); GameRegistry.registerBlock(ModBlocks.GlowingLeaves, "Mod_GlowingLeaves"); LanguageRegistry.addName(ModBlocks.GlowingLeaves, "Glowing Leaves"); GameRegistry.registerBlock(ModBlocks.GlowingPlank, "Mod_GlowingPlank"); LanguageRegistry.addName(ModBlocks.GlowingPlank, "Glowing Plank"); GameRegistry.registerBlock(ModBlocks.NuggetOre, "Mod_NuggetOre"); LanguageRegistry.addName(ModBlocks.NuggetOre, "Nugget Ore"); //Items LanguageRegistry.addName(ModItems.GlowstoneNugget, "Glowstone Nugget"); LanguageRegistry.addName(ModItems.NuggetSword, "Glowing Nugget Sword"); LanguageRegistry.addName(ModItems.NuggetPickaxe, "Nugget Pickaxe"); LanguageRegistry.addName(ModItems.NuggetShovel, "Nugget Shovel"); LanguageRegistry.addName(ModItems.NuggetAxe, "Nugget Axe"); LanguageRegistry.addName(ModItems.NuggetHoe, "Nugget Hoe"); LanguageRegistry.addName(ModItems.InfusedCoal, "Infused Coal"); LanguageRegistry.addName(ModItems.Flour, "Flour"); LanguageRegistry.addName(ModItems.Turky, "Turky"); LanguageRegistry.addName(ModItems.BeaconLaser, "BeaconLaser"); LanguageRegistry.addName(ModItems.NuggetHelmet, "Nugget Helmet"); LanguageRegistry.addName(ModItems.NuggetChestPlate, "Nugget Chestplate"); LanguageRegistry.addName(ModItems.NuggetLeggings, "Nugget Leggings"); LanguageRegistry.addName(ModItems.NuggetBoots, "Nugget Boots"); LanguageRegistry.addName(ModItems.LaserMunition, "Laser Munition"); LanguageRegistry.addName(ModItems.NuggetRawDust, "Nugget Raw Dust"); LanguageRegistry.addName(ModItems.NuggetDust, "Nugget Dust"); //Others LanguageRegistry.instance().addStringLocalization("entity.B&I.LaserMunition.naem", "Laser Munition"); GameRegistry.registerWorldGenerator(new BIWorldGenerator()); GameRegistry.registerWorldGenerator(new WorldGenTree()); GameRegistry.registerFuelHandler(new BFuelHandler()); RenderingRegistry.instance().registerBlockHandler(new BlockHandler()); GameRegistry.registerTileEntity(TileEntityGlowNuggetChest.class, "tileentitychest"); //BlocksHarvestLevel MinecraftForge.setBlockHarvestLevel(ModBlocks.StormmSand, "shovel", 0); MinecraftForge.setBlockHarvestLevel(ModBlocks.Crafter, "axe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.ReinforcedStone, "pickaxe", 2); MinecraftForge.setBlockHarvestLevel(ModBlocks.StarSky, "axe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.StormmGlass, "pickaxe", 0); MinecraftForge.setBlockHarvestLevel(ModBlocks.StormmStone, "pickaxe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.Fence, "axe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.GlowingLog, "axe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.GlowingPlank, "axe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.GlowNuggetChest, "axe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.GlowNuggetBlock, "pickaxe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.NuggetOre, "pickaxe", 1); MinecraftForge.setBlockHarvestLevel(ModBlocks.Stair, "pickaxe", 1); } } Woking at my first mod, Blocks & Items Revolution : https://github.com/megabitus98/Blocks-Items-Revolution
June 9, 201312 yr Your generation code calls getBlockID() for an adjacent chunk, which then itself generates and calls your code, which calls getBlockID() for an adjacent chunk, which then generates and calls your code, which calls getBlockID() for an adjacent chunk... ad nauseam. Did you copy that code from WorldGenTrees? What did you change? BEWARE OF GOD --- Co-author of Pentachoron Labs' SBFP Tech.
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.