protected void updateEntityActionState() {
    super.updateEntityActionState();

    if (!this.worldObj.isRemote) {
      int i;
      int j;
      int k;
      int i1;

      if (this.allySummonCooldown > 0) {
        --this.allySummonCooldown;

        if (this.allySummonCooldown == 0) {
          i = MathHelper.floor_double(this.posX);
          j = MathHelper.floor_double(this.posY);
          k = MathHelper.floor_double(this.posZ);
          boolean flag = false;

          for (int l = 0; !flag && l <= 5 && l >= -5; l = l <= 0 ? 1 - l : 0 - l) {
            for (i1 = 0; !flag && i1 <= 10 && i1 >= -10; i1 = i1 <= 0 ? 1 - i1 : 0 - i1) {
              for (int j1 = 0; !flag && j1 <= 10 && j1 >= -10; j1 = j1 <= 0 ? 1 - j1 : 0 - j1) {
                if (this.worldObj.getBlock(i + i1, j + l, k + j1) == Blocks.monster_egg) {
                  if (!this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing")) {
                    int k1 = this.worldObj.getBlockMetadata(i + i1, j + l, k + j1);
                    ImmutablePair immutablepair = BlockSilverfish.func_150197_b(k1);
                    this.worldObj.setBlock(
                        i + i1,
                        j + l,
                        k + j1,
                        (Block) immutablepair.getLeft(),
                        ((Integer) immutablepair.getRight()).intValue(),
                        3);
                  } else {
                    this.worldObj.func_147480_a(i + i1, j + l, k + j1, false);
                  }

                  Blocks.monster_egg.onBlockDestroyedByPlayer(
                      this.worldObj, i + i1, j + l, k + j1, 0);

                  if (this.rand.nextBoolean()) {
                    flag = true;
                    break;
                  }
                }
              }
            }
          }
        }
      }

      if (this.entityToAttack == null && !this.hasPath()) {
        i = MathHelper.floor_double(this.posX);
        j = MathHelper.floor_double(this.posY + 0.5D);
        k = MathHelper.floor_double(this.posZ);
        int l1 = this.rand.nextInt(6);
        Block block =
            this.worldObj.getBlock(
                i + Facing.offsetsXForSide[l1],
                j + Facing.offsetsYForSide[l1],
                k + Facing.offsetsZForSide[l1]);
        i1 =
            this.worldObj.getBlockMetadata(
                i + Facing.offsetsXForSide[l1],
                j + Facing.offsetsYForSide[l1],
                k + Facing.offsetsZForSide[l1]);

        if (BlockSilverfish.func_150196_a(block)) {
          this.worldObj.setBlock(
              i + Facing.offsetsXForSide[l1],
              j + Facing.offsetsYForSide[l1],
              k + Facing.offsetsZForSide[l1],
              Blocks.monster_egg,
              BlockSilverfish.func_150195_a(block, i1),
              3);
          this.spawnExplosionParticle();
          this.setDead();
        } else {
          this.updateWanderPath();
        }
      } else if (this.entityToAttack != null && !this.hasPath()) {
        this.entityToAttack = null;
      }
    }
  }
Esempio n. 2
0
  protected void updateEntityActionState() {
    super.updateEntityActionState();

    if (!this.worldObj.isRemote) {
      int var1;
      int var2;
      int var3;
      int var5;

      if (this.allySummonCooldown > 0) {
        --this.allySummonCooldown;

        if (this.allySummonCooldown == 0) {
          var1 = MathHelper.floor_double(this.posX);
          var2 = MathHelper.floor_double(this.posY);
          var3 = MathHelper.floor_double(this.posZ);
          boolean var4 = false;

          for (var5 = 0; !var4 && var5 <= 5 && var5 >= -5; var5 = var5 <= 0 ? 1 - var5 : 0 - var5) {
            for (int var6 = 0;
                !var4 && var6 <= 10 && var6 >= -10;
                var6 = var6 <= 0 ? 1 - var6 : 0 - var6) {
              for (int var7 = 0;
                  !var4 && var7 <= 10 && var7 >= -10;
                  var7 = var7 <= 0 ? 1 - var7 : 0 - var7) {
                int var8 = this.worldObj.getBlockId(var1 + var6, var2 + var5, var3 + var7);

                if (var8 == Block.silverfish.blockID) {
                  this.worldObj.playAuxSFX(
                      2001,
                      var1 + var6,
                      var2 + var5,
                      var3 + var7,
                      Block.silverfish.blockID
                          + (this.worldObj.getBlockMetadata(var1 + var6, var2 + var5, var3 + var7)
                              << 12));
                  this.worldObj.setBlockWithNotify(var1 + var6, var2 + var5, var3 + var7, 0);
                  Block.silverfish.onBlockDestroyedByPlayer(
                      this.worldObj, var1 + var6, var2 + var5, var3 + var7, 0);

                  if (this.rand.nextBoolean()) {
                    var4 = true;
                    break;
                  }
                }
              }
            }
          }
        }
      }

      if (this.entityToAttack == null && !this.hasPath()) {
        var1 = MathHelper.floor_double(this.posX);
        var2 = MathHelper.floor_double(this.posY + 0.5D);
        var3 = MathHelper.floor_double(this.posZ);
        int var9 = this.rand.nextInt(6);
        var5 =
            this.worldObj.getBlockId(
                var1 + Facing.offsetsXForSide[var9],
                var2 + Facing.offsetsYForSide[var9],
                var3 + Facing.offsetsZForSide[var9]);

        if (BlockSilverfish.getPosingIdByMetadata(var5)) {
          this.worldObj.setBlockAndMetadataWithNotify(
              var1 + Facing.offsetsXForSide[var9],
              var2 + Facing.offsetsYForSide[var9],
              var3 + Facing.offsetsZForSide[var9],
              Block.silverfish.blockID,
              BlockSilverfish.getMetadataForBlockType(var5));
          this.spawnExplosionParticle();
          this.setDead();
        } else {
          this.updateWanderPath();
        }
      } else if (this.entityToAttack != null && !this.hasPath()) {
        this.entityToAttack = null;
      }
    }
  }