Java 类net.minecraft.item.ItemGlassBottle 实例源码

项目:LittleThings-old    文件:GetExpBottles.java   
@SubscribeEvent
public void onRightClick(PlayerInteractEvent.RightClickItem e)
{
    if (e.getItemStack() != null && e.getItemStack().getItem() instanceof ItemGlassBottle && e.getEntityPlayer().isSneaking() && (e.getEntityPlayer().experienceLevel >= 1 || e.getEntityPlayer().isCreative())) {
        EntityPlayer player = e.getEntityPlayer();

        Vector3 origin = Vector3.fromEntity(player).add(0, player.getEyeHeight(), 0);
        Vector3 look = new Vector3(player.getLookVec());
        Vector3 end = origin.copy().add(look.copy().normalize().multiply(5));

        RayTraceResult rtr = player.worldObj.rayTraceBlocks(origin.toVec3D(), end.toVec3D(), true);
        IBlockState hitBlockState = null;
        if (rtr != null) hitBlockState = e.getWorld().getBlockState(rtr.getBlockPos());

        if (hitBlockState == null || hitBlockState.getBlock() != Blocks.water) {
            e.getItemStack().stackSize--;
            if (e.getItemStack().stackSize <= 0)
                e.getEntityPlayer().inventory.deleteStack(e.getItemStack());
            e.getEntityPlayer().inventory.addItemStackToInventory(new ItemStack(Items.experience_bottle));
            e.getEntityPlayer().removeExperienceLevel(1);
        }
    }
}