Ejemplo n.º 1
0
  /**
   * merge real fire zones
   *
   * @param targets
   * @param mergeList
   */
  private void mergeRealFireZones(
      Pair<ArrayList<SOSRealFireZone>, SOSEstimatedFireZone> target,
      ArrayList<SOSAbstractFireZone> mergeList) {
    if (target == null) return;
    ArrayList<SOSRealFireZone> realZones = target.first();

    getFireSites().remove(target);

    SOSRealFireZone newRealFireSite = new SOSRealFireZone(lastAssignedIndex++, this);
    SOSRealFireZone real;

    for (SOSAbstractFireZone fz : mergeList) {
      real = (SOSRealFireZone) fz;
      realZones.remove(real);
      for (Building b : real.getAllBuildings()) {
        if (!b.getSOSRealFireSite().equals(newRealFireSite)) {
          b.setSOSRealFireSite(newRealFireSite);
          newRealFireSite.addFieryBuilding(b);
          newRealFireSite.updateXY(b, 1);
        }
      }
      real.update(model.time());
    }

    realZones.add(newRealFireSite);
    getFireSites()
        .add(
            new Pair<ArrayList<SOSRealFireZone>, SOSEstimatedFireZone>(realZones, target.second()));
  }