001 import java.util.ArrayList; 002 import java.util.List; 003 import java.util.Random; 004 005 public class de extends is 006 { 007 private boolean a = false; 008 009 private static List b = new ArrayList(); 010 011 private boolean a(fv paramfv, int paramInt1, int paramInt2, int paramInt3, boolean paramBoolean) { 012 if (paramBoolean) b.add(new lf(paramInt1, paramInt2, paramInt3, paramfv.e)); 013 int i = 0; 014 for (int j = 0; j < b.size(); j++) { 015 lf locallf = (lf)b.get(j); 016 if ((locallf.a == paramInt1) && (locallf.b == paramInt2) && (locallf.c == paramInt3)) { 017 i++; 018 if (i >= 8) { 019 return true; 020 } 021 } 022 } 023 return false; 024 } 025 026 protected de(int paramInt1, int paramInt2, boolean paramBoolean) { 027 super(paramInt1, paramInt2); 028 a = paramBoolean; 029 a(true); 030 } 031 032 public int b() { 033 return 2; 034 } 035 036 public void e(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 037 if (paramfv.b(paramInt1, paramInt2, paramInt3) == 0) super.e(paramfv, paramInt1, paramInt2, paramInt3); 038 if (a) { 039 paramfv.h(paramInt1, paramInt2 - 1, paramInt3, bi); 040 paramfv.h(paramInt1, paramInt2 + 1, paramInt3, bi); 041 paramfv.h(paramInt1 - 1, paramInt2, paramInt3, bi); 042 paramfv.h(paramInt1 + 1, paramInt2, paramInt3, bi); 043 paramfv.h(paramInt1, paramInt2, paramInt3 - 1, bi); 044 paramfv.h(paramInt1, paramInt2, paramInt3 + 1, bi); 045 } 046 } 047 048 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 049 if (a) { 050 paramfv.h(paramInt1, paramInt2 - 1, paramInt3, bi); 051 paramfv.h(paramInt1, paramInt2 + 1, paramInt3, bi); 052 paramfv.h(paramInt1 - 1, paramInt2, paramInt3, bi); 053 paramfv.h(paramInt1 + 1, paramInt2, paramInt3, bi); 054 paramfv.h(paramInt1, paramInt2, paramInt3 - 1, bi); 055 paramfv.h(paramInt1, paramInt2, paramInt3 + 1, bi); 056 } 057 } 058 059 public boolean b(la paramla, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 060 if (!a) return false; 061 062 int i = paramla.b(paramInt1, paramInt2, paramInt3); 063 064 if ((i == 5) && (paramInt4 == 1)) return false; 065 if ((i == 3) && (paramInt4 == 3)) return false; 066 if ((i == 4) && (paramInt4 == 2)) return false; 067 if ((i == 1) && (paramInt4 == 5)) return false; 068 return (i != 2) || (paramInt4 != 4); 069 } 070 071 private boolean g(fv paramfv, int paramInt1, int paramInt2, int paramInt3) 072 { 073 int i = paramfv.b(paramInt1, paramInt2, paramInt3); 074 075 if ((i == 5) && (paramfv.k(paramInt1, paramInt2 - 1, paramInt3, 0))) return true; 076 if ((i == 3) && (paramfv.k(paramInt1, paramInt2, paramInt3 - 1, 2))) return true; 077 if ((i == 4) && (paramfv.k(paramInt1, paramInt2, paramInt3 + 1, 3))) return true; 078 if ((i == 1) && (paramfv.k(paramInt1 - 1, paramInt2, paramInt3, 4))) return true; 079 return (i == 2) && (paramfv.k(paramInt1 + 1, paramInt2, paramInt3, 5)); 080 } 081 082 public void a(fv paramfv, int paramInt1, int paramInt2, int paramInt3, Random paramRandom) 083 { 084 boolean bool = g(paramfv, paramInt1, paramInt2, paramInt3); 085 086 while ((b.size() > 0) && (paramfv.e - ((lf)b.get(0)).d > 100L)) { 087 b.remove(0); 088 } 089 090 if (a) { 091 if (bool) { 092 paramfv.b(paramInt1, paramInt2, paramInt3, hr.aP.bi, paramfv.b(paramInt1, paramInt2, paramInt3)); 093 094 // hMod: Allow redstone torches to provide power 095 int current = (Integer) etc.getLoader().callHook(PluginLoader.Hook.REDSTONE_CHANGE, new Object[]{new Block(this.bh, paramInt1, paramInt2, paramInt3), 1, 0}); 096 if (current == 0) { 097 098 099 if (a(paramfv, paramInt1, paramInt2, paramInt3, true)) { 100 paramfv.a(paramInt1 + 0.5F, paramInt2 + 0.5F, paramInt3 + 0.5F, "random.fizz", 0.5F, 2.6F + (paramfv.l.nextFloat() - paramfv.l.nextFloat()) * 0.8F); 101 for (int i = 0; i < 5; i++) { 102 double d1 = paramInt1 + paramRandom.nextDouble() * 0.6D + 0.2D; 103 double d2 = paramInt2 + paramRandom.nextDouble() * 0.6D + 0.2D; 104 double d3 = paramInt3 + paramRandom.nextDouble() * 0.6D + 0.2D; 105 106 paramfv.a("smoke", d1, d2, d3, 0.0D, 0.0D, 0.0D); 107 } 108 } 109 }} 110 } 111 else if ((!bool) && 112 (!a(paramfv, paramInt1, paramInt2, paramInt3, false))){ 113 // hMod: Allow redstone torches to provide power 114 int current = (Integer) etc.getLoader().callHook(PluginLoader.Hook.REDSTONE_CHANGE, new Object[]{new Block(this.bh, paramInt1, paramInt2, paramInt3), 0, 1}); 115 if (current > 0) { 116 paramfv.b(paramInt1, paramInt2, paramInt3, hr.aQ.bi, paramfv.b(paramInt1, paramInt2, paramInt3));} 117 }} 118 119 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3, int paramInt4) 120 { 121 super.b(paramfv, paramInt1, paramInt2, paramInt3, paramInt4); 122 paramfv.i(paramInt1, paramInt2, paramInt3, bi); 123 } 124 125 public boolean d(fv paramfv, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 126 if (paramInt4 == 0) { 127 // hMod: forced downcast! 128 return b((la)paramfv, paramInt1, paramInt2, paramInt3, paramInt4); 129 } 130 return false; 131 } 132 133 public int a(int paramInt, Random paramRandom) { 134 return hr.aQ.bi; 135 } 136 137 public boolean c() { 138 return true; 139 } 140 }