001    public class ez extends bm
002      implements mn, Container<jl>
003    {
004      private jl[] h = new jl[3];
005      public int e = 0;
006      public int f = 0;
007      public int g = 0;
008    private String name = "Furnace";
009      /**
010         * Get contents of the furnace block
011         * @return
012         */
013        public jl[] getContents() {
014            return h;
015        }
016    
017        /**
018         * Set contents of the furnace block
019         * @return
020         */
021        public void setContents(jl[] e) {
022            this.h = e;
023        }
024    
025        public jl getContentsAt(int index) {
026            return a(index);
027        }
028    
029        public void setContentsAt(int index, jl value) {
030            a(index, value);
031        }
032    
033        public int getContentsSize() {
034            return h_();
035        }
036    
037        public String getName() {
038            return name;
039        }
040    
041        public void setName(String value) {
042            name = value;
043        }
044    
045      public int h_() {
046        return h.length;
047      }
048    
049      public jl a(int paramInt) {
050        return h[paramInt];
051      }
052    
053      public jl b(int paramInt1, int paramInt2) {
054        if (h[paramInt1] != null) {
055          if (h[paramInt1].a <= paramInt2) {
056            jl localjl = h[paramInt1];
057            h[paramInt1] = null;
058            return localjl;
059          }
060          jl localjl = h[paramInt1].a(paramInt2);
061          if (h[paramInt1].a == 0) h[paramInt1] = null;
062          return localjl;
063        }
064    
065        return null;
066      }
067    
068      public void a(int paramInt, jl paramjl) {
069        h[paramInt] = paramjl;
070        if ((paramjl != null) && (paramjl.a > c())) paramjl.a = c(); 
071      }
072    
073      public String b()
074      {
075        return getName(); //hMod: override with getName()
076      }
077    
078      public void a(ah paramah)
079      {
080        super.a(paramah);
081        fh localfh = paramah.k("Items");
082        h = new jl[h_()];
083        for (int i = 0; i < localfh.b(); i++) {
084          ah localah = (ah)localfh.a(i);
085          int j = localah.b("Slot");
086          if ((j < 0) || (j >= h.length)) continue; h[j] = new jl(localah);
087        }
088    
089        e = paramah.c("BurnTime");
090        g = paramah.c("CookTime");
091        f = a(h[1]);
092      }
093    
094      public void b(ah paramah) {
095        super.b(paramah);
096        paramah.a("BurnTime", (short)e);
097        paramah.a("CookTime", (short)g);
098        fh localfh = new fh();
099    
100        for (int i = 0; i < h.length; i++) {
101          if (h[i] != null) {
102            ah localah = new ah();
103            localah.a("Slot", (byte)i);
104            h[i].a(localah);
105            localfh.a(localah);
106          }
107        }
108        paramah.a("Items", localfh);
109      }
110    
111      public int c() {
112        return 64;
113      }
114    
115      public boolean e()
116      {
117        return e > 0;
118      }
119    
120      public void f() {
121        int i = e > 0 ? 1 : 0;
122        int j = 0;
123        if (e > 0) {
124          e -= 1;
125        }
126    
127        if (!a.z) {
128          if ((e == 0) && (i())) {
129            f = (this.e = a(h[1]));
130            if (e > 0) {
131              j = 1;
132              if (h[1] != null) {
133                h[1].a -= 1;
134                if (h[1].a == 0) h[1] = null;
135              }
136            }
137          }
138    
139          if ((e()) && (i())) {
140            g += 1;
141            if (g == 200) {
142              g = 0;
143              h();
144              j = 1;
145            }
146          } else {
147            g = 0;
148          }
149    
150          if (i != (e > 0 ? 1 : 0)) {
151            j = 1;
152            fr.a(e > 0, a, b, c, d);
153          }
154        }
155    
156        if (j != 0) d(); 
157      }
158    
159      private boolean i()
160      {
161        if (h[0] == null) return false;
162        jl localjl = fp.a().a(h[0].a().ba);
163        if (localjl == null) return false;
164        if (h[2] == null) return true;
165        if (!h[2].a(localjl)) return false;
166        if ((h[2].a < c()) && (h[2].a < h[2].b())) return true;
167        return h[2].a < localjl.b();
168      }
169    
170      public void h()
171      {
172        if (!i()) return;
173    
174        jl localjl = fp.a().a(h[0].a().ba);
175        if (h[2] == null) h[2] = localjl.j();
176        else if (h[2].c == localjl.c) h[2].a += 1;
177    
178        h[0].a -= 1;
179        if (h[0].a <= 0) h[0] = null; 
180      }
181    
182      private int a(jl paramjl)
183      {
184        if (paramjl == null) return 0;
185        int i = paramjl.a().ba;
186    
187        if ((i < 256) && (hr.m[i].bt == mh.c)) {
188          return 300;
189        }
190    
191        if (i == hg.B.ba) {
192          return 100;
193        }
194    
195        if (i == hg.k.ba) return 1600;
196    
197        if (i == hg.aw.ba) return 20000;
198    
199        return 0;
200      }
201    
202      public boolean a_(hl paramhl) {
203        if (a.m(b, c, d) != this) return false;
204        return paramhl.d(b + 0.5D, c + 0.5D, d + 0.5D) <= 64.0D;
205      }
206    }