import java.util.Random; public class OBlockCactus extends OBlock { protected OBlockCactus(int paramInt1, int paramInt2) { super(paramInt1, paramInt2, OMaterial.u); a(true); } @Override public void a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, Random paramRandom) { if (paramOWorld.e(paramInt1, paramInt2 + 1, paramInt3)) { int i = 1; while (paramOWorld.a(paramInt1, paramInt2 - i, paramInt3) == bl) i++; if (i < 3) { int j = paramOWorld.b(paramInt1, paramInt2, paramInt3); if (j == 15) { paramOWorld.e(paramInt1, paramInt2 + 1, paramInt3, bl); paramOWorld.c(paramInt1, paramInt2, paramInt3, 0); } else paramOWorld.c(paramInt1, paramInt2, paramInt3, j + 1); } } } @Override public OAxisAlignedBB d(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) { float f = 0.0625F; return OAxisAlignedBB.b(paramInt1 + f, paramInt2, paramInt3 + f, paramInt1 + 1 - f, paramInt2 + 1 - f, paramInt3 + 1 - f); } @Override public int a(int paramInt) { if (paramInt == 1) return bk - 1; if (paramInt == 0) return bk + 1; return bk; } @Override public boolean a() { return false; } @Override public boolean a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) { if (!super.a(paramOWorld, paramInt1, paramInt2, paramInt3)) return false; return f(paramOWorld, paramInt1, paramInt2, paramInt3); } @Override public void a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, int paramInt4) { if (!f(paramOWorld, paramInt1, paramInt2, paramInt3)) { a_(paramOWorld, paramInt1, paramInt2, paramInt3, paramOWorld.b(paramInt1, paramInt2, paramInt3)); paramOWorld.e(paramInt1, paramInt2, paramInt3, 0); } } @Override public boolean f(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3) { if (paramOWorld.c(paramInt1 - 1, paramInt2, paramInt3).a()) return false; if (paramOWorld.c(paramInt1 + 1, paramInt2, paramInt3).a()) return false; if (paramOWorld.c(paramInt1, paramInt2, paramInt3 - 1).a()) return false; if (paramOWorld.c(paramInt1, paramInt2, paramInt3 + 1).a()) return false; int i = paramOWorld.a(paramInt1, paramInt2 - 1, paramInt3); return (i == OBlock.aV.bl) || (i == OBlock.E.bl); } @Override public void a(OWorld paramOWorld, int paramInt1, int paramInt2, int paramInt3, OEntity paramOEntity) { // hMod Damage hook: Cactus if (paramOEntity instanceof OEntityLiving && (Boolean) etc.getLoader().callHook(PluginLoader.Hook.DAMAGE, PluginLoader.DamageType.CACTUS, null, new LivingEntity((OEntityLiving) paramOEntity), 1)) return; paramOEntity.a((OEntity) null, 1); } }