4 class Harbor extends BaseConstruction {
5 // Namen des Hafens (z.B. Hamburger Hafen)
6 private $harborName = "Unbekannter Hafen";
8 // Schiffsliste aller gebauten Schiffe
9 private $constructedShips = null;
12 private $berthList = null;
14 // List of all assigned shipyards
15 private $shipyardList = null;
18 private function __construct () {
19 // Eltern-Konstruktor aufrufen
20 parent::constructor(__CLASS__);
23 if (((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) && (defined('DEBUG_CONSTRUCT'))) $this->getDebugInstance()->output("[Harbor:] Konstruktor erreicht.<br />\n");
25 // Beschreibung setzen
26 $this->setPartDescr("Hafen");
29 $this->createUniqueID();
32 $this->removeSystemArray();
33 $this->removePartInstance();
37 public static function createHarbor ($harborName) {
38 // Hafen-Instanz holen
39 $harborInstance = new Harbor();
42 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $harborInstance->getDebugInstance()->output(sprintf("[Harbor:] Der Hafen <strong>%s</strong> wird konstruiert.<br />\n", $harborName));
45 $harborInstance->setHarborName($harborName);
47 // Werftliste initialisieren
48 $harborInstance->createshipyardList();
50 // Debug-Meldung ausgeben
51 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $harborInstance->getDebugInstance()->output(sprintf("[Harbor:] Der Hafen <strong>%s</strong> ist jetzt fertig gebaut.<br />\n", $harborName));
53 // Instanz zurueckliefern
54 return $harborInstance;
57 // Werft-Liste generieren
58 public function createshipyardList () {
59 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Werft-Liste wird für den Hafen <strong>%s</strong> erstellt.<br />\n",
60 $this->getHarborName()
62 $this->shipyardList = new FrameworkArrayObject();
65 // Setter fuer Hafennamen
66 public function setHarborName ($harborName) {
67 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Der Hafen heisst jetzt <strong>%s</strong>.<br />\n", $harborName));
68 $this->harborName = (string) $harborName;
71 // Getter fuer Hafennamen
72 public function getHarborName () {
73 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Hafenname <strong>%s</strong> wurde angefordert.<br />\n", $this->harborName));
74 return $this->harborName;
77 // Werft in den Hafen einbauen und Werft->Reederei zuweisen
78 public function addNewShipyardNotify ($shipyardName, ShippingCompany $companyInstance) {
79 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Die Werft <strong>%s</strong> wird im Hafen <strong>%s</strong> gebaut.<br />\n",
80 $shipyardName, $this->getHarborName()
83 // Werft generieren und in die Werftliste aufnehmen
84 $this->shipyardList->append(Shipyard::createShipyardNotify($this, $shipyardName, $companyInstance));
87 // Werft in den Hafen einbauen ohne Zuweisung einer Reederei (gehoert der "Stadt" dann)
88 public function addNewShipyard ($shipyardName) {
89 if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Die Werft <strong>%s</strong> wird im Hafen <strong>%s</strong> gebaut.<br />\n",
90 $shipyardName, $this->getHarborName()
93 // Werft generieren und in die Werftliste aufnehmen
94 $this->shipyardList->append(Shipyard::createShipyard($this, $shipyardName));
100 public function saveObjectToDatabase () {
101 $this->getDebugInstance()->output(sprintf("[%s:] Stub <strong>%s</strong> erreicht.",
108 * Limits this object with an ObjectLimits instance
110 public function limitObject (ObjectLimits $limitInstance) {
111 ApplicationEntryPoint::app_die("".__METHOD__." reached! Stub!");