001 002 import java.util.Random; 003 004 public class bp extends aa { 005 006 private int c; 007 int[] b; 008 009 protected bp(int paramInt1, int paramInt2) { 010 super(paramInt1, paramInt2, mh.h, false); 011 c = paramInt2; 012 a(true); 013 } 014 015 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 016 int i = 1; 017 int j = i + 1; 018 019 if (paramfv.a(paramInt1 - j, paramInt2 - j, paramInt3 - j, paramInt1 + j, paramInt2 + j, paramInt3 + j)) { 020 for (int k = -i; k <= i; k++) { 021 for (int m = -i; m <= i; m++) { 022 for (int n = -i; n <= i; n++) { 023 int i1 = paramfv.a(paramInt1 + k, paramInt2 + m, paramInt3 + n); 024 if (i1 == hr.K.bi) { 025 int i2 = paramfv.b(paramInt1 + k, paramInt2 + m, paramInt3 + n); 026 paramfv.d(paramInt1 + k, paramInt2 + m, paramInt3 + n, i2 | 0x4); 027 } 028 } 029 } 030 } 031 } 032 } 033 034 public void a(fv paramfv, int paramInt1, int paramInt2, int paramInt3, Random paramRandom) { 035 if (paramfv.z) { 036 return; 037 } 038 039 int i = paramfv.b(paramInt1, paramInt2, paramInt3); 040 if ((i & 0x4) != 0) { 041 int j = 4; 042 int k = j + 1; 043 044 int m = 32; 045 int n = m * m; 046 int i1 = m / 2; 047 if (b == null) { 048 b = new int[m * m * m]; 049 } 050 051 if (paramfv.a(paramInt1 - k, paramInt2 - k, paramInt3 - k, paramInt1 + k, paramInt2 + k, paramInt3 + k)) { 052 int i2; 053 int i3; 054 int i4; 055 int i5; 056 for (i2 = -j; i2 <= j; i2++) { 057 for (i3 = -j; i3 <= j; i3++) { 058 for (i4 = -j; i4 <= j; i4++) { 059 i5 = paramfv.a(paramInt1 + i2, paramInt2 + i3, paramInt3 + i4); 060 if (i5 == hr.J.bi) { 061 b[((i2 + i1) * n + (i3 + i1) * m + (i4 + i1))] = 0; 062 } else if (i5 == hr.K.bi) { 063 b[((i2 + i1) * n + (i3 + i1) * m + (i4 + i1))] = -2; 064 } else { 065 b[((i2 + i1) * n + (i3 + i1) * m + (i4 + i1))] = -1; 066 } 067 } 068 } 069 } 070 for (i2 = 1; i2 <= 4; i2++) { 071 for (i3 = -j; i3 <= j; i3++) { 072 for (i4 = -j; i4 <= j; i4++) { 073 for (i5 = -j; i5 <= j; i5++) { 074 if (b[((i3 + i1) * n + (i4 + i1) * m + (i5 + i1))] == i2 - 1) { 075 if (b[((i3 + i1 - 1) * n + (i4 + i1) * m + (i5 + i1))] == -2) { 076 b[((i3 + i1 - 1) * n + (i4 + i1) * m + (i5 + i1))] = i2; 077 } 078 if (b[((i3 + i1 + 1) * n + (i4 + i1) * m + (i5 + i1))] == -2) { 079 b[((i3 + i1 + 1) * n + (i4 + i1) * m + (i5 + i1))] = i2; 080 } 081 if (b[((i3 + i1) * n + (i4 + i1 - 1) * m + (i5 + i1))] == -2) { 082 b[((i3 + i1) * n + (i4 + i1 - 1) * m + (i5 + i1))] = i2; 083 } 084 if (b[((i3 + i1) * n + (i4 + i1 + 1) * m + (i5 + i1))] == -2) { 085 b[((i3 + i1) * n + (i4 + i1 + 1) * m + (i5 + i1))] = i2; 086 } 087 if (b[((i3 + i1) * n + (i4 + i1) * m + (i5 + i1 - 1))] == -2) { 088 b[((i3 + i1) * n + (i4 + i1) * m + (i5 + i1 - 1))] = i2; 089 } 090 if (b[((i3 + i1) * n + (i4 + i1) * m + (i5 + i1 + 1))] == -2) { 091 b[((i3 + i1) * n + (i4 + i1) * m + (i5 + i1 + 1))] = i2; 092 } 093 } 094 } 095 } 096 } 097 } 098 } 099 int i2 = b[(i1 * n + i1 * m + i1)]; 100 if (i2 >= 0) { 101 paramfv.c(paramInt1, paramInt2, paramInt3, i & 0xFFFFFFFB); 102 } else { 103 g(paramfv, paramInt1, paramInt2, paramInt3); 104 } 105 } 106 } 107 108 private void g(fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 109 //hMod: stop leaves from decaying 110 Block block = new Block(paramfv.a(paramInt1, paramInt2, paramInt3), paramInt1, paramInt2, paramInt3); 111 if (!(Boolean) etc.getLoader().callHook(PluginLoader.Hook.LEAF_DECAY, block)) { 112 a_(paramfv, paramInt1, paramInt2, paramInt3, paramfv.b(paramInt1, paramInt2, paramInt3)); 113 paramfv.e(paramInt1, paramInt2, paramInt3, 0); 114 } 115 } 116 117 public int a(Random paramRandom) { 118 return paramRandom.nextInt(16) == 0 ? 1 : 0; 119 } 120 121 public int a(int paramInt, Random paramRandom) { 122 return hr.y.bi; 123 } 124 125 public boolean a() { 126 return !a; 127 } 128 129 public void b(fv paramfv, int paramInt1, int paramInt2, int paramInt3, fe paramfe) { 130 super.b(paramfv, paramInt1, paramInt2, paramInt3, paramfe); 131 } 132 }