I made a model that takes up a 3x3 area now i am trying to code the part that when 1 of the blocks is broken they all break. When I try to code my breakBlock method it gets all screwy. The method is being called when I place the item and i have no idea why?
GagBlock class
package com.wiffington.pizzeria.blocks;
import com.wiffington.pizzeria.Main;
import com.wiffington.pizzeria.tileentity.TileEntityGag;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityPiston;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class BlockGag extends BlockContainer{
public BlockGag() {
super(Material.rock);
this.setBlockName("blockGag");
this.setHardness(3.5F);
this.setCreativeTab(Main.tabPizza);
}
@Override
public void breakBlock(World world, int i, int j, int k, Block block, int par6) {
if (block == Main.blockGag) {
if (!(world.isRemote)) {
TileEntityGag tileEntity = (TileEntityGag) world.getTileEntity(i, j, k);
if (tileEntity != null) {
for (int height = 0; height < 3; height++) {
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 3; col++) {
System.out.println("this is being called");
/*
super.breakBlock(world, tileEntity.primary_x + 1 - row,
tileEntity.primary_y + 3 - height, tileEntity.primary_z + 1 - col, block, par6);
world.removeTileEntity(tileEntity.primary_x + 1 - row,
tileEntity.primary_y + 3 - height, tileEntity.primary_z + 1 - col);
world.setBlockToAir(tileEntity.primary_x + 1 - row, tileEntity.primary_y + 3 - height,
tileEntity.primary_z + 1 - col);
*/
}
}
}
}
}
}
}
@Override
public boolean shouldSideBeRendered(IBlockAccess iblockaccess, int i, int j, int k, int l){
return false;
}
@Override public boolean isOpaqueCube(){
return false;
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityGag();
}
}
The Item placer class
package com.wiffington.pizzeria.items;
import com.wiffington.pizzeria.Main;
import com.wiffington.pizzeria.tileentity.TileEntityGag;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.util.MathHelper;
public class ItemTest extends Item {
public ItemTest(){
this.setCreativeTab(Main.tabPizza);
}
// Called when a player right-clicks with this item in his hand
@Override
public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int x, int y, int z, int side, float xOffset, float yOffset, float zOffSet) {
boolean canPlace = true;
if (!world.isRemote) {
//this is checking the 3x3 area around where you clicked to see if you can place the oven
for (int height = 0; height < 3; height++) {
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 3; col++) {
if (!world.isAirBlock(x + 1 - row, y + 3 - height, z + 1 - col)) {
canPlace = false;
}
}
}
}
if (canPlace) {
//this is where it is setting the gag blocks and storing where the center cords are.
for (int height = 0; height < 3; height++) {
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 3; col++) {
world.setBlock(x, y + 1, z, Main.blockPizzaOven);
world.setBlock(x+1, y + 1, z+1, Main.blockGag);
if (!(height == 2 && row == 0 && col == 0)) {
world.setBlock(x + 1 - row, y + 3 - height, z + 1 - col, Main.blockGag);
TileEntityGag tileEntity = (TileEntityGag) world.getTileEntity(x + 1 - row, y + 3 - height, z + 1 - col);
if (tileEntity != null) {
tileEntity.primary_x = x;
tileEntity.primary_y = y + 1;
tileEntity.primary_z = z;
}
}
}
}
}
return true;
}
return false;
}
return false;
}
}