public class OTileEntityMobSpawner extends OTileEntity { public int a = -1; // hMod: make public to allow reading public String h; public double b; public double c = 0.0D; public OTileEntityMobSpawner() { h = "Pig"; a = 20; } public void a(String paramString) { h = paramString; } public boolean a() { return d.a(e + 0.5D, f + 0.5D, g + 0.5D, 16.0D) != null; } @Override public void i_() { c = b; if (!a()) return; double d1 = e + d.k.nextFloat(); double d2 = f + d.k.nextFloat(); double d3 = g + d.k.nextFloat(); d.a("smoke", d1, d2, d3, 0.0D, 0.0D, 0.0D); d.a("flame", d1, d2, d3, 0.0D, 0.0D, 0.0D); b += 1000.0F / (a + 200.0F); while (b > 360.0D) { b -= 360.0D; c -= 360.0D; } if (a == -1) c(); if (a > 0) { a -= 1; return; } int i = 4; for (int j = 0; j < i; j++) { OEntityLiving localOEntityLiving = (OEntityLiving) OEntityList.a(h, d); if (localOEntityLiving == null) return; int k = d.a(localOEntityLiving.getClass(), OAxisAlignedBB.b(e, f, g, e + 1, f + 1, g + 1).b(8.0D, 4.0D, 8.0D)).size(); if (k >= 6) { c(); return; } if (localOEntityLiving != null) { double d4 = e + (d.k.nextDouble() - d.k.nextDouble()) * 4.0D; double d5 = f + d.k.nextInt(3) - 1; double d6 = g + (d.k.nextDouble() - d.k.nextDouble()) * 4.0D; localOEntityLiving.c(d4, d5, d6, d.k.nextFloat() * 360.0F, 0.0F); if (localOEntityLiving.b()) { ((OWorldServer) d).a(localOEntityLiving); for (int m = 0; m < 20; m++) { d1 = e + 0.5D + (d.k.nextFloat() - 0.5D) * 2.0D; d2 = f + 0.5D + (d.k.nextFloat() - 0.5D) * 2.0D; d3 = g + 0.5D + (d.k.nextFloat() - 0.5D) * 2.0D; d.a("smoke", d1, d2, d3, 0.0D, 0.0D, 0.0D); d.a("flame", d1, d2, d3, 0.0D, 0.0D, 0.0D); } localOEntityLiving.M(); c(); } } } super.i_(); } private void c() { a = (200 + d.k.nextInt(600)); } @Override public void a(ONBTTagCompound paramONBTTagCompound) { super.a(paramONBTTagCompound); h = paramONBTTagCompound.i("EntityId"); a = paramONBTTagCompound.d("Delay"); } @Override public void b(ONBTTagCompound paramONBTTagCompound) { super.b(paramONBTTagCompound); paramONBTTagCompound.a("EntityId", h); paramONBTTagCompound.a("Delay", (short) a); } }