Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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



}

  • Author

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

Guest
This topic is now closed to further replies.

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.