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