player.rayTrace(5.0D, 1.0F);
public static MovingObjectPosition block(EntityLivingBase entity_base, float fasc, double dist, boolean interact) {
Vec3 vec3 = Vec3.createVectorHelper(entity_base.posX, entity_base.posY + entity_base.getEyeHeight(), entity_base.posZ);
Vec3 vec31 = entity_base.getLook(fasc);
Vec3 vec32 = vec3.addVector(vec31.xCoord * dist, vec31.yCoord * dist, vec31.zCoord * dist);
MovingObjectPosition mop = entity_base.worldObj.rayTraceBlocks(vec3, vec32, interact);
return mop;
}
@Override
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
MovingObjectPosition mop = block(player, 1.0F, 5.0D, true);
if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
int x = mop.blockX;
int y = mop.blockY;
int z = mop.blockZ;
}
return super.onItemRightClick(is, world, player);
}
@Override
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
MovingObjectPosition mop = block(player, 1.0F, 5.0D, true);
if (mop != null && mop.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
int x = mop.blockX;
int y = mop.blockY;
int z = mop.blockZ;
if (world.getBlock(x, y, z) == Blocks.water) {
player.inventory.addItemStackToInventory(new ItemStack(Items.water_bucket));
world.setBlockToAir(x, y, z);
--is.stackSize;
return is;
}
if (world.getBlock(x, y, z) == Blocks.lava) {
player.inventory.addItemStackToInventory(new ItemStack(Items.lava_bucket));
world.setBlockToAir(x, y, z);
--is.stackSize;
return is;
}
}
return super.onItemRightClick(is, world, player);
}