public class OItemBucket extends OItem {
private int a;
public OItemBucket(int paramInt1, int paramInt2) {
super(paramInt1);
be = 1;
a = paramInt2;
}
@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, a == 0);
if (localOMovingObjectPosition == null)
return paramOItemStack;
if (localOMovingObjectPosition.a == OEnumMovingObjectType.a) {
int i = localOMovingObjectPosition.b;
int j = localOMovingObjectPosition.c;
int k = localOMovingObjectPosition.d;
if (!paramOWorld.a(paramOEntityPlayer, i, j, k))
return paramOItemStack;
// hMod: Click == placed when handling an empty bukkit!
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);
if (a == 0) {
if ((paramOWorld.c(i, j, k) == OMaterial.f) && (paramOWorld.b(i, j, k) == 0)) {
// Filling a bucket with water!
if (paramOEntityPlayer instanceof OEntityPlayerMP && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(), blockPlaced, blockClicked, new Item(paramOItemStack)))
return paramOItemStack;
paramOWorld.e(i, j, k, 0);
return new OItemStack(OItem.av);
}
if ((paramOWorld.c(i, j, k) == OMaterial.g) && (paramOWorld.b(i, j, k) == 0)) {
// Filling a bucket with lava!
if (paramOEntityPlayer instanceof OEntityPlayerMP && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(), blockPlaced, blockClicked, new Item(paramOItemStack)))
return paramOItemStack;
paramOWorld.e(i, j, k, 0);
return new OItemStack(OItem.aw);
}
} else {
if (a < 0)
return new OItemStack(OItem.au);
if (localOMovingObjectPosition.e == 0)
j--;
if (localOMovingObjectPosition.e == 1)
j++;
if (localOMovingObjectPosition.e == 2)
k--;
if (localOMovingObjectPosition.e == 3)
k++;
if (localOMovingObjectPosition.e == 4)
i--;
if (localOMovingObjectPosition.e == 5)
i++;
if ((paramOWorld.e(i, j, k)) || (!paramOWorld.c(i, j, k).a())) {
if ((paramOWorld.m.d) && (a == OBlock.A.bl)) {
paramOWorld.a(d1 + 0.5D, d2 + 0.5D, d3 + 0.5D, "random.fizz", 0.5F, 2.6F + (paramOWorld.k.nextFloat() - paramOWorld.k.nextFloat()) * 0.8F);
for (int m = 0; m < 8; m++)
paramOWorld.a("largesmoke", i + Math.random(), j + Math.random(), k + Math.random(), 0.0D, 0.0D, 0.0D);
} else {
// hMod: Bucket empty.
blockPlaced = new Block(a, i, j, k);
if (paramOEntityPlayer instanceof OEntityPlayerMP && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(), blockPlaced, blockClicked, new Item(paramOItemStack)))
return paramOItemStack;
paramOWorld.b(i, j, k, a, 0);
}
return new OItemStack(OItem.au);
}
}
} else if ((a == 0) && ((localOMovingObjectPosition.g instanceof OEntityCow)))
return new OItemStack(OItem.aE);
return paramOItemStack;
}
}