import java.util.List;
import java.util.Random;
public class OBlockPressurePlate extends OBlock {
private OEnumMobType a;
protected OBlockPressurePlate(int paramInt1, int paramInt2, OEnumMobType paramOEnumMobType) {
super(paramInt1, paramInt2, OMaterial.d);
a = paramOEnumMobType;
a(true);
float f = 0.0625F;
a(f, 0.0F, f, 1.0F - f, 0.03125F, 1.0F - f);
}
@Override
public int b() {
return 20;
}
@Override
public OAxisAlignedBB d(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) {
return null;
}
@Override
public boolean a() {
return false;
}
@Override
public boolean a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) {
return paramOWorld.d(paramInt1, paramInt2 - 1, paramInt3);
}
@Override
public void e(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) {
}
@Override
public void a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, int paramInt4) {
int i = 0;
if (!paramOWorld.d(paramInt1, paramInt2 - 1, paramInt3))
i = 1;
if (i != 0) {
a_(paramOWorld, paramInt1, paramInt2, paramInt3, paramOWorld.b(paramInt1, paramInt2, paramInt3));
paramOWorld.e(paramInt1, paramInt2, paramInt3, 0);
}
}
@Override
public void a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, Random paramRandom) {
if (paramOWorld.t)
return;
if (paramOWorld.b(paramInt1, paramInt2, paramInt3) == 0)
return;
g(paramOWorld, paramInt1, paramInt2, paramInt3);
}
@Override
public void a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, OEntity paramOEntity) {
if (paramOWorld.t)
return;
if (paramOWorld.b(paramInt1, paramInt2, paramInt3) == 1)
return;
g(paramOWorld, paramInt1, paramInt2, paramInt3);
}
private void g(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) {
int i = paramOWorld.b(paramInt1, paramInt2, paramInt3) == 1 ? 1 : 0;
int j = 0;
float f = 0.125F;
List localList = null;
if (a == OEnumMobType.a)
localList = paramOWorld.b(null, OAxisAlignedBB.b(paramInt1 + f, paramInt2, paramInt3 + f, paramInt1 + 1 - f, paramInt2 + 0.25D, paramInt3 + 1 - f));
if (a == OEnumMobType.b)
localList = paramOWorld.a(OEntityLiving.class, OAxisAlignedBB.b(paramInt1 + f, paramInt2, paramInt3 + f, paramInt1 + 1 - f, paramInt2 + 0.25D, paramInt3 + 1 - f));
if (a == OEnumMobType.c)
localList = paramOWorld.a(OEntityPlayer.class, OAxisAlignedBB.b(paramInt1 + f, paramInt2, paramInt3 + f, paramInt1 + 1 - f, paramInt2 + 0.25D, paramInt3 + 1 - f));
if (localList.size() > 0)
j = 1;
// hMod: Allow pressure plate interaction to power redstone
if (j != i) {
j = (Integer) etc.getLoader().callHook(PluginLoader.Hook.REDSTONE_CHANGE, new Block(bl, paramInt1, paramInt2, paramInt3), i, j);
if (j > 0)
j = 1;
}
if ((j != 0) && (i == 0)) {
paramOWorld.c(paramInt1, paramInt2, paramInt3, 1);
paramOWorld.h(paramInt1, paramInt2, paramInt3, bl);
paramOWorld.h(paramInt1, paramInt2 - 1, paramInt3, bl);
paramOWorld.b(paramInt1, paramInt2, paramInt3, paramInt1, paramInt2, paramInt3);
paramOWorld.a(paramInt1 + 0.5D, paramInt2 + 0.1D, paramInt3 + 0.5D, "random.click", 0.3F, 0.6F);
}
if ((j == 0) && (i != 0)) {
paramOWorld.c(paramInt1, paramInt2, paramInt3, 0);
paramOWorld.h(paramInt1, paramInt2, paramInt3, bl);
paramOWorld.h(paramInt1, paramInt2 - 1, paramInt3, bl);
paramOWorld.b(paramInt1, paramInt2, paramInt3, paramInt1, paramInt2, paramInt3);
paramOWorld.a(paramInt1 + 0.5D, paramInt2 + 0.1D, paramInt3 + 0.5D, "random.click", 0.3F, 0.5F);
}
if (j != 0)
paramOWorld.c(paramInt1, paramInt2, paramInt3, bl, b());
}
@Override
public void b(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) {
int i = paramOWorld.b(paramInt1, paramInt2, paramInt3);
if (i > 0) {
paramOWorld.h(paramInt1, paramInt2, paramInt3, bl);
paramOWorld.h(paramInt1, paramInt2 - 1, paramInt3, bl);
}
super.b(paramOWorld, paramInt1, paramInt2, paramInt3);
}
@Override
public void a(OIBlockAccess paramOIBlockAccess, int paramInt1, int paramInt2, int paramInt3) {
int i = paramOIBlockAccess.b(paramInt1, paramInt2, paramInt3) == 1 ? 1 : 0;
float f = 0.0625F;
if (i != 0)
a(f, 0.0F, f, 1.0F - f, 0.03125F, 1.0F - f);
else
a(f, 0.0F, f, 1.0F - f, 0.0625F, 1.0F - f);
}
@Override
public boolean b(OIBlockAccess paramOIBlockAccess, int paramInt1, int paramInt2, int paramInt3, int paramInt4) {
return paramOIBlockAccess.b(paramInt1, paramInt2, paramInt3) > 0;
}
@Override
public boolean c(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, int paramInt4) {
if (paramOWorld.b(paramInt1, paramInt2, paramInt3) == 0)
return false;
return paramInt4 == 1;
}
@Override
public boolean c() {
return true;
}
}