* @version 0.0.0 * @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ class Harbor extends BaseConstruction { // Namen des Hafens (z.B. Hamburger Hafen) private $harborName = "Unbekannter Hafen"; // Schiffsliste aller gebauten Schiffe private $constructedShips = null; // Liegeplatz-Liste private $berthList = null; // List of all assigned shipyards private $shipyardList = null; // Constructor protected function __construct () { // Call parent constructor parent::__construct(__CLASS__); // Set description $this->setObjectDescription("Hafen"); // Generate unique ID number $this->createUniqueID(); // Clean up a little $this->removeSystemArray(); $this->removePartInstance(); } // Creates a harbor public final static function createHarbor ($harborName) { // Hafen-Instanz holen $harborInstance = new Harbor(); // Debug message if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $harborInstance->getDebugInstance()->output(sprintf("[Harbor:] Der Hafen %s wird konstruiert.
\n", $harborName)); // Hafenname setzen $harborInstance->setHarborName($harborName); // Werftliste initialisieren $harborInstance->createshipyardList(); // Debug-Meldung ausgeben if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $harborInstance->getDebugInstance()->output(sprintf("[Harbor:] Der Hafen %s ist jetzt fertig gebaut.
\n", $harborName)); // Instanz zurueckliefern return $harborInstance; } // Werft-Liste generieren public function createshipyardList () { if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Werft-Liste wird für den Hafen %s erstellt.
\n", $this->getHarborName() )); $this->shipyardList = new FrameworkArrayObject(); } // Setter fuer Hafennamen public final function setHarborName ($harborName) { if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Der Hafen heisst jetzt %s.
\n", $harborName)); $this->harborName = (string) $harborName; } // Getter fuer Hafennamen public final function getHarborName () { if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Hafenname %s wurde angefordert.
\n", $this->harborName)); return $this->harborName; } // Werft in den Hafen einbauen und Werft->Reederei zuweisen public function addNewShipyardNotify ($shipyardName, ShippingCompany $companyInstance) { if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Die Werft %s wird im Hafen %s gebaut.
\n", $shipyardName, $this->getHarborName() )); // Werft generieren und in die Werftliste aufnehmen $this->shipyardList->append(Shipyard::createShipyardNotify($this, $shipyardName, $companyInstance)); } // Werft in den Hafen einbauen ohne Zuweisung einer Reederei (gehoert der "Stadt" dann) public function addNewShipyard ($shipyardName) { if ((defined('DEBUG_HARBOR')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[Harbor:] Die Werft %s wird im Hafen %s gebaut.
\n", $shipyardName, $this->getHarborName() )); // Werft generieren und in die Werftliste aufnehmen $this->shipyardList->append(Shipyard::createShipyard($this, $shipyardName)); } } // [EOF] ?>