Jump to content

onBlockActivated not working (Changing from one block to another)


dude22072

Recommended Posts

when i right click the block with the specified item it flashes to what it should change to then flashes back. It also crashed the game if clicked with an empty hand.

 

Code:

package dudesmods.lozmod;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;

public class BlockPedistal  extends Block {

public BlockPedistal(int par1) {
	super(par1, Material.rock);
}

@Override
public boolean onBlockActivated(World par1World, int par2, int par3,
	int par4, EntityPlayer par5EntityPlayer, int par6, float par7,
	float par8, float par9)
{

	if(par5EntityPlayer.getHeldItem().itemID == LOZmod.swordMaster.itemID)
	{
		par5EntityPlayer.getHeldItem().stackSize -= 1; //only if you want to use the item when you do this.
		if(par1World.isRemote)
		{
			par1World.setBlock(par2, par3, par4, LOZmod.pedistalSword.blockID);
		}
	}
	return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer,
		par6, par7, par8, par9);
}


}

Legend of Zelda Mod[updated September 20th to 3.1.1]

Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0]

Fancy Cheeses[updated May 8th to 0.5.0]

Link to comment
Share on other sites

It crashes when you have an empty hand because you aren't checking to make sure there is an item in your hand first. Add:

                if(par5EntityPlayer.getHeldItem() == null)
                {
	    return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer,
		    par6, par7, par8, par9);
                }

to the very beginning of your method before you do anything else in your method.

 

As far as the block not changing correctly, maybe try just returning true if the correct item is used instead of calling the super onBlockActivated regardless of what item is used. No guarantees but it might be worth a shot.

Read my thoughts on my summer mod work and tell me what you think!

http://www.minecraftforge.net/forum/index.php/topic,8396.0.html

 

I absolutely love her when she smiles

Link to comment
Share on other sites

Still doesn't change and still crashes.

Modified Code:

package dudesmods.lozmod;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;

public class BlockPedistal  extends Block {

public BlockPedistal(int par1) {
	super(par1, Material.rock);
}

@Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{

	if(par5EntityPlayer.getHeldItem().itemID == LOZmod.swordMaster.itemID)
	{
		par5EntityPlayer.getHeldItem().stackSize -= 1; //only if you want to use the item when you do this.
		if(par1World.isRemote)
		{
			par1World.setBlock(par2, par3, par4, LOZmod.pedistalSword.blockID);
		}
		return true;
	}


	if(par5EntityPlayer.getHeldItem() == null)
	{
		return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9);
	}

	else return false;
}

}

Legend of Zelda Mod[updated September 20th to 3.1.1]

Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0]

Fancy Cheeses[updated May 8th to 0.5.0]

Link to comment
Share on other sites

to the very beginning of your method before you do anything else in your method.

 

	@Override
public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
{

                if(par5EntityPlayer.getHeldItem() == null)
	{
		return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9);
	}

	if(par5EntityPlayer.getHeldItem().itemID == LOZmod.swordMaster.itemID)
	{
		par5EntityPlayer.getHeldItem().stackSize -= 1; //only if you want to use the item when you do this.
		if(par1World.isRemote)
		{
			par1World.setBlock(par2, par3, par4, LOZmod.pedistalSword.blockID);
		}
		return true;
	}

	return false;
}

 

I don't know why your block isn't changing, so unfortunately I can't help any further in that regard.

Read my thoughts on my summer mod work and tell me what you think!

http://www.minecraftforge.net/forum/index.php/topic,8396.0.html

 

I absolutely love her when she smiles

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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