001 002 import java.util.Random; 003 004 public class lc extends hr { 005 006 protected lc(int paramInt1, int paramInt2) { 007 super(paramInt1, paramInt2, mh.n); 008 } 009 010 public fa d(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 011 return null; 012 } 013 014 public boolean a() { 015 return false; 016 } 017 018 public boolean a(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 019 if (paramfv.d(paramInt1 - 1, paramInt2, paramInt3)) { 020 return true; 021 } 022 if (paramfv.d(paramInt1 + 1, paramInt2, paramInt3)) { 023 return true; 024 } 025 if (paramfv.d(paramInt1, paramInt2, paramInt3 - 1)) { 026 return true; 027 } 028 if (paramfv.d(paramInt1, paramInt2, paramInt3 + 1)) { 029 return true; 030 } 031 return paramfv.d(paramInt1, paramInt2 - 1, paramInt3); 032 } 033 034 public void c(fv paramfv, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 035 int i = paramfv.b(paramInt1, paramInt2, paramInt3); 036 037 int j = i & 0x8; 038 i &= 7; 039 040 if ((paramInt4 == 1) && (paramfv.d(paramInt1, paramInt2 - 1, paramInt3))) { 041 i = 5 + paramfv.l.nextInt(2); 042 } 043 if ((paramInt4 == 2) && (paramfv.d(paramInt1, paramInt2, paramInt3 + 1))) { 044 i = 4; 045 } 046 if ((paramInt4 == 3) && (paramfv.d(paramInt1, paramInt2, paramInt3 - 1))) { 047 i = 3; 048 } 049 if ((paramInt4 == 4) && (paramfv.d(paramInt1 + 1, paramInt2, paramInt3))) { 050 i = 2; 051 } 052 if ((paramInt4 == 5) && (paramfv.d(paramInt1 - 1, paramInt2, paramInt3))) { 053 i = 1; 054 } 055 056 paramfv.c(paramInt1, paramInt2, paramInt3, i + j); 057 } 058 059 public void e(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 060 if (paramfv.d(paramInt1 - 1, paramInt2, paramInt3)) { 061 paramfv.c(paramInt1, paramInt2, paramInt3, 1); 062 } else if (paramfv.d(paramInt1 + 1, paramInt2, paramInt3)) { 063 paramfv.c(paramInt1, paramInt2, paramInt3, 2); 064 } else if (paramfv.d(paramInt1, paramInt2, paramInt3 - 1)) { 065 paramfv.c(paramInt1, paramInt2, paramInt3, 3); 066 } else if (paramfv.d(paramInt1, paramInt2, paramInt3 + 1)) { 067 paramfv.c(paramInt1, paramInt2, paramInt3, 4); 068 } else if (paramfv.d(paramInt1, paramInt2 - 1, paramInt3)) { 069 paramfv.c(paramInt1, paramInt2, paramInt3, 5 + paramfv.l.nextInt(2)); 070 } 071 g(paramfv, paramInt1, paramInt2, paramInt3); 072 } 073 074 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 075 if (g(paramfv, paramInt1, paramInt2, paramInt3)) { 076 int i = paramfv.b(paramInt1, paramInt2, paramInt3) & 0x7; 077 int j = 0; 078 079 if ((!paramfv.d(paramInt1 - 1, paramInt2, paramInt3)) && (i == 1)) { 080 j = 1; 081 } 082 if ((!paramfv.d(paramInt1 + 1, paramInt2, paramInt3)) && (i == 2)) { 083 j = 1; 084 } 085 if ((!paramfv.d(paramInt1, paramInt2, paramInt3 - 1)) && (i == 3)) { 086 j = 1; 087 } 088 if ((!paramfv.d(paramInt1, paramInt2, paramInt3 + 1)) && (i == 4)) { 089 j = 1; 090 } 091 if ((!paramfv.d(paramInt1, paramInt2 - 1, paramInt3)) && (i == 5)) { 092 j = 1; 093 } 094 095 if (j != 0) { 096 a_(paramfv, paramInt1, paramInt2, paramInt3, paramfv.b(paramInt1, paramInt2, paramInt3)); 097 paramfv.e(paramInt1, paramInt2, paramInt3, 0); 098 } 099 } 100 } 101 102 private boolean g(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 103 if (!a(paramfv, paramInt1, paramInt2, paramInt3)) { 104 a_(paramfv, paramInt1, paramInt2, paramInt3, paramfv.b(paramInt1, paramInt2, paramInt3)); 105 paramfv.e(paramInt1, paramInt2, paramInt3, 0); 106 return false; 107 } 108 return true; 109 } 110 111 public void a(la paramla, int paramInt1, int paramInt2, int paramInt3) { 112 int i = paramla.b(paramInt1, paramInt2, paramInt3) & 0x7; 113 float f = 0.1875F; 114 if (i == 1) { 115 a(0.0F, 0.2F, 0.5F - f, f * 2.0F, 0.8F, 0.5F + f); 116 } else if (i == 2) { 117 a(1.0F - f * 2.0F, 0.2F, 0.5F - f, 1.0F, 0.8F, 0.5F + f); 118 } else if (i == 3) { 119 a(0.5F - f, 0.2F, 0.0F, 0.5F + f, 0.8F, f * 2.0F); 120 } else if (i == 4) { 121 a(0.5F - f, 0.2F, 1.0F - f * 2.0F, 0.5F + f, 0.8F, 1.0F); 122 } else { 123 f = 0.25F; 124 a(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.6F, 0.5F + f); 125 } 126 } 127 128 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3, hl paramhl) { 129 a(paramfv, paramInt1, paramInt2, paramInt3, paramhl); 130 } 131 132 public boolean a(fv paramfv, int paramInt1, int paramInt2, int paramInt3, hl paramhl) { 133 if (paramfv.z) { 134 return true; 135 } 136 int i = paramfv.b(paramInt1, paramInt2, paramInt3); 137 int j = i & 0x7; 138 int k = 8 - (i & 0x8); 139 140 // hMod: Allow the lever to change the current 141 int old = (k != 8) ? 1 : 0; 142 int current = (k == 8) ? 1 : 0; 143 current = (Integer) etc.getLoader().callHook(PluginLoader.Hook.REDSTONE_CHANGE, new Block(this.bh, paramInt1, paramInt2, paramInt3), old, current); 144 145 if ((current > 0) == (k == 8)) { 146 paramfv.c(paramInt1, paramInt2, paramInt3, j + k); 147 paramfv.b(paramInt1, paramInt2, paramInt3, paramInt1, paramInt2, paramInt3); 148 149 paramfv.a(paramInt1 + 0.5D, paramInt2 + 0.5D, paramInt3 + 0.5D, "random.click", 0.3F, k > 0 ? 0.6F : 0.5F); 150 151 paramfv.h(paramInt1, paramInt2, paramInt3, bi); 152 if (j == 1) { 153 paramfv.h(paramInt1 - 1, paramInt2, paramInt3, bi); 154 } else if (j == 2) { 155 paramfv.h(paramInt1 + 1, paramInt2, paramInt3, bi); 156 } else if (j == 3) { 157 paramfv.h(paramInt1, paramInt2, paramInt3 - 1, bi); 158 } else if (j == 4) { 159 paramfv.h(paramInt1, paramInt2, paramInt3 + 1, bi); 160 } else { 161 paramfv.h(paramInt1, paramInt2 - 1, paramInt3, bi); 162 } 163 } 164 return true; 165 } 166 167 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 168 int i = paramfv.b(paramInt1, paramInt2, paramInt3); 169 if ((i & 0x8) > 0) { 170 paramfv.h(paramInt1, paramInt2, paramInt3, bi); 171 int j = i & 0x7; 172 if (j == 1) { 173 paramfv.h(paramInt1 - 1, paramInt2, paramInt3, bi); 174 } else if (j == 2) { 175 paramfv.h(paramInt1 + 1, paramInt2, paramInt3, bi); 176 } else if (j == 3) { 177 paramfv.h(paramInt1, paramInt2, paramInt3 - 1, bi); 178 } else if (j == 4) { 179 paramfv.h(paramInt1, paramInt2, paramInt3 + 1, bi); 180 } else { 181 paramfv.h(paramInt1, paramInt2 - 1, paramInt3, bi); 182 } 183 } 184 super.b(paramfv, paramInt1, paramInt2, paramInt3); 185 } 186 187 public boolean b(la paramla, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 188 return (paramla.b(paramInt1, paramInt2, paramInt3) & 0x8) > 0; 189 } 190 191 public boolean d(fv paramfv, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 192 int i = paramfv.b(paramInt1, paramInt2, paramInt3); 193 if ((i & 0x8) == 0) { 194 return false; 195 } 196 int j = i & 0x7; 197 198 if ((j == 5) && (paramInt4 == 1)) { 199 return true; 200 } 201 if ((j == 4) && (paramInt4 == 2)) { 202 return true; 203 } 204 if ((j == 3) && (paramInt4 == 3)) { 205 return true; 206 } 207 if ((j == 2) && (paramInt4 == 4)) { 208 return true; 209 } 210 return (j == 1) && (paramInt4 == 5); 211 } 212 213 public boolean c() { 214 return true; 215 } 216 }