* @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->generateUniqueId(); // Clean up a little $this->removeSystemArray(); $this->removePartInstance(); } // Creates a harbor public final static function createHarbor ($harborName) { // Hafen-Instanz holen $harborInstance = new Harbor(); // Hafenname setzen $harborInstance->setHarborName($harborName); // Werftliste initialisieren $harborInstance->createshipyardList(); // Instanz zurueckliefern return $harborInstance; } // Werft-Liste generieren public function createshipyardList () { $this->shipyardList = new FrameworkArrayObject("FakedShipyardList"); } // Setter fuer Hafennamen public final function setHarborName ($harborName) { $this->harborName = (string) $harborName; } // Getter fuer Hafennamen public final function getHarborName () { return $this->harborName; } // Werft in den Hafen einbauen und Werft->Reederei zuweisen public function addNewShipyardNotify ($shipyardName, ShippingCompany $companyInstance) { // 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) { // Werft generieren und in die Werftliste aufnehmen $this->shipyardList->append(Shipyard::createShipyard($this, $shipyardName)); } } // [EOF] ?>