public class OItemDoor extends OItem { private OMaterial a; public OItemDoor(int paramInt, OMaterial paramOMaterial) { super(paramInt); a = paramOMaterial; be = 1; } @Override public boolean a(OItemStack paramOItemStack, OEntityPlayer paramOEntityPlayer, OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { if (paramInt4 != 1) return false; paramInt2++; OBlock localOBlock; if (a == OMaterial.c) localOBlock = OBlock.aE; else localOBlock = OBlock.aL; if (!localOBlock.a(paramOWorld, paramInt1, paramInt2, paramInt3)) return false; // hMod: Doors onItemUse Block blockClicked = new Block(paramOWorld.a(paramInt1, paramInt2, paramInt3), paramInt1, paramInt2, paramInt3); blockClicked.setFaceClicked(Block.Face.fromId(paramInt4)); Block blockPlaced = new Block(paramOWorld.a(paramInt1, paramInt2 + 1, paramInt3), paramInt1, paramInt2 + 1, paramInt3); // Call the hook if (paramOEntityPlayer instanceof OEntityPlayerMP) { Player player = ((OEntityPlayerMP) paramOEntityPlayer).getPlayer(); if ((Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, player, blockPlaced, blockClicked, new Item(paramOItemStack))) return false; } int i = OMathHelper.b((paramOEntityPlayer.aQ + 180.0F) * 4.0F / 360.0F - 0.5D) & 0x3; int j = 0; int k = 0; if (i == 0) k = 1; if (i == 1) j = -1; if (i == 2) k = -1; if (i == 3) j = 1; int m = (paramOWorld.d(paramInt1 - j, paramInt2, paramInt3 - k) ? 1 : 0) + (paramOWorld.d(paramInt1 - j, paramInt2 + 1, paramInt3 - k) ? 1 : 0); int n = (paramOWorld.d(paramInt1 + j, paramInt2, paramInt3 + k) ? 1 : 0) + (paramOWorld.d(paramInt1 + j, paramInt2 + 1, paramInt3 + k) ? 1 : 0); int i1 = (paramOWorld.a(paramInt1 - j, paramInt2, paramInt3 - k) == localOBlock.bl) || (paramOWorld.a(paramInt1 - j, paramInt2 + 1, paramInt3 - k) == localOBlock.bl) ? 1 : 0; int i2 = (paramOWorld.a(paramInt1 + j, paramInt2, paramInt3 + k) == localOBlock.bl) || (paramOWorld.a(paramInt1 + j, paramInt2 + 1, paramInt3 + k) == localOBlock.bl) ? 1 : 0; int i3 = 0; if ((i1 != 0) && (i2 == 0)) i3 = 1; else if (n > m) i3 = 1; if (i3 != 0) { i = i - 1 & 0x3; i += 4; } paramOWorld.e(paramInt1, paramInt2, paramInt3, localOBlock.bl); paramOWorld.c(paramInt1, paramInt2, paramInt3, i); paramOWorld.e(paramInt1, paramInt2 + 1, paramInt3, localOBlock.bl); paramOWorld.c(paramInt1, paramInt2 + 1, paramInt3, i + 8); paramOItemStack.a -= 1; return true; } }