• 0

    posted a message on Structure Gen Issue - Boolean wants to be made static [Resolved]

    Thanks, that's the rough part of being new lol. Always some little devilish detail.



    Also, checked out your StopModRepost banner link. Very interesting, always wondered why there were so many generic, hard to navigate mod websites. I installed the addon to my Chrome. Thanks for that also.

    Posted in: Modification Development
  • 0

    posted a message on Spider Queen v1.1.0 - Spider queen is back, the way she should have been!

    Everytime my eggs hatch, the spider runs off at super speed never to be seen again.

    Posted in: Minecraft Mods
  • 0

    posted a message on Structure Gen Issue - Boolean wants to be made static [Resolved]

    Awesome, thank you. One more thing, I thought the for(int x = 0;x<2;x++) kept it at kind of a low spawn rate? I got them to spawn, but jesus they are EVERYWHERE. Or does lower number mean higher spawn rate?

    Posted in: Modification Development
  • 0

    posted a message on Structure Gen Issue - Boolean wants to be made static [Resolved]

    Been going over tutorials and forums threads, making a custom wagon structure. However, the generation file has an error at the bottom where it calls to the generate from the wagon file. It keeps saying I need to change

    public boolean generate(World world, Random rand, int i, int j, int k)


    into

    public static boolean generate(World world, Random rand, int i, int j, int k)

    And that causes the entire wagon file to fill up with errors. I been looking at forums and tutorials, and they all have the public boolean, and filename.generate(world, random, i, j, k);
    But for some reason, mine has that error.

    TinkerWagonGeneration.java


    package projectmayhem1983.wheeloftime.generation;
    
    import java.util.Random;
    
    import cpw.mods.fml.common.IWorldGenerator;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import projectmayhem1983.wheeloftime.structures.tinkerwagon;
    
    public class TinkerWagonGeneration implements IWorldGenerator{
    	
    	@Override
    	public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) {
    		switch (world.provider.dimensionId) {
    		case -1:
    			generateNether(world, random, chunkX*16, chunkZ*16);
    			break;
    		case 0:
    			generateOverworld(world, random, chunkX*16, chunkZ*16);
    			break;
    		case 1:
    			generateEnd(world, random, chunkX*16, chunkZ*16);
    			break;
    		}
    	}
    
    	public void generateNether(World world, Random rand, int x, int z) {
    
    	}
    
    	public void generateOverworld(World world, Random rand, int x, int z) {
    		generateStructure(world, rand, x, z, 1, 200);
    	}
    
    	public void generateEnd(World world, Random rand, int x, int z) {
    
    	}
    	public void generateStructure(World world, Random random, int chunkX, int chunkZ, int chance, int height) {
    		tinkerwagon gen = new tinkerwagon();
    		for(int x = 0;x<2;x++)
    		{
    		int i = chunkX + random.nextInt(16);
    		int k = chunkZ + random.nextInt(16);
    		int j = world.getHeightValue(i, k);
    		tinkerwagon.generate(world, random, i, j, k); //this is where the error is at
    		}
    		}
    	}




    tinkerwagon.java

    /*
    *** MADE BY MRPONYCAPTAIN'S .SCHEMATIC TO .JAVA CONVERTING TOOL v2.0 ***
    */
    
    package projectmayhem1983.wheeloftime.structures;
    
    import java.util.Random;
    
    import cpw.mods.fml.common.IWorldGenerator;
    import net.minecraft.block.Block;
    import net.minecraft.init.Blocks;
    import net.minecraft.world.World;
    import net.minecraft.world.chunk.IChunkProvider;
    import net.minecraft.world.gen.feature.WorldGenerator;
    
    public class tinkerwagon extends WorldGenerator implements IWorldGenerator
    {
     protected Block[] getValidSpawnBlocks() {
     return new Block[] {
     Blocks.grass,
     Blocks.dirt,
     Blocks.stone
     };
     }
    
     public boolean locationIsValidSpawn(World world, int i, int j, int k){
     int distanceToAir = 0;
     Block check = world.getBlock(i, j, k);
    
     while (check != Blocks.air){
     if (distanceToAir > 1){
     return false;
     }
    
     distanceToAir++;
     check = world.getBlock(i, j + distanceToAir, k);
     }
    
     j += distanceToAir - 1;
    
     Block block = world.getBlock(i, j, k);
     Block blockAbove = world.getBlock(i, j+1, k);
     Block blockBelow = world.getBlock(i, j-1, k);
     
     for (Block x : getValidSpawnBlocks()){
     if (blockAbove != Blocks.air){
     return false;
     }
     if (block == x){
     return true;
     }else if (block == Blocks.snow && blockBelow == x){
     return true;
     }
     }
     
     return false;
     }
    
     public tinkerwagon() { }
    
     @Override
     public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { }
    
     public void setBlock(World world, int x, int y, int z, Block block, int metadata)
     {
     Block b1 = world.getBlock(x, y, z);
    
     if(b1.isAir(world, x, y, z) || b1.isLeaves(world, x, y, z))
     {
     world.setBlock(x, y, z, block, metadata, 2);
     }
     }
    
     public boolean generate(World world, Random rand, int i, int j, int k) { //this is where it wants to add static
     //check that each corner is one of the valid spawn blocks
     if(!locationIsValidSpawn(world, i, j, k) || !locationIsValidSpawn(world, i + 13, j, k) || !locationIsValidSpawn(world, i + 13, j, k + 7) || !locationIsValidSpawn(world, i, j, k + 7))
     {
     return false;
     }
    
     k = k - 10;
     i = i - 10;
    
     this.setBlock(world, i + 0, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 0, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 2, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 3, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 4, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 0, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 3, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 3, k + 2, Blocks.fence, 0);
     this.setBlock(world, i + 0, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 3, k + 4, Blocks.fence, 0);
     this.setBlock(world, i + 0, j + 3, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 0, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 1, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 2, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 3, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 4, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 1, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 3, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 3, k + 2, Blocks.fence, 0);
     this.setBlock(world, i + 1, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 3, k + 4, Blocks.fence, 0);
     this.setBlock(world, i + 1, j + 3, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 1, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 2, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 2, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 3, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 4, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 2, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 3, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 3, k + 2, Blocks.fence, 0);
     this.setBlock(world, i + 2, j + 3, k + 3, Blocks.oak_stairs, 0);
     this.setBlock(world, i + 2, j + 3, k + 4, Blocks.fence, 0);
     this.setBlock(world, i + 2, j + 3, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 1,Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 2, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 3, j + 1, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 1, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 3, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 3, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 3, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 3, j + 2, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 3, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 3, j + 2, k + 4, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 3, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 3, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 3, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 3, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 3, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 3, j + 4, k + 2, Blocks.wool, 2);
     this.setBlock(world, i + 3, j + 4, k + 3, Blocks.wool, 2);
     this.setBlock(world, i + 3, j + 4, k + 4, Blocks.wool, 2);
     this.setBlock(world, i + 3, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 3, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 5, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 5, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 5, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 3, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 3, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 0, k + 2, Blocks.grass, 0);
     this.setBlock(world, i + 4, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 4, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 4, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 4, j + 1, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 4, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 4, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 4, j + 2, k + 0, Blocks.piston_head, 2);
     this.setBlock(world, i + 4, j + 2, k + 1, Blocks.piston, 10);
     this.setBlock(world, i + 4, j + 2, k + 2, Blocks.double_wooden_slab, 0);
     this.setBlock(world, i + 4, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 4, j + 2, k + 4, Blocks.double_wooden_slab, 0);
     this.setBlock(world, i + 4, j + 2, k + 5, Blocks.piston, 11);
     this.setBlock(world, i + 4, j + 2, k + 6, Blocks.piston_head, 3);
     this.setBlock(world, i + 4, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 3, k + 4, Blocks.bed, 9);
     this.setBlock(world, i + 4, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 3, k + 6,Blocks.air, 0);
     this.setBlock(world, i + 4, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 4, j + 4, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 4, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 4, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 6, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 6, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 6, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 4, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 4, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 5, j + 1, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 1, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 5, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 5, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 5, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 5, j + 2, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 5, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 5, j + 2, k + 4, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 5, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 5, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 3, k + 4, Blocks.bed, 1);
     this.setBlock(world, i + 5, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 5, j + 4, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 5, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 5, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 6, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 6, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 6, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 5, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 5, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 6, j + 1, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 1, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 6, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 6, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 6, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 6, j + 2, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 6, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 6, j + 2, k + 4, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 6, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 6, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 3, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 6, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 6, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 6, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 6, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 6, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 6, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 6, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 7, j + 1, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 1, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 7, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 7, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 7, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 7, j + 2, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 7, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 7, j + 2, k + 4, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 7, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 7, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 3, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 7, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 7, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 6, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 6, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 6, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 7, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 7, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 8, j + 1, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 8, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 8, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 8, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 8, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 8, j + 2, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 8, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 8, j + 2, k + 4, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 8, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 8, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 3, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 8, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 8, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 6, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 6, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 6, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 8, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 8, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 9, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 9, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 9, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 9, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 9, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 9, j + 2, k + 0, Blocks.piston_head, 2);
     this.setBlock(world, i + 9, j + 2, k + 1, Blocks.piston, 10);
     this.setBlock(world, i + 9, j + 2, k + 2, Blocks.double_wooden_slab, 0);
     this.setBlock(world, i + 9, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 9, j + 2, k + 4, Blocks.double_wooden_slab, 0);
     this.setBlock(world, i + 9, j + 2, k + 5, Blocks.piston, 11);
     this.setBlock(world, i + 9, j + 2, k + 6, Blocks.piston_head, 3);
     this.setBlock(world, i + 9, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 3, k + 2, Blocks.air, 2);
     this.setBlock(world, i + 9, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 3, k + 4, Blocks.jukebox, 0);
     this.setBlock(world, i + 9, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 9, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 9, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 6, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 6, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 6, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 9, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 9, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 10, j + 1, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 1, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 10, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 10, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 10, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 10, j + 2, k + 2, Blocks.planks, 0);
     this.setBlock(world, i + 10, j + 2, k + 3, Blocks.planks, 0);
     this.setBlock(world, i + 10, j + 2, k + 4, Blocks.planks, 0);
     this.setBlock(world, i + 10, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 10, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 3, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 3, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 3, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 3, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 4, k + 1, Blocks.wool, 2);
     this.setBlock(world, i + 10, j + 4, k + 2, Blocks.wool, 2);
     this.setBlock(world, i + 10, j + 4, k + 4, Blocks.wool, 2);
     this.setBlock(world, i + 10, j + 4, k + 5, Blocks.wool, 2);
     this.setBlock(world, i + 10, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 5, k + 1, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 5, k + 2, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 5, k + 3, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 5, k + 4, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 5, k + 5, Blocks.wool, 5);
     this.setBlock(world, i + 10, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 10, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 11, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 11, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 1, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 11, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 11, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 11, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 11, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 2, k + 1, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 11, j + 2, k + 2, Blocks.planks, 0);
     this.setBlock(world, i + 11, j + 2, k + 3, Blocks.planks, 0);
     this.setBlock(world, i + 11, j + 2, k + 4, Blocks.planks, 0);
     this.setBlock(world, i + 11, j + 2, k + 5, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 11, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 3, k + 1, Blocks.fence, 0);
     this.setBlock(world, i + 11, j + 3, k + 2, Blocks.air, 4);
     this.setBlock(world, i + 11, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 3, k + 4, Blocks.air, 4);
     this.setBlock(world, i + 11, j + 3, k + 5, Blocks.fence, 0);
     this.setBlock(world, i + 11, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 11, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 12, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 12, j + 1, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 1, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 12, j + 1, k + 4, Blocks.grass, 0);
     this.setBlock(world, i + 12, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 12, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 12, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 12, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 2, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 2, k + 2, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 12, j + 2, k + 3, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 12, j + 2, k + 4, Blocks.wooden_slab, 8);
     this.setBlock(world, i + 12, j + 2, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 12, j + 6, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 0, k + 0, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 1, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 2, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 3, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 4, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 5, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 6, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 0, k + 7, Blocks.dirt, 0);
     this.setBlock(world, i + 13, j + 1, k + 0, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 1, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 2, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 3, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 4, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 5, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 6, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 1, k + 7, Blocks.grass, 0);
     this.setBlock(world, i + 13, j + 2, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 2, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 2, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 2, k + 3, Blocks.oak_stairs, 1);
     this.setBlock(world, i + 13, j + 2, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 2, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 2, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 2, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 3, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 4, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 5, k + 7, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 0, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 1, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 2, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 3, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 4, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 5, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 6, Blocks.air, 0);
     this.setBlock(world, i + 13, j + 6, k + 7, Blocks.air, 0);
     world.setBlockMetadataWithNotify(i + 4, j + 1, k + 2, 2, 2);
     world.setBlockMetadataWithNotify(i + 4, j + 1, k + 4, 5, 2);
     world.setBlockMetadataWithNotify(i + 9, j + 1, k + 2, 5, 2);
     world.setBlockMetadataWithNotify(i + 9, j + 1, k + 4, 5, 2);
     world.setBlockMetadataWithNotify(i + 10, j + 3, k + 3, 2, 2);
     world.setBlockMetadataWithNotify(i + 10, j + 4, k + 3, 8, 2);
     world.setBlockMetadataWithNotify(i + 11, j + 4, k + 1, 5, 2);
     world.setBlockMetadataWithNotify(i + 11, j + 4, k + 5, 5, 2);
    
     return true;
     }
    }


     


    Also, in the tutorial the int i int k and int j used rand.nextInt, but that gave me an error. I changed it to lowercase random, should it have been Random instead? or was it suppose to be rand and I messed something else up?

    Posted in: Modification Development
  • 0

    posted a message on Using Blaze code to shoot fireballs

    I took at look at the Blaze coding and made 2 mobs that shoot fireballs. They both work, but they only attack the player. One is suppose to attack the player, the other is suppose to attack custom mobs from my mod. When I added any targeting info above the Fireball attack code, all the mob wants to do is punch instead of shooting fireballs. Can anyone help with making it shoot non-player entities? I am assuming it has something to do with this line "protected void attackEntity(Entity p_70785_1_, float p_70785_2_)" I was looking around Github and the forums for examples, but I havent been able to find other mods that have entities shoot at each other instead of at the player.



    package projectmayhem1983.wheeloftime.entities.mobs.Ashaman;
    
    
    import net.minecraft.entity.Entity;
    import net.minecraft.entity.ai.EntityAIHurtByTarget;
    import net.minecraft.entity.ai.EntityAINearestAttackableTarget;
    import net.minecraft.entity.monster.EntityMob;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.projectile.EntitySmallFireball;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    import projectmayhem1983.wheeloftime.entities.mobs.Damane.EntityDamaneMob;
    import projectmayhem1983.wheeloftime.entities.mobs.Myrddraal.EntityMyrddraalMob;
    import projectmayhem1983.wheeloftime.entities.mobs.Shadowhound.EntityDarkhoundMob;
    import projectmayhem1983.wheeloftime.entities.mobs.Trolloc.EntityTrollocMob;
    import projectmayhem1983.wheeloftime.entities.mobs.Whitecloak.EntityWhitecloakMob;
    
    public class EntityAshamanMob extends EntityMob{
    
    	private int field_70846_g;
    	public EntityAshamanMob(World world) {
    		super(world);
    	    this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true));
    	    this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityDarkhoundMob.class, 0, true));
    	    this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityDamaneMob.class, 0, false));
    	    this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityWhitecloakMob.class, 0, false));
    	    this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityMyrddraalMob.class, 0, false));
    	    this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityTrollocMob.class, 0, false));
    		this.setSize(0.6F, 1.8F);
            
    	}
    	
    	
    	 /**
         * Basic mob attack. Default to touch of death in EntityCreature. Overridden by each mob to define their attack.
         */
        protected void attackEntity(Entity p_70785_1_, float p_70785_2_)
        {
            if (this.attackTime <= 0 && p_70785_2_ < 2.0F && p_70785_1_.boundingBox.maxY > this.boundingBox.minY && p_70785_1_.boundingBox.minY < this.boundingBox.maxY)
            {
                this.attackTime = 20;
                this.attackEntityAsMob(p_70785_1_);
            }
            else if (p_70785_2_ < 30.0F)
            {
                double d0 = p_70785_1_.posX - this.posX;
                double d1 = p_70785_1_.boundingBox.minY + (double)(p_70785_1_.height / 2.0F) - (this.posY + (double)(this.height / 2.0F));
                double d2 = p_70785_1_.posZ - this.posZ;
    
                if (this.attackTime == 0)
                {
                    ++this.field_70846_g;
    
                    if (this.field_70846_g == 1)
                    {
                        this.attackTime = 60;
                        this.func_70844_e(true);
                    }
                    else if (this.field_70846_g <= 4)
                    {
                        this.attackTime = 6;
                    }
                    else
                    {
                        this.attackTime = 100;
                        this.field_70846_g = 0;
                        this.func_70844_e(false);
                    }
    
                    if (this.field_70846_g > 1)
                    {
                        float f1 = MathHelper.sqrt_float(p_70785_2_) * 0.5F;
                        this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1009, (int)this.posX, (int)this.posY, (int)this.posZ, 0);
    
                        for (int i = 0; i < 1; ++i)
                        {
                            EntitySmallFireball entitysmallfireball = new EntitySmallFireball(this.worldObj, this, d0 + this.rand.nextGaussian() * (double)f1, d1, d2 + this.rand.nextGaussian() * (double)f1);
                            entitysmallfireball.posY = this.posY + (double)(this.height / 2.0F) + 0.5D;
                            this.worldObj.spawnEntityInWorld(entitysmallfireball);
                        }
                    }
                }
    
                this.rotationYaw = (float)(Math.atan2(d2, d0) * 180.0D / Math.PI) - 90.0F;
                this.hasAttacked = true;
            }
        }
       	private void func_70844_e(boolean  B) {
    		
    	}
    }


    Posted in: Modification Development
  • 0

    posted a message on Crops were working, now they are not [Solved]

    This was a pain to figure out, but after hours on end I finally figured out what was happening. I was moving all my init commands to their own files, to be called in the main file so my main file wasnt so huge.


    The crop block MUST be init before the Seed Item. I had all my items init first, which was causing a null on the block, then the block init but it was already null.


    So, make sure your block init comes before your seed init :)

    Posted in: Modification Development
  • 0

    posted a message on Crops were working, now they are not [Solved]

    made an Ice Pepper crop this morning, logged in and planted it, bonemealed it and broke it to get the seed food back.

    Now, I added another plant called Kaf Bush, and I set it up, but now when I log in, placing either item crashes the game.


    RecipeItemSeedFood.java


    package projectmayhem1983.wheeloftime.crops;
    
    import net.minecraft.block.Block;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.item.ItemFood;
    import net.minecraft.item.ItemStack;
    import net.minecraft.world.IBlockAccess;
    import net.minecraft.world.World;
    import net.minecraftforge.common.EnumPlantType;
    import net.minecraftforge.common.IPlantable;
    import net.minecraftforge.common.util.ForgeDirection;
    
    public class RecipeItemSeedFood extends ItemFood implements IPlantable
    {
        private final Block theBlockPlant;
        /**
         * Block ID of the soil this seed food should be planted on.
         */
        private final Block soilId;
    
        public RecipeItemSeedFood(int parHealAmount, float parSaturationModifier, 
              Block parBlockPlant, Block parSoilBlock)
        {
            super(parHealAmount, parSaturationModifier, false);
            theBlockPlant = parBlockPlant;
            soilId = parSoilBlock;
        }
    
        @Override
        public boolean onItemUse(ItemStack parItemStack, EntityPlayer parPlayer, 
              World parWorld, int parX, int parY, int parZ, int par7, float par8, 
              float par9, float par10)
        {
         // not sure what this parameter does, copied it from potato
            if (par7 != 1)
            {
                return false;
            }
            // check if player has capability to edit
            else if (parPlayer.canPlayerEdit(parX, parY+1, parZ, par7, parItemStack))
            {
                // check that the soil block can sustain the plant
                // and that block above is air so there is room for plant to grow
                if (parWorld.getBlock(parX, parY, parZ).canSustainPlant(parWorld, 
                      parX, parY, parZ, ForgeDirection.UP, this) && parWorld
                      .isAirBlock(parX, parY+1, parZ))
                {
                 // place the plant block
                    parWorld.setBlock(parX, parY+1, parZ, theBlockPlant);
                    // decrement the stack of seed items
                    --parItemStack.stackSize;
                    return true;
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return false;
            }
        }
    
        @Override
        public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z)
        {
            return EnumPlantType.Crop;
        }
    
        @Override
        public Block getPlant(IBlockAccess world, int x, int y, int z)
        {
            return theBlockPlant;
        }
    
        @Override
        public int getPlantMetadata(IBlockAccess world, int x, int y, int z)
        {
            return 0;
        }
    
        public Block getSoilId() 
        {
            return soilId;
        }
    }



    RecipeBlockCrops.java


    package projectmayhem1983.wheeloftime.crops;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockBush;
    import net.minecraft.block.IGrowable;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import net.minecraft.util.IIcon;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    
    public class RecipeBlockCrops extends BlockBush implements IGrowable
    {
        protected int maxGrowthStage = 7;
    
    
        @SideOnly(Side.CLIENT)
        protected IIcon[] iIcon;
    
        public RecipeBlockCrops()
        {
         // Basic block setup
            setTickRandomly(true);
            float f = 0.5F;
            setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
            setCreativeTab((CreativeTabs)null);
            setHardness(0.0F);
            setStepSound(soundTypeGrass);
            disableStats();
        }
    
        /**
         * is the block grass, dirt or farmland
         */
        @Override
        protected boolean canPlaceBlockOn(Block parBlock)
        {
            return parBlock == Blocks.farmland;
        }
    
        public void incrementGrowStage(World parWorld, Random parRand, int parX, int parY, int parZ)
        {
            int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 
                  MathHelper.getRandomIntegerInRange(parRand, 2, 5);
    
            if (growStage > maxGrowthStage)
            {
             growStage = maxGrowthStage;
            }
    
            parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
        }
        
        @Override
        public Item getItemDropped(int p_149650_1_, Random parRand, int parFortune)
        {
            return Item.getItemFromBlock(this);
        }
    
        /**
         * The type of render function that is called for this block
         */
        @Override
        public int getRenderType()
        {
            return 1; // Cross like flowers
        }
        
        /**
         * Gets the block's texture. Args: side, meta
         */
        @Override
        @SideOnly(Side.CLIENT)
        public IIcon getIcon(int parSide, int parGrowthStage)
        {
         return iIcon[parGrowthStage];
        }
       
        /*
         * Need to implement the IGrowable interface methods
         */
    
        /*
         * (non-Javadoc)
         * @see net.minecraft.block.IGrowable#func_149851_a(net.minecraft.world.World, 
         * int, int, int, boolean)
         */
        @Override
        // checks if finished growing (a grow stage of 7 is final stage)
        public boolean func_149851_a(World parWorld, int parX, int parY, int parZ, 
              boolean p_149851_5_)
        {
            return parWorld.getBlockMetadata(parX, parY, parZ) != 7;
        }
    
        /*
         * (non-Javadoc)
         * @see net.minecraft.block.IGrowable#func_149852_a(net.minecraft.world.World, 
         * java.util.Random, int, int, int)
         */
        @Override
        public boolean func_149852_a(World p_149852_1_, Random parRand, int p_149852_3_, 
              int p_149852_4_, int p_149852_5_)
        {
            return true;
        }
    
        /*
         * (non-Javadoc)
         * @see net.minecraft.block.IGrowable#func_149853_b(net.minecraft.world.World, 
         * java.util.Random, int, int, int)
         */
        @Override
        public void func_149853_b(World parWorld, Random parRand, int parX, int parY, 
              int parZ)
        {
            incrementGrowStage(parWorld, parRand, parX, parY, parZ);
        }
        /**
         * Ticks the block if it's been scheduled
         */
        @Override
        public void updateTick(World parWorld, int parX, int parY, int parZ, Random parRand)
        {
            super.updateTick(parWorld, parX, parY, parZ, parRand);
            int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 1;
    
            if (growStage > 7)
            {
                growStage = 7;
            }
    
            parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
        }
    }
    


    BlockIcePeppers.java


    package projectmayhem1983.wheeloftime.crops;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.item.Item;
    import net.minecraft.util.IIcon;
    import projectmayhem1983.wheeloftime.WheelOfTime;
    import projectmayhem1983.wheeloftime.init.WheelOfTimeItems;
    
    public class BlockIcePeppers extends RecipeBlockCrops
    {
    
       
        /**
         * Returns the quantity of items to drop on block destruction.
         */
        @Override
        public int quantityDropped(int parMetadata, int parFortune, Random parRand)
        {
            return (parMetadata/2);
        }
        
    
        @Override
        public Item getItemDropped(int parMetadata, Random parRand, int parFortune)  
        {
         // DEBUG
         System.out.println("BlockIcePeppers getItemDropped()");
            return (WheelOfTimeItems.itemIcePepper);
        }
        
        @Override
        @SideOnly(Side.CLIENT)
        public void registerBlockIcons(IIconRegister parIIconRegister)
        {
              iIcon = new IIcon[maxGrowthStage+1];
              // seems that crops like to have 8 growth icons, but okay to repeat actual texture if you want
              // to make generic should loop to maxGrowthStage
              iIcon[0] = parIIconRegister.registerIcon("wot:defaultplant0");
              iIcon[1] = parIIconRegister.registerIcon("wot:defaultplant1");
              iIcon[2] = parIIconRegister.registerIcon("wot:defaultplant2");
              iIcon[3] = parIIconRegister.registerIcon("wot:defaultplant3");
              iIcon[4] = parIIconRegister.registerIcon("wot:defaultplant4");
              iIcon[5] = parIIconRegister.registerIcon("wot:defaultplant5");
              iIcon[6] = parIIconRegister.registerIcon("wot:defaultplant6");
              iIcon[7] = parIIconRegister.registerIcon("wot:icepepperplant7");
        }
    }


    IcePepper.java


    package projectmayhem1983.wheeloftime.crops;
    
    import net.minecraft.init.Blocks;
    import projectmayhem1983.wheeloftime.WheelOfTime;
    import projectmayhem1983.wheeloftime.init.WheelOfTimeBlocks;
    
    public class ItemIcePepper extends RecipeItemSeedFood {
    
    	public ItemIcePepper() {
    		super(1, 0.3F, WheelOfTimeBlocks.blockIcePeppers, Blocks.farmland);
    		this.setFull3D();
    		this.setMaxStackSize(64);
    
    	}
    }


    BlockKafBush.java


    package projectmayhem1983.wheeloftime.crops;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.item.Item;
    import net.minecraft.util.IIcon;
    import projectmayhem1983.wheeloftime.init.WheelOfTimeItems;
    
    public class BlockKafBush extends RecipeBlockCrops{
    	
    	 /**
         * Returns the quantity of items to drop on block destruction.
         */
        @Override
        public int quantityDropped(int parMetadata, int parFortune, Random parRand)
        {
            return (parMetadata/2);
        }
        
        @Override
        public Item getItemDropped(int parMetadata, Random parRand, int parFortune)  
        {
         // DEBUG
         System.out.println("BlockKafBush getItemDropped()");
            return (WheelOfTimeItems.itemKafbean);
        }
        
        @Override
        @SideOnly(Side.CLIENT)
        public void registerBlockIcons(IIconRegister parIIconRegister)
        {
              iIcon = new IIcon[maxGrowthStage+1];
              // seems that crops like to have 8 growth icons, but okay to repeat actual texture if you want
              // to make generic should loop to maxGrowthStage
              iIcon[0] = parIIconRegister.registerIcon("wot:defaultplant0");
              iIcon[1] = parIIconRegister.registerIcon("wot:defaultplant1");
              iIcon[2] = parIIconRegister.registerIcon("wot:defaultplant2");
              iIcon[3] = parIIconRegister.registerIcon("wot:defaultplant3");
              iIcon[4] = parIIconRegister.registerIcon("wot:defaultplant4");
              iIcon[5] = parIIconRegister.registerIcon("wot:defaultplant5");
              iIcon[6] = parIIconRegister.registerIcon("wot:defaultplant6");
              iIcon[7] = parIIconRegister.registerIcon("wot:kafbush7");
        }
    }
    



    ItemKafbean.java


    package projectmayhem1983.wheeloftime.crops;
    
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import projectmayhem1983.wheeloftime.init.WheelOfTimeBlocks;
    
    public class ItemKafbean extends RecipeItemSeedFood {
    	
    	public ItemKafbean() {
    		super(1, 0.3F, WheelOfTimeBlocks.blockKafBush, Blocks.farmland);
    		this.setFull3D();
    		this.setMaxStackSize(64);
    	}
    }
    




    It's weird to me that adding this second crop has somehow cause the game to crash when I try to plant either crop.

    Here is my console log from the crash



    [14:40:03] [Server thread/ERROR]: Encountered an unexpected exception
    net.minecraft.util.ReportedException: Ticking memory connection
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:198) ~[NetworkSystem.class:?]
    	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:726) ~[MinecraftServer.class:?]
    	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614) ~[MinecraftServer.class:?]
    	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118) ~[IntegratedServer.class:?]
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    	at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
    Caused by: java.lang.NullPointerException
    	at net.minecraft.world.chunk.storage.ExtendedBlockStorage.func_150818_a(ExtendedBlockStorage.java:86) ~[ExtendedBlockStorage.class:?]
    	at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:653) ~[Chunk.class:?]
    	at net.minecraft.world.World.setBlock(World.java:519) ~[World.class:?]
    	at net.minecraft.world.World.setBlock(World.java:681) ~[World.class:?]
    	at projectmayhem1983.wheeloftime.crops.RecipeItemSeedFood.onItemUse(RecipeItemSeedFood.java:49) ~[RecipeItemSeedFood.class:?]
    	at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:507) ~[ForgeHooks.class:?]
    	at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:142) ~[ItemStack.class:?]
    	at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:422) ~[ItemInWorldManager.class:?]
    	at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:593) ~[NetHandlerPlayServer.class:?]
    	at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:74) ~[C08PacketPlayerBlockPlacement.class:?]
    	at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:122) ~[C08PacketPlayerBlockPlacement.class:?]
    	at net.minecraft.network.NetworkManager.processReceivedPackets(NetworkManager.java:241) ~[NetworkManager.class:?]
    	at net.minecraft.network.NetworkSystem.networkTick(NetworkSystem.java:182) ~[NetworkSystem.class:?]
    	... 5 more
    [14:40:03] [Server thread/ERROR]: This crash report has been saved to: C:\Users\Chris\Desktop\Wheel Of Time\eclipse\.\crash-reports\crash-2015-12-24_14.40.03-server.txt
    [14:40:03] [Server thread/INFO]: Stopping server
    [14:40:03] [Server thread/INFO]: Saving players
    [14:40:03] [Server thread/INFO]: Saving worlds
    [14:40:03] [Server thread/INFO]: Saving chunks for level 'New World'/Overworld
    [14:40:03] [Server thread/INFO]: Saving chunks for level 'New World'/Nether
    [14:40:03] [Server thread/INFO]: Saving chunks for level 'New World'/The End
    [14:40:04] [Server thread/INFO] [FML]: Unloading dimension 0
    [14:40:04] [Server thread/INFO] [FML]: Unloading dimension -1
    [14:40:04] [Server thread/INFO] [FML]: Unloading dimension 1
    [14:40:04] [Server thread/INFO] [FML]: Applying holder lookups
    [14:40:04] [Server thread/INFO] [FML]: Holder lookups applied
    [14:40:04] [Server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded.
    [14:40:05] [Client thread/FATAL]: Unreported exception thrown!
    java.lang.NullPointerException
    	at net.minecraft.world.chunk.storage.ExtendedBlockStorage.func_150818_a(ExtendedBlockStorage.java:86) ~[ExtendedBlockStorage.class:?]
    	at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:653) ~[Chunk.class:?]
    	at net.minecraft.world.World.setBlock(World.java:519) ~[World.class:?]
    	at net.minecraft.world.World.setBlock(World.java:681) ~[World.class:?]
    	at projectmayhem1983.wheeloftime.crops.RecipeItemSeedFood.onItemUse(RecipeItemSeedFood.java:49) ~[RecipeItemSeedFood.class:?]
    	at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:143) ~[ItemStack.class:?]
    	at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerRightClick(PlayerControllerMP.java:403) ~[PlayerControllerMP.class:?]
    	at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1529) ~[Minecraft.class:?]
    	at net.minecraft.client.Minecraft.runTick(Minecraft.java:2044) ~[Minecraft.class:?]
    	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039) ~[Minecraft.class:?]
    	at net.minecraft.client.Minecraft.run(Minecraft.java:962) [Minecraft.class:?]
    	at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_66]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_66]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_66]
    	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_66]
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    	at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
    	at GradleStart.main(Unknown Source) [start/:?]
    [14:40:05] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ----
    // I blame Dinnerbone.
    
    Time: 12/24/15 2:40 PM
    Description: Unexpected error
    
    java.lang.NullPointerException: Unexpected error
    	at net.minecraft.world.chunk.storage.ExtendedBlockStorage.func_150818_a(ExtendedBlockStorage.java:86)
    	at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:653)
    	at net.minecraft.world.World.setBlock(World.java:519)
    	at net.minecraft.world.World.setBlock(World.java:681)
    	at projectmayhem1983.wheeloftime.crops.RecipeItemSeedFood.onItemUse(RecipeItemSeedFood.java:49)
    	at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:143)
    	at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerRightClick(PlayerControllerMP.java:403)
    	at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1529)
    	at net.minecraft.client.Minecraft.runTick(Minecraft.java:2044)
    	at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1039)
    	at net.minecraft.client.Minecraft.run(Minecraft.java:962)
    	at net.minecraft.client.main.Main.main(Main.java:164)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:497)
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    	at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    	at GradleStart.main(Unknown Source)
    
    
    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------
    
    -- Head --
    Stacktrace:
    	at net.minecraft.world.chunk.storage.ExtendedBlockStorage.func_150818_a(ExtendedBlockStorage.java:86)
    	at net.minecraft.world.chunk.Chunk.func_150807_a(Chunk.java:653)
    	at net.minecraft.world.World.setBlock(World.java:519)
    	at net.minecraft.world.World.setBlock(World.java:681)
    	at projectmayhem1983.wheeloftime.crops.RecipeItemSeedFood.onItemUse(RecipeItemSeedFood.java:49)
    	at net.minecraft.item.ItemStack.tryPlaceItemIntoWorld(ItemStack.java:143)
    	at net.minecraft.client.multiplayer.PlayerControllerMP.onPlayerRightClick(PlayerControllerMP.java:403)
    	at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1529)
    
    -- Affected level --
    Details:
    	Level name: MpServer
    	All players: 1 total; [EntityClientPlayerMP['Player928'/383, l='MpServer', x=-1740.48, y=82.62, z=299.77]]
    	Chunk stats: MultiplayerChunkCache: 612, 612
    	Level seed: 0
    	Level generator: ID 04 - WheelOfTime, ver 0. Features enabled: false
    	Level generator options: 
    	Level spawn location: World: (-52,64,180), Chunk: (at 12,4,4 in -4,11; contains blocks -64,0,176 to -49,255,191), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
    	Level time: 9287 game time, 9287 day time
    	Level dimension: 0
    	Level storage version: 0x00000 - Unknown?
    	Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
    	Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
    	Forced entities: 75 total; [EntityZombie['Zombie'/384, l='MpServer', x=-1753.47, y=37.00, z=310.88], EntityZombie['Zombie'/385, l='MpServer', x=-1754.09, y=37.00, z=316.53], EntitySpider['Spider'/386, l='MpServer', x=-1716.47, y=16.00, z=275.97], EntityGoatMob['Goat'/387, l='MpServer', x=-1718.47, y=77.00, z=311.53], EntityGoatMob['Goat'/388, l='MpServer', x=-1719.56, y=77.00, z=310.44], EntityCow['Cow'/389, l='MpServer', x=-1729.47, y=79.00, z=269.53], EntityCow['Cow'/390, l='MpServer', x=-1730.53, y=80.00, z=268.41], EntityCow['Cow'/391, l='MpServer', x=-1736.03, y=84.00, z=265.06], EntityCow['Cow'/392, l='MpServer', x=-1718.56, y=79.00, z=264.44], EntityCow['Cow'/393, l='MpServer', x=-1702.38, y=78.00, z=285.47], EntityBat['Bat'/394, l='MpServer', x=-1764.25, y=46.35, z=327.19], EntityBat['Bat'/395, l='MpServer', x=-1764.50, y=44.60, z=323.91], EntityZombie['Zombie'/396, l='MpServer', x=-1788.50, y=49.00, z=291.50], EntityCow['Cow'/397, l='MpServer', x=-1690.13, y=74.00, z=288.13], EntityZombie['Zombie'/398, l='MpServer', x=-1781.56, y=21.00, z=317.53], EntityBat['Bat'/399, l='MpServer', x=-1789.31, y=23.98, z=322.34], EntityTrollocMob['Trolloc'/400, l='MpServer', x=-1790.50, y=14.00, z=275.50], EntityZombie['Zombie'/401, l='MpServer', x=-1790.06, y=50.00, z=286.63], EntityCow['Cow'/402, l='MpServer', x=-1725.53, y=75.00, z=243.03], EntityCow['Cow'/403, l='MpServer', x=-1734.56, y=76.00, z=232.65], EntityCow['Cow'/404, l='MpServer', x=-1694.22, y=74.00, z=286.47], EntityCow['Cow'/405, l='MpServer', x=-1699.91, y=73.00, z=291.91], EntityPig['Pig'/406, l='MpServer', x=-1762.50, y=78.00, z=244.91], EntityPig['Pig'/407, l='MpServer', x=-1771.50, y=84.00, z=242.50], EntityPig['Pig'/408, l='MpServer', x=-1773.47, y=83.00, z=238.31], EntityCreeper['Creeper'/409, l='MpServer', x=-1706.59, y=33.00, z=247.75], EntityCreeper['Creeper'/410, l='MpServer', x=-1713.00, y=33.00, z=240.56], EntityCreeper['Creeper'/411, l='MpServer', x=-1709.41, y=33.00, z=243.72], EntityDarkhoundMob['Darkhound'/412, l='MpServer', x=-1706.50, y=33.00, z=246.50], EntityZombie['Zombie'/413, l='MpServer', x=-1703.40, y=69.00, z=229.44], EntityGoatMob['Goat'/414, l='MpServer', x=-1692.38, y=75.00, z=317.16], EntityDamaneMob['entity.Damane Mob.name'/416, l='MpServer', x=-1793.16, y=49.00, z=289.53], EntityDamaneMob['entity.Damane Mob.name'/417, l='MpServer', x=-1795.59, y=49.00, z=288.25], EntityMyrddraalMob['Myrddraal'/420, l='MpServer', x=-1804.44, y=45.00, z=312.66], EntityMyrddraalMob['Myrddraal'/421, l='MpServer', x=-1802.69, y=45.00, z=316.47], EntityBat['Bat'/422, l='MpServer', x=-1790.97, y=14.00, z=278.69], EntityBat['Bat'/423, l='MpServer', x=-1795.66, y=16.89, z=277.50], EntityMyrddraalMob['Myrddraal'/425, l='MpServer', x=-1796.59, y=49.00, z=287.50], EntityPig['Pig'/426, l='MpServer', x=-1796.50, y=68.00, z=286.69], EntityPig['Pig'/427, l='MpServer', x=-1795.97, y=68.00, z=282.47], EntityPig['Pig'/428, l='MpServer', x=-1797.56, y=67.00, z=286.63], EntityPig['Pig'/429, l='MpServer', x=-1807.50, y=64.00, z=285.19], EntityCow['Cow'/430, l='MpServer', x=-1721.53, y=74.00, z=236.44], EntityCow['Cow'/431, l='MpServer', x=-1712.25, y=69.00, z=228.78], EntityCow['Cow'/432, l='MpServer', x=-1720.38, y=81.00, z=364.50], EntityCow['Cow'/433, l='MpServer', x=-1725.63, y=85.00, z=369.41], EntityCow['Cow'/434, l='MpServer', x=-1724.41, y=80.00, z=365.81], EntityDamaneMob['entity.Damane Mob.name'/435, l='MpServer', x=-1791.22, y=24.00, z=343.50], EntityDamaneMob['entity.Damane Mob.name'/436, l='MpServer', x=-1790.13, y=22.00, z=348.97], EntityBat['Bat'/437, l='MpServer', x=-1787.56, y=40.05, z=342.56], EntitySkeleton['Skeleton'/438, l='MpServer', x=-1790.50, y=49.00, z=344.50], EntityTrollocMob['Trolloc'/439, l='MpServer', x=-1786.47, y=33.00, z=240.94], EntityGoatMob['Goat'/440, l='MpServer', x=-1683.50, y=75.00, z=246.03], EntityGoatMob['Goat'/441, l='MpServer', x=-1691.28, y=74.00, z=241.31], EntityGoatMob['Goat'/442, l='MpServer', x=-1691.25, y=75.00, z=244.19], EntityCreeper['Creeper'/443, l='MpServer', x=-1801.97, y=11.00, z=328.59], EntityBat['Bat'/444, l='MpServer', x=-1792.69, y=23.48, z=322.44], EntityClientPlayerMP['Player928'/383, l='MpServer', x=-1740.48, y=82.62, z=299.77], EntityZombie['Zombie'/445, l='MpServer', x=-1798.09, y=17.00, z=263.44], EntityDarkhoundMob['Darkhound'/446, l='MpServer', x=-1793.28, y=17.00, z=261.78], EntityPig['Pig'/448, l='MpServer', x=-1770.50, y=78.00, z=239.50], EntityBat['Bat'/449, l='MpServer', x=-1694.69, y=15.02, z=222.28], EntityDarkhoundMob['Darkhound'/450, l='MpServer', x=-1711.50, y=33.00, z=239.50], EntitySkeleton['Skeleton'/458, l='MpServer', x=-1681.84, y=38.00, z=226.41], EntityCow['Cow'/466, l='MpServer', x=-1721.59, y=85.00, z=369.31], EntityZombie['Zombie'/467, l='MpServer', x=-1775.50, y=29.00, z=374.06], EntityCreeper['Creeper'/468, l='MpServer', x=-1807.94, y=18.00, z=329.59], EntitySkeleton['Skeleton'/469, l='MpServer', x=-1701.91, y=36.00, z=225.56], EntityCreeper['Creeper'/470, l='MpServer', x=-1674.50, y=44.00, z=236.50], EntityBat['Bat'/471, l='MpServer', x=-1778.25, y=28.10, z=372.75], EntityCreeper['Creeper'/473, l='MpServer', x=-1783.50, y=23.00, z=222.50], EntityCreeper['Creeper'/477, l='MpServer', x=-1690.44, y=37.00, z=220.44], EntitySkeleton['Skeleton'/504, l='MpServer', x=-1814.50, y=39.00, z=232.50], EntityBat['Bat'/510, l='MpServer', x=-1690.88, y=39.48, z=223.28], EntitySkeleton['Skeleton'/511, l='MpServer', x=-1662.10, y=30.14, z=229.52]]
    	Retry entities: 0 total; []
    	Server brand: fml,forge
    	Server type: Integrated singleplayer server
    Stacktrace:
    	at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415)
    	at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2566)
    	at net.minecraft.client.Minecraft.run(Minecraft.java:991)
    	at net.minecraft.client.main.Main.main(Main.java:164)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:497)
    	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
    	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
    	at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
    	at GradleStart.main(Unknown Source)
    
    -- System Details --
    Details:
    	Minecraft Version: 1.7.10
    	Operating System: Windows 7 (amd64) version 6.1
    	Java Version: 1.8.0_66, Oracle Corporation
    	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    	Memory: 558915568 bytes (533 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
    	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    	AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    	IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
    	FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1558 4 mods loaded, 4 mods active
    	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
    	UCHIJAAAA	mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
    	UCHIJAAAA	FML{7.10.99.99} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
    	UCHIJAAAA	Forge{10.13.4.1558} [Minecraft Forge] (forgeSrc-1.7.10-10.13.4.1558-1.7.10.jar) 
    	UCHIJAAAA	wot{1.0} [Wheel Of Time] (bin) 
    	GL info: ' Vendor: 'ATI Technologies Inc.' Version: '3.3.11472 Compatibility Profile Context' Renderer: 'ATI Radeon HD 4550'
    	Launched Version: 1.7.10
    	LWJGL: 2.9.1
    	OpenGL: ATI Radeon HD 4550 GL version 3.3.11472 Compatibility Profile Context, ATI Technologies Inc.
    	GL Caps: Using GL 1.3 multitexturing.
    Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
    Anisotropic filtering is supported and maximum anisotropy is 16.
    Shaders are available because OpenGL 2.1 is supported.
    
    	Is Modded: Definitely; Client brand changed to 'fml,forge'
    	Type: Client (map_client.txt)
    	Resource Packs: []
    	Current Language: English (US)
    	Profiler Position: N/A (disabled)
    	Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    	Anisotropic Filtering: Off (1)
    [14:40:05] [Client thread/INFO] [STDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:398]: #@[email protected]# Game crashed! Crash report saved to: #@[email protected]# C:\Users\Chris\Desktop\Wheel Of Time\eclipse\.\crash-reports\crash-2015-12-24_14.40.05-client.txt
    AL lib: (EE) alc_cleanup: 1 device not closed
    Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release
    




    The error points to this line correct?

    parWorld.setBlock(parX, parY+1, parZ, theBlockPlant);


    Is it having trouble with the X,Y,Z or the blockplant? Everything looks fine to me, and the Ice Pepper plant was working this morning. With no crashes.

    Posted in: Modification Development
  • 0

    posted a message on Custom plant showing as purple/black checkerboard [Solved]

    Made a custom Ice Peppers plant and a plantable seed called Ice Pepper. They plant fine, and grow fine, and upon destruction, drops the ice pepper food seed as it's suppose to. The textures for it are not working though. Here is the code.


     blockIcePeppers = new BlockIcePeppers().setBlockName("BlockIcePeppers").setBlockTextureName("wot:defaultplant0");
    	    GameRegistry.registerBlock(blockIcePeppers, blockIcePeppers.getUnlocalizedName().substring(5));
    
    
    here is the block info


    package projectmayhem1983.wheeloftime.crops;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.item.Item;
    import net.minecraft.util.IIcon;
    import projectmayhem1983.wheeloftime.WheelOfTime;
    
    public class BlockIcePeppers extends RecipeBlockCrops
    {
    
       
        /**
         * Returns the quantity of items to drop on block destruction.
         */
        @Override
        public int quantityDropped(int parMetadata, int parFortune, Random parRand)
        {
            return (parMetadata/2);
        }
        
    
        @Override
        public Item getItemDropped(int parMetadata, Random parRand, int parFortune)  
        {
         // DEBUG
         System.out.println("BlockIcePeppers getItemDropped()");
            return (WheelOfTime.itemIcePepper);
        }
        
        @Override
        @SideOnly(Side.CLIENT)
        public void registerBlockIcons(IIconRegister parIIconRegister)
        {
              iIcon = new IIcon[maxGrowthStage+1];
              // seems that crops like to have 8 growth icons, but okay to repeat actual texture if you want
              // to make generic should loop to maxGrowthStage
              iIcon[0] = parIIconRegister.registerIcon("wot:defaultplant0");
              iIcon[1] = parIIconRegister.registerIcon("wot:defaultplant1");
              iIcon[2] = parIIconRegister.registerIcon("wot:defaultplant2");
              iIcon[3] = parIIconRegister.registerIcon("wot:defaultplant3");
              iIcon[4] = parIIconRegister.registerIcon("wot:defaultplant4");
              iIcon[5] = parIIconRegister.registerIcon("wot:defaultplant5");
              iIcon[6] = parIIconRegister.registerIcon("wot:defaultplant6");
              iIcon[7] = parIIconRegister.registerIcon("wot:icepepperplant7");
        }
    }




    And here is the class that it extended.


    package projectmayhem1983.wheeloftime.crops;
    
    import java.util.Random;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.block.Block;
    import net.minecraft.block.BlockBush;
    import net.minecraft.block.IGrowable;
    import net.minecraft.creativetab.CreativeTabs;
    import net.minecraft.init.Blocks;
    import net.minecraft.item.Item;
    import net.minecraft.util.IIcon;
    import net.minecraft.util.MathHelper;
    import net.minecraft.world.World;
    
    public class RecipeBlockCrops extends BlockBush implements IGrowable
    {
        protected int maxGrowthStage = 7;
    
    
        @SideOnly(Side.CLIENT)
        protected IIcon[] iIcon;
    
        public RecipeBlockCrops()
        {
         // Basic block setup
            setTickRandomly(true);
            float f = 0.5F;
            setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
            setCreativeTab((CreativeTabs)null);
            setHardness(0.0F);
            setStepSound(soundTypeGrass);
            disableStats();
        }
    
        /**
         * is the block grass, dirt or farmland
         */
        @Override
        protected boolean canPlaceBlockOn(Block parBlock)
        {
            return parBlock == Blocks.farmland;
        }
    
        public void incrementGrowStage(World parWorld, Random parRand, int parX, int parY, int parZ)
        {
            int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 
                  MathHelper.getRandomIntegerInRange(parRand, 2, 5);
    
            if (growStage > maxGrowthStage)
            {
             growStage = maxGrowthStage;
            }
    
            parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
        }
        
        @Override
        public Item getItemDropped(int p_149650_1_, Random parRand, int parFortune)
        {
            return Item.getItemFromBlock(this);
        }
    
        /**
         * The type of render function that is called for this block
         */
        @Override
        public int getRenderType()
        {
            return 1; // Cross like flowers
        }
        
        /**
         * Gets the block's texture. Args: side, meta
         */
        @Override
        @SideOnly(Side.CLIENT)
        public IIcon getIcon(int parSide, int parGrowthStage)
        {
         return iIcon[parGrowthStage];
        }
       
        /*
         * Need to implement the IGrowable interface methods
         */
    
        /*
         * (non-Javadoc)
         * @see net.minecraft.block.IGrowable#func_149851_a(net.minecraft.world.World, 
         * int, int, int, boolean)
         */
        @Override
        // checks if finished growing (a grow stage of 7 is final stage)
        public boolean func_149851_a(World parWorld, int parX, int parY, int parZ, 
              boolean p_149851_5_)
        {
            return parWorld.getBlockMetadata(parX, parY, parZ) != 7;
        }
    
        /*
         * (non-Javadoc)
         * @see net.minecraft.block.IGrowable#func_149852_a(net.minecraft.world.World, 
         * java.util.Random, int, int, int)
         */
        @Override
        public boolean func_149852_a(World p_149852_1_, Random parRand, int p_149852_3_, 
              int p_149852_4_, int p_149852_5_)
        {
            return true;
        }
    
        /*
         * (non-Javadoc)
         * @see net.minecraft.block.IGrowable#func_149853_b(net.minecraft.world.World, 
         * java.util.Random, int, int, int)
         */
        @Override
        public void func_149853_b(World parWorld, Random parRand, int parX, int parY, 
              int parZ)
        {
            incrementGrowStage(parWorld, parRand, parX, parY, parZ);
        }
        /**
         * Ticks the block if it's been scheduled
         */
        @Override
        public void updateTick(World parWorld, int parX, int parY, int parZ, Random parRand)
        {
            super.updateTick(parWorld, parX, parY, parZ, parRand);
            int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 1;
    
            if (growStage > 7)
            {
                growStage = 7;
            }
    
            parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
        }
    }
    



    I figure maybe the tutorial I used might be out of date? All my textures are located in assets/wot/textures/items
    
    

    Ok figured it out almost as soon as I posted. so I'll keep it here for anyone else who has the issue. I had to move my textures from my items folder to my blocks folder. I didn't know that made a difference. I thought it was just for finding your textures easier.

    Posted in: Modification Development
  • 0

    posted a message on WIP - Wheel of Time [1.7.10]

    Version 1.0 is being released so I can get some feedback on how everything is working, and any conflicts with other mods, though I do not think there should be any.

    Posted in: WIP Mods
  • 0

    posted a message on Spawning a Custom mob with a Custom weapon

    Thank you. Will dig into that this weekend, and moving my recipes to their own file. I saw on a thread about that also. Fixing those file names should help a lot going down the road.

    Posted in: Modification Development
  • 0

    posted a message on Spawning a Custom mob with a Custom weapon

    I followed some tutorials on youtube. the guy had 4 different classes for the mob. So I have Entity<whatever>, Entity<whatever>Mob, Render<whatever>mob, and <whatever>mob.


    The <whatever>mob has all my model infoi.

    The Render<whatever>mob grabs my entity texture and tells it what entity to put it on

    The Entity<whatever>Mob has all my task and stats info. and extends EntityMob

    The Entity<whatever> has the spawn egg info, min and max spawn, biome's it can spawn in.



    my main WheelOfTime file has:

     //Entities
    	    EntityMotai.WheelOfTime();
    	    EntityTrolloc.WheelOfTime();
    	    EntityAiel.WheelOfTime();
    	    EntityGoat.WheelOfTime();
    	    EntityDarkhound.WheelOfTime();
    	    EntityMyrddraal.WheelOfTime();
    	    EntityDamane.WheelOfTime();

    calling them all in.


    So what you are saying, is I should have one class file, called something like WheelOfTimeEntities, and move everything under //Entities into it? Then just have WheelOfTimeEntities() in my main file?


    And also, from what Ive gathered, looking at minecraft code and reading your post. I have Entity<whatever> and Entity<whatever>Mob backwards named don't I? Just the regular Entity<whatever> should have all my AI attacking info, extends, stats and stuff.


    I think I'm gonna browse GitHub over the holiday weekend and try to get a better feel for how other people do their coding. I think the tutorials I followed put too many steps and over complicated some things. I feel like I have too many files.


    Like I said earlier, I appreciate all the help you've given. I have gotten to where my mobs attack each other now, you got me looking at my file names and I realized I was importing the wrong file since it was named badly. Hopefully I'll get a lot done and learn more over the holiday, I have dec 24th-jan 4th off.

    Posted in: Modification Development
  • 0

    posted a message on Spawning a Custom mob with a Custom weapon

    I think you just helped with another issue also. I was having issues getting the Aiel and Trollocs to attack each other one spawn. Now that I have extended one to zombie, they go after each other. I just have to Overide the zombie growls and stuff now


    *edit* Well, kind of...with Trollocs set as zombies, the Aiel will now attack them, but they dont fight back, even after being hit.


    *edit* Ok I figured it out, I was setting them to attack EntityAiel.class, but I was suppose to set it to EntityAielMob.class. I just had the wrong file. haha.

    Posted in: Modification Development
  • 0

    posted a message on Spawning a Custom mob with a Custom weapon

    I Went ahead and tried extending zombie, and setting him to immune, he still didnt spawn with the spear though

    Posted in: Modification Development
  • 0

    posted a message on Spawning a Custom mob with a Custom weapon

    Ok, so one more question,. and thank you for all this help, I appreciate it. I've looked at a lot of code on github, and I've learned that there doesn't seem to be one set way to do a lot of stuff when it comes to modding. So, I've got 4 files for my mob.
    EntityAiel.java - this is where I register the entity and spawn egg. This file I do not have any extends, since you are calling for an override of EntityLiving#onSpawnWithEgg, would I put it there? Or in my EntityAielMob.java, which contains all the AI, XP info,stats, OnlivingUpdate and etc. Right now that one has extends EntityMob.

    Posted in: Modification Development
  • 0

    posted a message on Spawning a Custom mob with a Custom weapon

    I tried extending Zombie, but then the mob burned in sunlight. I had read this answer on another thread. If I extend it to zombie, how do i stop it from burning? Add @Override above my onLivingUpdate ?

    Posted in: Modification Development
  • To post a comment, please .