001    
002    public class ig extends hg {
003    
004        public ig(int paramInt) {
005            super(paramInt);
006            bb = 1;
007        }
008    
009        public jl a(jl paramjl, fv paramfv, hl paramhl) {
010            float f1 = 1.0F;
011    
012            float f2 = paramhl.y + (paramhl.w - paramhl.y) * f1;
013            float f3 = paramhl.x + (paramhl.v - paramhl.x) * f1;
014    
015            double d1 = paramhl.m + (paramhl.p - paramhl.m) * f1;
016            double d2 = paramhl.n + (paramhl.q - paramhl.n) * f1 + 1.62D - paramhl.H;
017            double d3 = paramhl.o + (paramhl.r - paramhl.o) * f1;
018    
019            bu localbu1 = bu.b(d1, d2, d3);
020    
021            float f4 = iz.b(-f3 * 0.01745329F - 3.141593F);
022            float f5 = iz.a(-f3 * 0.01745329F - 3.141593F);
023            float f6 = -iz.b(-f2 * 0.01745329F);
024            float f7 = iz.a(-f2 * 0.01745329F);
025    
026            float f8 = f5 * f6;
027            float f9 = f7;
028            float f10 = f4 * f6;
029    
030            double d4 = 5.0D;
031            bu localbu2 = localbu1.c(f8 * d4, f9 * d4, f10 * d4);
032            ih localih = paramfv.a(localbu1, localbu2, true);
033            if (localih == null) {
034                return paramjl;
035            }
036    
037            if (localih.a == jr.a) {
038                int i = localih.b;
039                int j = localih.c;
040                int k = localih.d;
041    
042                if (!paramfv.z) {
043                    // hMod: placing of a boat
044                    Block blockClicked = new Block(paramfv.a(i, j, k), i, j, k);
045                    blockClicked.setFaceClicked(Block.Face.fromId(localih.e));
046                    Block blockPlaced = new Block(0, i, j, k);
047                    // hMod: Call hook
048                    if (paramhl instanceof fy && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.ITEM_USE, ((fy) paramhl).getPlayer(), blockPlaced, blockClicked, new Item(paramjl))) {
049                        return paramjl;
050                    }
051                    paramfv.a(new gu(paramfv, i + 0.5F, j + 1.5F, k + 0.5F));
052                }
053                paramjl.a -= 1;
054            }
055    
056            return paramjl;
057        }
058    }