package cn.mcmod.sakura.item; import cn.mcmod.sakura.SakuraMain; import cn.mcmod.sakura.client.SakuraParticleType; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.ActionResult; import net.minecraft.util.EnumActionResult; import net.minecraft.util.EnumHand; import net.minecraft.util.math.RayTraceResult; import net.minecraft.world.World; public class ItemSakuraDiamond extends Item { public ItemSakuraDiamond() { this.setUnlocalizedName(SakuraMain.MODID + "." + "sakura_diamond"); } @Override public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) { ItemStack itemstack = playerIn.getHeldItem(handIn); RayTraceResult raytraceresult = this.rayTrace(worldIn, playerIn, false); if (raytraceresult != null && raytraceresult.typeOfHit == RayTraceResult.Type.BLOCK && worldIn.getBlockState(raytraceresult.getBlockPos()).getBlock() == Blocks.END_PORTAL_FRAME) { return new ActionResult<ItemStack>(EnumActionResult.PASS, itemstack); } if (worldIn.isRemote) { int j = worldIn.rand.nextInt(2) * 2 - 1; int k = worldIn.rand.nextInt(2) * 2 - 1; double d0 = playerIn.getPosition().getX() + 0.25D * j; double d1 = playerIn.getPosition().getY() + 1D; double d2 = playerIn.getPosition().getZ() + 0.25D * k; double d3 = worldIn.rand.nextFloat() * j * 0.1D; double d4 = (worldIn.rand.nextFloat() * 0.055D) + 0.015D; double d5 = worldIn.rand.nextFloat() * k * 0.1D; SakuraMain.proxy.spawnParticle(SakuraParticleType.LEAVESSAKURA, d0, d1, d2, d3, -d4, d5); } return new ActionResult<ItemStack>(EnumActionResult.SUCCESS, itemstack); } }