001 002 import java.util.ArrayList; 003 import java.util.List; 004 import net.minecraft.server.MinecraftServer; 005 006 public class kj { 007 // hMod: generificy 008 009 private List<fy> a = new ArrayList<fy>(); 010 private gm b = new gm(); 011 private List<at> c = new ArrayList<at>(); 012 private MinecraftServer d; 013 014 public kj(MinecraftServer paramMinecraftServer) { 015 d = paramMinecraftServer; 016 } 017 018 public void a() { 019 for (int i = 0; i < c.size(); i++) { 020 // hMod: remove unnecessary cast 021 c.get(i).a(); 022 } 023 c.clear(); 024 } 025 026 private at a(int paramInt1, int paramInt2, boolean paramBoolean) { 027 long l = paramInt1 + 2147483647L | paramInt2 + 2147483647L << 32; 028 at localat = (at) b.a(l); 029 if ((localat == null) && (paramBoolean)) { 030 localat = new at(this, paramInt1, paramInt2); 031 b.a(l, localat); 032 } 033 return localat; 034 } 035 036 public void a(int paramInt1, int paramInt2, int paramInt3) { 037 int i = paramInt1 >> 4; 038 int j = paramInt3 >> 4; 039 at localat = a(i, j, false); 040 if (localat != null) { 041 localat.a(paramInt1 & 0xF, paramInt2, paramInt3 & 0xF); 042 } 043 } 044 045 public void a(fy paramfy) { 046 int i = (int) paramfy.p >> 4; 047 int j = (int) paramfy.r >> 4; 048 049 paramfy.d = paramfy.p; 050 paramfy.e = paramfy.r; 051 052 for (int k = i - 10; k <= i + 10; k++) { 053 for (int m = j - 10; m <= j + 10; m++) { 054 a(k, m, true).a(paramfy); 055 } 056 } 057 a.add(paramfy); 058 } 059 060 public void b(fy paramfy) { 061 int i = (int) paramfy.d >> 4; 062 int j = (int) paramfy.e >> 4; 063 064 for (int k = i - 10; k <= i + 10; k++) { 065 for (int m = j - 10; m <= j + 10; m++) { 066 at localat = a(k, m, false); 067 if (localat == null) { 068 continue; 069 } 070 localat.b(paramfy); 071 } 072 } 073 a.remove(paramfy); 074 } 075 076 private boolean a(int paramInt1, int paramInt2, int paramInt3, int paramInt4) { 077 int i = paramInt1 - paramInt3; 078 int j = paramInt2 - paramInt4; 079 if ((i < -10) || (i > 10)) { 080 return false; 081 } 082 return (j >= -10) && (j <= 10); 083 } 084 085 public void c(fy paramfy) { 086 int i = (int) paramfy.p >> 4; 087 int j = (int) paramfy.r >> 4; 088 089 double d1 = paramfy.d - paramfy.p; 090 double d2 = paramfy.e - paramfy.r; 091 double d3 = d1 * d1 + d2 * d2; 092 if (d3 < 64.0D) { 093 return; 094 } 095 096 int k = (int) paramfy.d >> 4; 097 int m = (int) paramfy.e >> 4; 098 099 int n = i - k; 100 int i1 = j - m; 101 if ((n == 0) && (i1 == 0)) { 102 return; 103 } 104 105 for (int i2 = i - 10; i2 <= i + 10; i2++) { 106 for (int i3 = j - 10; i3 <= j + 10; i3++) { 107 if (!a(i2, i3, k, m)) { 108 a(i2, i3, true).a(paramfy); 109 } 110 if (!a(i2 - n, i3 - i1, i, j)) { 111 at localat = a(i2 - n, i3 - i1, false); 112 if (localat == null) { 113 continue; 114 } 115 localat.b(paramfy); 116 } 117 } 118 } 119 paramfy.d = paramfy.p; 120 paramfy.e = paramfy.r; 121 } 122 123 public int b() { 124 return 144; 125 } 126 127 static MinecraftServer a(kj jh1) { 128 return jh1.d; 129 } 130 131 static gm b(kj jh1) { 132 return jh1.b; 133 } 134 135 static List c(kj jh1) { 136 return jh1.c; 137 } 138 // hMod: bring back old "send packet to chunk" method from alpha 139 140 public void sendPacketToChunk(jv packetToSend, int globalx, int globaly, int globalz) { 141 // Get chunk coordinates 142 int chunkx = globalx >> 4; 143 int chunkz = globalz >> 4; 144 // Get the chunk 145 at localat = a(chunkx, chunkz, false); 146 // if chunk != null, send packet 147 if (localat != null) { 148 localat.a(packetToSend); 149 } 150 } 151 // end hMod 152 }