Jump to content

Tree World Gen Crash[Flat World][FORGE][1.5.2][B&I Mod]


megabitus

Recommended Posts

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, 8);

                                }

 

                                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, 8);

                                        }

 

                                        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

Link to comment
Share on other sites

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.

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.