001    
002    import java.util.List;
003    import java.util.Random;
004    
005    public abstract class fe {
006    
007        private static int a = 0;
008        public int g = a++;
009        public double h = 1.0D;
010        public boolean i = false;
011        public fe j;
012        public fe k;
013        public fv l;
014        public double m;
015        public double n;
016        public double o;
017        public double p;
018        public double q;
019        public double r;
020        public double s;
021        public double t;
022        public double u;
023        public float v;
024        public float w;
025        public float x;
026        public float y;
027        public final fa z = fa.a(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
028        public boolean A = false;
029        public boolean B;
030        public boolean C;
031        public boolean D = false;
032        public boolean E = false;
033        public boolean F = true;
034        public boolean G = false;
035        public float H = 0.0F;
036        public float I = 0.6F;
037        public float J = 1.8F;
038        public float K = 0.0F;
039        public float L = 0.0F;
040        protected boolean M = true;
041        protected float N = 0.0F;
042        private int b = 1;
043        public double O;
044        public double P;
045        public double Q;
046        public float R = 0.0F;
047        public float S = 0.0F;
048        public boolean T = false;
049        public float U = 0.0F;
050        public boolean V = false;
051        protected Random W = new Random();
052        public int X = 0;
053        public int Y = 1;
054        public int Z = 0;
055        protected int aa = 300;
056        protected boolean ab = false;
057        public int ac = 0;
058        public int ad = 300;
059        private boolean c = true;
060        protected boolean ae = false;
061        protected gx af = new gx();
062        private double d;
063        private double e;
064        public boolean ag = false;
065        public int ah;
066        public int ai;
067        public int aj;
068    
069        public fe(fv paramfv) {
070            l = paramfv;
071    
072            a(0.0D, 0.0D, 0.0D);
073    
074            af.a(0, 0);
075            a();
076        }
077    
078        protected abstract void a();
079    
080        public gx p() {
081            return af;
082        }
083    
084        public boolean equals(Object paramObject) {
085            if ((paramObject instanceof fe)) {
086                return ((fe) paramObject).g == g;
087            }
088            return false;
089        }
090    
091        public int hashCode() {
092            return g;
093        }
094    
095        public void q() {
096            G = true;
097        }
098    
099        protected void a(float paramFloat1, float paramFloat2) {
100            I = paramFloat1;
101            J = paramFloat2;
102        }
103    
104        protected void b(float paramFloat1, float paramFloat2) {
105            v = paramFloat1;
106            w = paramFloat2;
107        }
108    
109        public void a(double paramDouble1, double paramDouble2, double paramDouble3) {
110            p = paramDouble1;
111            q = paramDouble2;
112            r = paramDouble3;
113            float f1 = I / 2.0F;
114            float f2 = J;
115    
116            z.c(paramDouble1 - f1, paramDouble2 - H + R, paramDouble3 - f1, paramDouble1 + f1, paramDouble2 - H + R + f2, paramDouble3 + f1);
117        }
118    
119        public void b_() {
120            r();
121        }
122    
123        public void r() {
124            if ((k != null) && (k.G)) {
125                k = null;
126            }
127    
128            X += 1;
129            K = L;
130            m = p;
131            n = q;
132            o = r;
133            y = w;
134            x = v;
135    
136            if (v()) {
137                if ((!ab) && (!c)) {
138                    float f1 = iz.a(s * s * 0.2000000029802322D + t * t + u * u * 0.2000000029802322D) * 0.2F;
139                    if (f1 > 1.0F) {
140                        f1 = 1.0F;
141                    }
142                    l.a(this, "random.splash", f1, 1.0F + (W.nextFloat() - W.nextFloat()) * 0.4F);
143                    float f2 = iz.b(z.b);
144                    float f3;
145                    float f4;
146                    for (int i1 = 0; i1 < 1.0F + I * 20.0F; i1++) {
147                        f3 = (W.nextFloat() * 2.0F - 1.0F) * I;
148                        f4 = (W.nextFloat() * 2.0F - 1.0F) * I;
149                        l.a("bubble", p + f3, f2 + 1.0F, r + f4, s, t - W.nextFloat() * 0.2F, u);
150                    }
151                    for (int i1 = 0; i1 < 1.0F + I * 20.0F; i1++) {
152                        f3 = (W.nextFloat() * 2.0F - 1.0F) * I;
153                        f4 = (W.nextFloat() * 2.0F - 1.0F) * I;
154                        l.a("splash", p + f3, f2 + 1.0F, r + f4, s, t, u);
155                    }
156                }
157                N = 0.0F;
158                ab = true;
159                Z = 0;
160            } else {
161                ab = false;
162            }
163    
164            if (l.z) {
165                Z = 0;
166            } else if (Z > 0) {
167                if (ae) {
168                    Z -= 4;
169                    if (Z < 0) {
170                        Z = 0;
171                    }
172                } else {
173                    if (Z % 20 == 0) {
174                        BaseEntity burner = new BaseEntity(this);
175                        if (!(Boolean) etc.getLoader().callHook(PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.FIRE_TICK, null, burner, 1)) {
176                            a((fe) null, 1);
177                        }
178                    }
179                    Z -= 1;
180                }
181    
182            }
183    
184            if (x()) {
185                s();
186            }
187    
188            if (q < -64.0D) {
189                t();
190            }
191    
192            if (!l.z) {
193                a(0, Z > 0);
194                a(2, k != null);
195            }
196    
197            c = false;
198        }
199    
200        protected void s() {
201            if (!ae) {
202                // hMod Damage hook: Lava
203                if (this instanceof mj) {
204                    BaseEntity defender = new BaseEntity(this);
205                    if ((Boolean) etc.getLoader().callHook(PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.LAVA, null, defender, 4)) {
206                        return;
207                    }
208                }
209                a((fe)null, 4);
210                Z = 600;
211            }
212        }
213    
214        protected void t() {
215            q();
216        }
217    
218        public boolean b(double paramDouble1, double paramDouble2, double paramDouble3) {
219            fa localfa = z.c(paramDouble1, paramDouble2, paramDouble3);
220            List localList = l.a(this, localfa);
221            if (localList.size() > 0) {
222                return false;
223            }
224            return !l.b(localfa);
225        }
226    
227        public void c(double paramDouble1, double paramDouble2, double paramDouble3) {
228            if (T) {
229                z.d(paramDouble1, paramDouble2, paramDouble3);
230                p = ((z.a + z.d) / 2.0D);
231                q = (z.b + H - R);
232                r = ((z.c + z.f) / 2.0D);
233                return;
234            }
235    
236            double d1 = p;
237            double d2 = r;
238    
239            double d3 = paramDouble1;
240            double d4 = paramDouble2;
241            double d5 = paramDouble3;
242    
243            fa localfa1 = z.b();
244    
245            int i1 = (A) && (J()) ? 1 : 0;
246    
247            if (i1 != 0) {
248                double d6 = 0.05D;
249                while ((paramDouble1 != 0.0D) && (l.a(this, z.c(paramDouble1, -1.0D, 0.0D)).size() == 0)) {
250                    if ((paramDouble1 < d6) && (paramDouble1 >= -d6)) {
251                        paramDouble1 = 0.0D;
252                    } else if (paramDouble1 > 0.0D) {
253                        paramDouble1 -= d6;
254                    } else {
255                        paramDouble1 += d6;
256                    }
257                    d3 = paramDouble1;
258                }
259                while ((paramDouble3 != 0.0D) && (l.a(this, z.c(0.0D, -1.0D, paramDouble3)).size() == 0)) {
260                    if ((paramDouble3 < d6) && (paramDouble3 >= -d6)) {
261                        paramDouble3 = 0.0D;
262                    } else if (paramDouble3 > 0.0D) {
263                        paramDouble3 -= d6;
264                    } else {
265                        paramDouble3 += d6;
266                    }
267                    d5 = paramDouble3;
268                }
269            }
270    
271            List localList = l.a(this, z.a(paramDouble1, paramDouble2, paramDouble3));
272    
273            for (int i2 = 0; i2 < localList.size(); i2++) {
274                paramDouble2 = ((fa) localList.get(i2)).b(z, paramDouble2);
275            }
276            z.d(0.0D, paramDouble2, 0.0D);
277    
278            if ((!F) && (d4 != paramDouble2)) {
279                paramDouble1 = paramDouble2 = paramDouble3 = 0.0D;
280            }
281    
282            int i2 = (A) || ((d4 != paramDouble2) && (d4 < 0.0D)) ? 1 : 0;
283    
284            for (int i3 = 0; i3 < localList.size(); i3++) {
285                paramDouble1 = ((fa) localList.get(i3)).a(z, paramDouble1);
286            }
287            z.d(paramDouble1, 0.0D, 0.0D);
288    
289            if ((!F) && (d3 != paramDouble1)) {
290                paramDouble1 = paramDouble2 = paramDouble3 = 0.0D;
291            }
292    
293            for (int i3 = 0; i3 < localList.size(); i3++) {
294                paramDouble3 = ((fa) localList.get(i3)).c(z, paramDouble3);
295            }
296            z.d(0.0D, 0.0D, paramDouble3);
297    
298            if ((!F) && (d5 != paramDouble3)) {
299                paramDouble1 = paramDouble2 = paramDouble3 = 0.0D;
300            }
301    
302            if ((S > 0.0F) && (i2 != 0) && (R < 0.05F) && ((d3 != paramDouble1) || (d5 != paramDouble3))) {
303                double d7 = paramDouble1;
304                double d8 = paramDouble2;
305                double d9 = paramDouble3;
306    
307                paramDouble1 = d3;
308                paramDouble2 = S;
309                paramDouble3 = d5;
310    
311                fa localfa2 = z.b();
312                z.b(localfa1);
313                localList = l.a(this, z.a(paramDouble1, paramDouble2, paramDouble3));
314                int i7;
315                for (i7 = 0; i7 < localList.size(); i7++) {
316                    paramDouble2 = ((fa) localList.get(i7)).b(z, paramDouble2);
317                }
318                z.d(0.0D, paramDouble2, 0.0D);
319    
320                if ((!F) && (d4 != paramDouble2)) {
321                    paramDouble1 = paramDouble2 = paramDouble3 = 0.0D;
322                }
323    
324                for (i7 = 0; i7 < localList.size(); i7++) {
325                    paramDouble1 = ((fa) localList.get(i7)).a(z, paramDouble1);
326                }
327                z.d(paramDouble1, 0.0D, 0.0D);
328    
329                if ((!F) && (d3 != paramDouble1)) {
330                    paramDouble1 = paramDouble2 = paramDouble3 = 0.0D;
331                }
332    
333                for (i7 = 0; i7 < localList.size(); i7++) {
334                    paramDouble3 = ((fa) localList.get(i7)).c(z, paramDouble3);
335                }
336                z.d(0.0D, 0.0D, paramDouble3);
337    
338                if ((!F) && (d5 != paramDouble3)) {
339                    paramDouble1 = paramDouble2 = paramDouble3 = 0.0D;
340                }
341    
342                if (d7 * d7 + d9 * d9 >= paramDouble1 * paramDouble1 + paramDouble3 * paramDouble3) {
343                    paramDouble1 = d7;
344                    paramDouble2 = d8;
345                    paramDouble3 = d9;
346                    z.b(localfa2);
347                } else {
348                    R = (float) (R + 0.5D);
349                }
350    
351            }
352    
353            p = ((z.a + z.d) / 2.0D);
354            q = (z.b + H - R);
355            r = ((z.c + z.f) / 2.0D);
356    
357            B = ((d3 != paramDouble1) || (d5 != paramDouble3));
358            C = (d4 != paramDouble2);
359            A = ((d4 != paramDouble2) && (d4 < 0.0D));
360            D = ((B) || (C));
361            a(paramDouble2, A);
362    
363            if (d3 != paramDouble1) {
364                s = 0.0D;
365            }
366            if (d4 != paramDouble2) {
367                t = 0.0D;
368            }
369            if (d5 != paramDouble3) {
370                u = 0.0D;
371            }
372    
373            double d7 = p - d1;
374            double d8 = r - d2;
375    
376            if ((M) && (i1 == 0)) {
377                L = (float) (L + iz.a(d7 * d7 + d8 * d8) * 0.6D);
378                int i4 = iz.b(p);
379                int i5 = iz.b(q - 0.2000000029802322D - H);
380                int i6 = iz.b(r);
381                int i7 = l.a(i4, i5, i6);
382                if ((L > b) && (i7 > 0)) {
383                    b += 1;
384                    cy localcy = hr.m[i7].br;
385                    if (l.a(i4, i5 + 1, i6) == hr.aS.bi) {
386                        localcy = hr.aS.br;
387                        l.a(this, localcy.c(), localcy.a() * 0.15F, localcy.b());
388                    } else if (!hr.m[i7].bt.d()) {
389                        l.a(this, localcy.c(), localcy.a() * 0.15F, localcy.b());
390                    }
391                    hr.m[i7].b(l, i4, i5, i6, this);
392                }
393    
394            }
395    
396            int i4 = iz.b(z.a);
397            int i5 = iz.b(z.b);
398            int i6 = iz.b(z.c);
399            int i7 = iz.b(z.d);
400            int i8 = iz.b(z.e);
401            int i9 = iz.b(z.f);
402    
403            if (l.a(i4, i5, i6, i7, i8, i9)) {
404                for (int i10 = i4; i10 <= i7; i10++) {
405                    for (int i11 = i5; i11 <= i8; i11++) {
406                        for (int i12 = i6; i12 <= i9; i12++) {
407                            int i13 = l.a(i10, i11, i12);
408                            if (i13 > 0) {
409                                hr.m[i13].a(l, i10, i11, i12, this);
410                            }
411                        }
412                    }
413                }
414            }
415            R *= 0.4F;
416    
417            boolean bool = v();
418            if (l.c(z)) {
419                b(1);
420                if (!bool) {
421                    Z += 1;
422                    if (Z == 0) {
423                        Z = 300;
424                    }
425                }
426            } else if (Z <= 0) {
427                Z = (-Y);
428            }
429    
430            if ((bool) && (Z > 0)) {
431                l.a(this, "random.fizz", 0.7F, 1.6F + (W.nextFloat() - W.nextFloat()) * 0.4F);
432                Z = (-Y);
433            }
434        }
435    
436        protected void a(double paramDouble, boolean paramBoolean) {
437            if (paramBoolean) {
438                if (N > 0.0F) {
439                    a(N);
440                    N = 0.0F;
441                }
442            } else if (paramDouble < 0.0D) {
443                N = (float) (N - paramDouble);
444            }
445        }
446    
447        public fa u() {
448            return null;
449        }
450    
451        protected void b(int paramInt) {
452            if (!ae) {
453                a((fe)null, paramInt);
454            }
455        }
456    
457        protected void a(float paramFloat) {
458        }
459    
460        public boolean v() {
461            return l.a(z.b(0.0D, -0.4000000059604645D, 0.0D), mh.f, this);
462        }
463    
464        public boolean a(mh parammh) {
465            double d1 = q + w();
466            int i1 = iz.b(p);
467            int i2 = iz.d(iz.b(d1));
468            int i3 = iz.b(r);
469            int i4 = l.a(i1, i2, i3);
470            if ((i4 != 0) && (hr.m[i4].bt == parammh)) {
471                float f1 = dz.c(l.b(i1, i2, i3)) - 0.1111111F;
472                float f2 = i2 + 1 - f1;
473                return d1 < f2;
474            }
475            return false;
476        }
477    
478        public float w() {
479            return 0.0F;
480        }
481    
482        public boolean x() {
483            return l.a(z.b(-0.1000000014901161D, -0.4000000059604645D, -0.1000000014901161D), mh.g);
484        }
485    
486        public void a(float paramFloat1, float paramFloat2, float paramFloat3) {
487            float f1 = iz.c(paramFloat1 * paramFloat1 + paramFloat2 * paramFloat2);
488            if (f1 < 0.01F) {
489                return;
490            }
491    
492            if (f1 < 1.0F) {
493                f1 = 1.0F;
494            }
495            f1 = paramFloat3 / f1;
496            paramFloat1 *= f1;
497            paramFloat2 *= f1;
498    
499            float f2 = iz.a(v * 3.141593F / 180.0F);
500            float f3 = iz.b(v * 3.141593F / 180.0F);
501    
502            s += paramFloat1 * f3 - paramFloat2 * f2;
503            u += paramFloat2 * f3 + paramFloat1 * f2;
504        }
505    
506        public float b(float paramFloat) {
507            int i1 = iz.b(p);
508    
509            double d1 = (z.e - z.b) * 0.66D;
510            int i2 = iz.b(q - H + d1);
511            int i3 = iz.b(r);
512            if (l.a(iz.b(z.a), iz.b(z.b), iz.b(z.c), iz.b(z.d), iz.b(z.e), iz.b(z.f))) {
513                return l.l(i1, i2, i3);
514            }
515            return 0.0F;
516        }
517    
518        public void b(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2) {
519            m = (this.p = paramDouble1);
520            n = (this.q = paramDouble2);
521            o = (this.r = paramDouble3);
522            x = (this.v = paramFloat1);
523            y = (this.w = paramFloat2);
524            R = 0.0F;
525    
526            double d1 = x - paramFloat1;
527            if (d1 < -180.0D) {
528                x += 360.0F;
529            }
530            if (d1 >= 180.0D) {
531                x -= 360.0F;
532            }
533            a(p, q, r);
534            b(paramFloat1, paramFloat2);
535        }
536    
537        public void c(double paramDouble1, double paramDouble2, double paramDouble3, float paramFloat1, float paramFloat2) {
538            O = (this.m = this.p = paramDouble1);
539            P = (this.n = this.q = paramDouble2 + H);
540            Q = (this.o = this.r = paramDouble3);
541            v = paramFloat1;
542            w = paramFloat2;
543            a(p, q, r);
544        }
545    
546        public float a(fe paramfe) {
547            float f1 = (float) (p - paramfe.p);
548            float f2 = (float) (q - paramfe.q);
549            float f3 = (float) (r - paramfe.r);
550            return iz.c(f1 * f1 + f2 * f2 + f3 * f3);
551        }
552    
553        public double d(double paramDouble1, double paramDouble2, double paramDouble3) {
554            double d1 = p - paramDouble1;
555            double d2 = q - paramDouble2;
556            double d3 = r - paramDouble3;
557            return d1 * d1 + d2 * d2 + d3 * d3;
558        }
559    
560        public double e(double paramDouble1, double paramDouble2, double paramDouble3) {
561            double d1 = p - paramDouble1;
562            double d2 = q - paramDouble2;
563            double d3 = r - paramDouble3;
564            return iz.a(d1 * d1 + d2 * d2 + d3 * d3);
565        }
566    
567        public double b(fe paramfe) {
568            double d1 = p - paramfe.p;
569            double d2 = q - paramfe.q;
570            double d3 = r - paramfe.r;
571            return d1 * d1 + d2 * d2 + d3 * d3;
572        }
573    
574        public void b(hl paramhl) {
575        }
576    
577        public void c(fe paramfe) {
578            if ((paramfe.j == this) || (paramfe.k == this)) {
579                return;
580            }
581    
582            double d1 = paramfe.p - p;
583            double d2 = paramfe.r - r;
584    
585            double d3 = iz.a(d1, d2);
586    
587            if (d3 >= 0.009999999776482582D) {
588                d3 = iz.a(d3);
589                d1 /= d3;
590                d2 /= d3;
591    
592                double d4 = 1.0D / d3;
593                if (d4 > 1.0D) {
594                    d4 = 1.0D;
595                }
596                d1 *= d4;
597                d2 *= d4;
598    
599                d1 *= 0.0500000007450581D;
600                d2 *= 0.0500000007450581D;
601    
602                d1 *= (1.0F - U);
603                d2 *= (1.0F - U);
604    
605                f(-d1, 0.0D, -d2);
606                paramfe.f(d1, 0.0D, d2);
607            }
608        }
609    
610        public void f(double paramDouble1, double paramDouble2, double paramDouble3) {
611            s += paramDouble1;
612            t += paramDouble2;
613            u += paramDouble3;
614        }
615    
616        protected void y() {
617            E = true;
618        }
619    
620        public boolean a(fe paramfe, int paramInt) {
621            y();
622            return false;
623        }
624    
625        public boolean c_() {
626            return false;
627        }
628    
629        public boolean z() {
630            return false;
631        }
632    
633        public void b(fe paramfe, int paramInt) {
634        }
635    
636        public boolean c(ah paramah) {
637            String str = A();
638            if ((G) || (str == null)) {
639                return false;
640            }
641            paramah.a("id", str);
642            d(paramah);
643            return true;
644        }
645    
646        public void d(ah paramah) {
647            paramah.a("Pos", a(new double[]{p, q, r}));
648            paramah.a("Motion", a(new double[]{s, t, u}));
649            paramah.a("Rotation", a(new float[]{v, w}));
650    
651            paramah.a("FallDistance", N);
652            paramah.a("Fire", (short) Z);
653            paramah.a("Air", (short) ad);
654            paramah.a("OnGround", A);
655    
656            a(paramah);
657        }
658    
659        public void e(ah paramah) {
660            fh localfh1 = paramah.k("Pos");
661            fh localfh2 = paramah.k("Motion");
662            fh localfh3 = paramah.k("Rotation");
663            a(0.0D, 0.0D, 0.0D);
664    
665            s = ((fo) localfh2.a(0)).a;
666            t = ((fo) localfh2.a(1)).a;
667            u = ((fo) localfh2.a(2)).a;
668    
669            m = (this.O = this.p = ((fo) localfh1.a(0)).a);
670            n = (this.P = this.q = ((fo) localfh1.a(1)).a);
671            o = (this.Q = this.r = ((fo) localfh1.a(2)).a);
672    
673            x = (this.v = ((u) localfh3.a(0)).a);
674            y = (this.w = ((u) localfh3.a(1)).a);
675    
676            N = paramah.f("FallDistance");
677            Z = paramah.c("Fire");
678            ad = paramah.c("Air");
679            A = paramah.l("OnGround");
680    
681            a(p, q, r);
682    
683            b(paramah);
684        }
685    
686        protected final String A() {
687            return jn.b(this);
688        }
689    
690        protected abstract void b(ah paramah);
691    
692        protected abstract void a(ah paramah);
693    
694        protected fh a(double[] paramArrayOfDouble) {
695            fh localfh = new fh();
696            for (double d1 : paramArrayOfDouble) {
697                localfh.a(new fo(d1));
698            }
699            return localfh;
700        }
701    
702        protected fh a(float[] paramArrayOfFloat) {
703            fh localfh = new fh();
704            for (float f : paramArrayOfFloat) {
705                localfh.a(new u(f));
706            }
707            return localfh;
708        }
709    
710        public ic a(int paramInt1, int paramInt2) {
711            return a(paramInt1, paramInt2, 0.0F);
712        }
713    
714        public ic a(int paramInt1, int paramInt2, float paramFloat) {
715            return a(new jl(paramInt1, paramInt2, 0), paramFloat);
716        }
717    
718        public ic a(jl paramjl, float paramFloat) {
719            ic localic = new ic(l, p, q + paramFloat, r, paramjl);
720            localic.c = 10;
721            l.a(localic);
722            return localic;
723        }
724    
725        public boolean B() {
726            return !G;
727        }
728    
729        public boolean C() {
730            int i1 = iz.b(p);
731            int i2 = iz.b(q + w());
732            int i3 = iz.b(r);
733            return l.d(i1, i2, i3);
734        }
735    
736        public boolean a(hl paramhl) {
737            return false;
738        }
739    
740        public fa d(fe paramfe) {
741            return null;
742        }
743    
744        public void D() {
745            if (k.G) {
746                k = null;
747                return;
748            }
749            s = 0.0D;
750            t = 0.0D;
751            u = 0.0D;
752            b_();
753            k.E();
754    
755            e += k.v - k.x;
756            d += k.w - k.y;
757    
758            while (e >= 180.0D) {
759                e -= 360.0D;
760            }
761            while (e < -180.0D) {
762                e += 360.0D;
763            }
764            while (d >= 180.0D) {
765                d -= 360.0D;
766            }
767            while (d < -180.0D) {
768                d += 360.0D;
769            }
770            double d1 = e * 0.5D;
771            double d2 = d * 0.5D;
772    
773            float f = 10.0F;
774            if (d1 > f) {
775                d1 = f;
776            }
777            if (d1 < -f) {
778                d1 = -f;
779            }
780            if (d2 > f) {
781                d2 = f;
782            }
783            if (d2 < -f) {
784                d2 = -f;
785            }
786    
787            e -= d1;
788            d -= d2;
789    
790            v = (float) (v + d1);
791            w = (float) (w + d2);
792        }
793    
794        public void E() {
795            j.a(p, q + k() + j.F(), r);
796        }
797    
798        public double F() {
799            return H;
800        }
801    
802        public double k() {
803            return J * 0.75D;
804        }
805    
806        public void e(fe paramfe) {
807            d = 0.0D;
808            e = 0.0D;
809    
810            if (paramfe == null) {
811                if (k != null) {
812                    c(k.p, k.z.b + k.J, k.r, v, w);
813                    k.j = null;
814                }
815                k = null;
816                return;
817            }
818            if (k == paramfe) {
819                k.j = null;
820                k = null;
821                c(paramfe.p, paramfe.z.b + paramfe.J, paramfe.r, v, w);
822                return;
823            }
824            if (k != null) {
825                k.j = null;
826            }
827            if (paramfe.j != null) {
828                paramfe.j.k = null;
829            }
830            k = paramfe;
831            paramfe.j = this;
832        }
833    
834        public bu G() {
835            return null;
836        }
837    
838        public void H() {
839        }
840    
841        public jl[] I() {
842            return null;
843        }
844    
845        public boolean J() {
846            return c(1);
847        }
848    
849        public void b(boolean paramBoolean) {
850            a(1, paramBoolean);
851        }
852    
853        protected boolean c(int paramInt) {
854            return (af.a(0) & 1 << paramInt) != 0;
855        }
856    
857        protected void a(int paramInt, boolean paramBoolean) {
858            int i1 = af.a(0);
859            if (paramBoolean) {
860                af.b(0, Byte.valueOf((byte) (i1 | 1 << paramInt)));
861            } else {
862                af.b(0, Byte.valueOf((byte) (i1 & (1 << paramInt ^ 0xFFFFFFFF))));
863            }
864        }
865    }