001 002 import java.lang.reflect.Constructor; 003 import java.util.HashSet; 004 import java.util.List; 005 import java.util.Random; 006 import java.util.Set; 007 008 public final class cs { 009 010 private static Set<mr> a = new HashSet<mr>(); 011 012 protected static jq a(fv paramfv, int paramInt1, int paramInt2) { 013 int i = paramInt1 + paramfv.l.nextInt(16); 014 int j = paramfv.l.nextInt(128); 015 int k = paramInt2 + paramfv.l.nextInt(16); 016 017 return new jq(i, j, k); 018 } 019 020 public static final int a(fv paramfv, boolean paramBoolean1, boolean paramBoolean2) { 021 if ((!paramBoolean1) && (!paramBoolean2)) { 022 return 0; 023 } 024 025 a.clear(); 026 Object localObject; 027 int j; 028 int k; 029 for (int i = 0; i < paramfv.d.size(); i++) { 030 localObject = (hl) paramfv.d.get(i); 031 j = iz.b(((hl) localObject).p / 16.0D); 032 k = iz.b(((hl) localObject).r / 16.0D); 033 034 int m = 8; 035 for (int n = -m; n <= m; n++) { 036 for (int i1 = -m; i1 <= m; i1++) { 037 a.add(new mr(n + j, i1 + k)); 038 } 039 } 040 } 041 int i = 0; 042 ma localma; 043 for (j = 0; j < ma.values().length; j++) { 044 localma = ma.values()[j]; 045 if (((localma.d()) && (!paramBoolean2)) || ((!localma.d()) && (!paramBoolean1))) { 046 continue; 047 } 048 if (paramfv.a(localma.a()) > localma.b() * a.size() / 256) { 049 continue; 050 } 051 for (mr localmr : a) { 052 kt localkt = paramfv.a().a(localmr); 053 Class[] arrayOfClass = localkt.a(localma); 054 if ((arrayOfClass == null) || (arrayOfClass.length == 0)) { 055 continue; 056 } 057 int i2 = paramfv.l.nextInt(arrayOfClass.length); 058 059 jq localjq = a(paramfv, localmr.a * 16, localmr.b * 16); 060 int i3 = localjq.a; 061 int i4 = localjq.b; 062 int i5 = localjq.c; 063 064 if ((paramfv.d(i3, i4, i5)) 065 || (paramfv.c(i3, i4, i5) != localma.c())) { 066 continue; 067 } 068 int i6 = 0; 069 070 for (int i7 = 0; i7 < 3; i7++) { 071 int i8 = i3; 072 int i9 = i4; 073 int i10 = i5; 074 int i11 = 6; 075 for (int i12 = 0; i12 < 4; i12++) { 076 i8 += paramfv.l.nextInt(i11) - paramfv.l.nextInt(i11); 077 i9 += paramfv.l.nextInt(1) - paramfv.l.nextInt(1); 078 i10 += paramfv.l.nextInt(i11) - paramfv.l.nextInt(i11); 079 080 if (a(localma, paramfv, i8, i9, i10)) { 081 float f1 = i8 + 0.5F; 082 float f2 = i9; 083 float f3 = i10 + 0.5F; 084 if (paramfv.a(f1, f2, f3, 24.0D) != null) { 085 continue; 086 } 087 float f4 = f1 - paramfv.m; 088 float f5 = f2 - paramfv.n; 089 float f6 = f3 - paramfv.o; 090 float f7 = f4 * f4 + f5 * f5 + f6 * f6; 091 if (f7 < 576.0F) { 092 continue; 093 } 094 mj localmj; 095 try { 096 localmj = (mj) arrayOfClass[i2].getConstructor(new Class[]{fv.class}).newInstance(new Object[]{paramfv}); 097 } catch (Exception localException) { 098 localException.printStackTrace(); 099 return i; 100 } 101 102 localmj.c(f1, f2, f3, paramfv.l.nextFloat() * 360.0F, 0.0F); 103 104 if (localmj.b()) { 105 i6++; 106 paramfv.a(localmj); 107 a(localmj, paramfv, f1, f2, f3); 108 if (i6 >= localmj.j()) { 109 break; 110 } 111 } 112 i += i6; 113 } 114 } 115 } 116 } 117 } 118 return i; 119 } 120 121 private static boolean a(ma paramma, fv paramfv, int paramInt1, int paramInt2, int paramInt3) { 122 if (paramma.c() == mh.f) { 123 return (paramfv.c(paramInt1, paramInt2, paramInt3).d()) && (!paramfv.d(paramInt1, paramInt2 + 1, paramInt3)); 124 } 125 return (paramfv.d(paramInt1, paramInt2 - 1, paramInt3)) && (!paramfv.d(paramInt1, paramInt2, paramInt3)) && (!paramfv.c(paramInt1, paramInt2, paramInt3).d()) && (!paramfv.d(paramInt1, paramInt2 + 1, paramInt3)); 126 } 127 128 private static void a(mj parammj, fv paramfv, float paramFloat1, float paramFloat2, float paramFloat3) { 129 // hMod: allow mobs to spawn! 130 if (!(Boolean) (etc.getLoader().callHook(PluginLoader.Hook.MOB_SPAWN, new Mob(parammj)))) { 131 if (((parammj instanceof cr)) && (paramfv.l.nextInt(100) == 0)) { 132 gj localgj = new gj(paramfv); 133 localgj.c(paramFloat1, paramFloat2, paramFloat3, parammj.v, 0.0F); 134 paramfv.a(localgj); 135 localgj.e(parammj); 136 } else if ((parammj instanceof dv)) { 137 ((dv) parammj).a(dv.a(paramfv.l)); 138 } 139 } 140 } 141 }