Jump to content

GagBlock


wiffington

Recommended Posts

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;
}



}

Link to comment
Share on other sites

I am going to finish this mod first.  This version has the most tutorials so I am using it to get the hang of modding then I will switch.  It really doesn't make any sense that forge would discontinue 1.7.10...  I am sorry I am still stuck in the past but I have only played 1.7.10 and earlier and I have never ever played on any version above it.  ;D

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.