/** Transfers an entity from a world to another world. */
  public void transferEntityToWorld(
      Entity par1Entity, int par2, WorldServer par3WorldServer, WorldServer par4WorldServer) {
    double var5 = par1Entity.posX;
    double var7 = par1Entity.posZ;
    double var9 = 8.0D;
    double var11 = par1Entity.posX;
    double var13 = par1Entity.posY;
    double var15 = par1Entity.posZ;
    float var17 = par1Entity.rotationYaw;
    par3WorldServer.theProfiler.startSection("moving");

    if (par1Entity.dimension == -1) {
      var5 /= var9;
      var7 /= var9;
      par1Entity.setLocationAndAngles(
          var5, par1Entity.posY, var7, par1Entity.rotationYaw, par1Entity.rotationPitch);

      if (par1Entity.isEntityAlive()) {
        par3WorldServer.updateEntityWithOptionalForce(par1Entity, false);
      }
    } else if (par1Entity.dimension == 0) {
      var5 *= var9;
      var7 *= var9;
      par1Entity.setLocationAndAngles(
          var5, par1Entity.posY, var7, par1Entity.rotationYaw, par1Entity.rotationPitch);

      if (par1Entity.isEntityAlive()) {
        par3WorldServer.updateEntityWithOptionalForce(par1Entity, false);
      }
    } else {
      ChunkCoordinates var18;

      if (par2 == 1) {
        var18 = par4WorldServer.getSpawnPoint();
      } else {
        var18 = par4WorldServer.getEntrancePortalLocation();
      }

      var5 = (double) var18.posX;
      par1Entity.posY = (double) var18.posY;
      var7 = (double) var18.posZ;
      par1Entity.setLocationAndAngles(var5, par1Entity.posY, var7, 90.0F, 0.0F);

      if (par1Entity.isEntityAlive()) {
        par3WorldServer.updateEntityWithOptionalForce(par1Entity, false);
      }
    }

    par3WorldServer.theProfiler.endSection();

    if (par2 != 1) {
      par3WorldServer.theProfiler.startSection("placing");
      var5 = (double) MathHelper.clamp_int((int) var5, -29999872, 29999872);
      var7 = (double) MathHelper.clamp_int((int) var7, -29999872, 29999872);

      if (par1Entity.isEntityAlive()) {
        par4WorldServer.spawnEntityInWorld(par1Entity);
        par1Entity.setLocationAndAngles(
            var5, par1Entity.posY, var7, par1Entity.rotationYaw, par1Entity.rotationPitch);
        par4WorldServer.updateEntityWithOptionalForce(par1Entity, false);
        par4WorldServer.func_85176_s().placeInPortal(par1Entity, var11, var13, var15, var17);
      }

      par3WorldServer.theProfiler.endSection();
    }

    par1Entity.setWorld(par4WorldServer);
  }