public class OItemBoat extends OItem { public OItemBoat(int paramInt) { super(paramInt); be = 1; } @Override public OItemStack a(OItemStack paramOItemStack, OWorld paramOWorld, OEntityPlayer paramOEntityPlayer) { float f1 = 1.0F; float f2 = paramOEntityPlayer.aT + (paramOEntityPlayer.aR - paramOEntityPlayer.aT) * f1; float f3 = paramOEntityPlayer.aS + (paramOEntityPlayer.aQ - paramOEntityPlayer.aS) * f1; double d1 = paramOEntityPlayer.aH + (paramOEntityPlayer.aK - paramOEntityPlayer.aH) * f1; double d2 = paramOEntityPlayer.aI + (paramOEntityPlayer.aL - paramOEntityPlayer.aI) * f1 + 1.62D - paramOEntityPlayer.bc; double d3 = paramOEntityPlayer.aJ + (paramOEntityPlayer.aM - paramOEntityPlayer.aJ) * f1; OVec3D localOVec3D1 = OVec3D.b(d1, d2, d3); float f4 = OMathHelper.b(-f3 * 0.01745329F - 3.141593F); float f5 = OMathHelper.a(-f3 * 0.01745329F - 3.141593F); float f6 = -OMathHelper.b(-f2 * 0.01745329F); float f7 = OMathHelper.a(-f2 * 0.01745329F); float f8 = f5 * f6; float f9 = f7; float f10 = f4 * f6; double d4 = 5.0D; OVec3D localOVec3D2 = localOVec3D1.c(f8 * d4, f9 * d4, f10 * d4); OMovingObjectPosition localOMovingObjectPosition = paramOWorld.a(localOVec3D1, localOVec3D2, true); if (localOMovingObjectPosition == null) return paramOItemStack; if (localOMovingObjectPosition.a == OEnumMovingObjectType.a) { int i = localOMovingObjectPosition.b; int j = localOMovingObjectPosition.c; int k = localOMovingObjectPosition.d; if (!paramOWorld.t) { // hMod: placing of a boat Block blockClicked = new Block(paramOWorld.a(i, j, k), i, j, k); blockClicked.setFaceClicked(Block.Face.fromId(localOMovingObjectPosition.e)); Block blockPlaced = new Block(0, i, j, k); // hMod: Call hook if (paramOEntityPlayer instanceof OEntityPlayerMP && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(), blockPlaced, blockClicked, new Item(paramOItemStack))) return paramOItemStack; paramOWorld.a(new OEntityBoat(paramOWorld, i + 0.5F, j + 1.5F, k + 0.5F)); } paramOItemStack.a -= 1; } return paramOItemStack; } }