Ejemplo n.º 1
0
  private void addNewDoorsToVillageOrCreateVillage() {
    int i = 0;

    while (i < this.newDoors.size()) {
      VillageDoorInfo villagedoorinfo = (VillageDoorInfo) this.newDoors.get(i);
      boolean flag = false;
      Iterator iterator = this.villageList.iterator();

      while (true) {
        if (iterator.hasNext()) {
          Village village = (Village) iterator.next();
          int j =
              (int)
                  village
                      .getCenter()
                      .getDistanceSquared(
                          villagedoorinfo.posX, villagedoorinfo.posY, villagedoorinfo.posZ);
          int k = 32 + village.getVillageRadius();

          if (j > k * k) {
            continue;
          }

          village.addVillageDoorInfo(villagedoorinfo);
          flag = true;
        }

        if (!flag) {
          Village village1 = new Village(this.worldObj);
          village1.addVillageDoorInfo(villagedoorinfo);
          this.villageList.add(village1);
          this.markDirty();
        }

        ++i;
        break;
      }
    }

    this.newDoors.clear();
  }
Ejemplo n.º 2
0
  /**
   * Finds the nearest village, but only the given coordinates are withing it's bounding box plus
   * the given the distance.
   */
  public Village findNearestVillage(int par1, int par2, int par3, int par4) {
    Village village = null;
    float f = Float.MAX_VALUE;
    Iterator iterator = this.villageList.iterator();

    while (iterator.hasNext()) {
      Village village1 = (Village) iterator.next();
      float f1 = village1.getCenter().getDistanceSquared(par1, par2, par3);

      if (f1 < f) {
        int i1 = par4 + village1.getVillageRadius();

        if (f1 <= (float) (i1 * i1)) {
          village = village1;
          f = f1;
        }
      }
    }

    return village;
  }