@Override
  public void aktion(Gamepanel gp) {
    gamepanel = gp;
    durchgangzaehler++;
    if (durchgangzaehler % 20 == 0) {
      if (aniZaehler < 7) {

        aniZaehler++;
      } else {
        if (arbeiter == noetigeArbeiter) hasLager.add(Waren.WASSER, 50);
        aniZaehler = 1;
      }

      if (durchgangzaehler > 500) {

        if (arbeiter < noetigeArbeiter) {
          if (gp.getEinwohner().unterschichtArbeitslos() >= noetigeArbeiter) {
            Feld w =
                new Strecke(gp.getMap())
                    .getNaechstesFeldMitEigenschaft(getFeld(), Eigenschaften.WOHNHAUS);
            if (w != null) {
              arbeiter += noetigeArbeiter - arbeiter;
              hasArbeiter = new Mensch(Berufe.BRUNNENMEISTER, w, gp.getKreaturenliste(), this);
              hasArbeiter.setzeZiel(this.getFeld(), gp.getMap());
            }
          }
        }
        durchgangzaehler = 0;
      }
    }
  }
 @Override
 public void arbeiterFertig(Mensch m) {
   if (m.equals(hasArbeiter) && hasBesteller == null) {
     hasArbeiter = null;
     m.despawn();
   } else if (m.equals(hasArbeiter) && gamepanel != null) {
     m.setzeZiel(getFeld(), gamepanel.getMap());
     hasBesteller.bestellungAngekommen(this);
     hasBesteller = null;
   } else m.despawn();
 }
  public boolean order(Bauwerk bw) {
    if (gamepanel == null) return false;

    if (arbeiter < noetigeArbeiter || hasBesteller != null || hasArbeiter != null) return false;

    hasBesteller = bw;

    hasArbeiter =
        new Mensch(Berufe.BRUNNENMEISTER, this.getFeld(), gamepanel.getKreaturenliste(), this);

    hasArbeiter.setzeZiel(hasBesteller.getFeld(), gamepanel.getMap());

    return true;
  }