city_map was to generic, better devide the actual map into several layers:
authorRoland Haeder <roland@mxchange.org>
Sat, 25 Jul 2015 19:19:56 +0000 (21:19 +0200)
committerRoland Haeder <roland@mxchange.org>
Sat, 25 Jul 2015 19:23:26 +0000 (21:23 +0200)
- city_sections : Contains section information about every part of the map
- city_policies : Contains policy informations
- city_foo      : Maybe more?

Signed-off-by: Roland Haeder <roland@mxchange.org>
16 files changed:
application/city/config.php
application/city/interfaces/database/frontend/city_map/.htaccess [deleted file]
application/city/interfaces/database/frontend/city_map/class_CityMapWrapper.php [deleted file]
application/city/interfaces/database/frontend/city_sections/.htaccess [new file with mode: 0644]
application/city/interfaces/database/frontend/city_sections/class_CitySectionsWrapper.php [new file with mode: 0644]
application/city/main/database/frontend/city_map/.htaccess [deleted file]
application/city/main/database/frontend/city_map/class_CityMapDatabaseWrapper.php [deleted file]
application/city/main/database/frontend/city_sections/.htaccess [new file with mode: 0644]
application/city/main/database/frontend/city_sections/class_CitySectionsDatabaseWrapper.php [new file with mode: 0644]
application/city/main/database/frontend/region/class_RegionMapDatabaseWrapper.php [deleted file]
application/city/main/database/frontend/region_map/.htaccess [new file with mode: 0644]
application/city/main/database/frontend/region_map/class_RegionMapDatabaseWrapper.php [new file with mode: 0644]
application/city/main/manager/city_map/class_CityMapManager.php
db/city_map/.htaccess [deleted file]
db/city_sections/.htaccess [new file with mode: 0644]
docs/mindmaps/Simple City Growth Simulation.mm

index 9f837100d305906157817ab008001599f7f2fc37..aea8d54b5f6cbe556320987c1e0c79c6be3ecd3e 100644 (file)
@@ -49,8 +49,8 @@ $cfg->setConfigEntry('region_info_db_wrapper_class', 'RegionInformationDatabaseW
 // CFG: REGION-MAP-DB-WRAPPER-CLASS
 $cfg->setConfigEntry('region_map_db_wrapper_class', 'RegionMapDatabaseWrapper');
 
-// CFG: CITY-MAP-DB-WRAPPER-CLASS
-$cfg->setConfigEntry('city_map_db_wrapper_class', 'CityMapDatabaseWrapper');
+// CFG: CITY-SECTIONS-DB-WRAPPER-CLASS
+$cfg->setConfigEntry('city_sections_db_wrapper_class', 'CitySectionsDatabaseWrapper');
 
 // CFG: CITY-INIT-STATE-CLASS
 $cfg->setConfigEntry('city_init_state_class', 'CityInitState');
diff --git a/application/city/interfaces/database/frontend/city_map/.htaccess b/application/city/interfaces/database/frontend/city_map/.htaccess
deleted file mode 100644 (file)
index 3a42882..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
diff --git a/application/city/interfaces/database/frontend/city_map/class_CityMapWrapper.php b/application/city/interfaces/database/frontend/city_map/class_CityMapWrapper.php
deleted file mode 100644 (file)
index a7017dc..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * An interface for city maps (database) wrapper
- *
- * @author             Roland Haeder <webmaster@shipsimu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2015 City Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.shipsimu.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 <http://www.gnu.org/licenses/>.
- */
-interface CityMapWrapper extends DatabaseWrapper {
-}
-
-// [EOF]
-?>
diff --git a/application/city/interfaces/database/frontend/city_sections/.htaccess b/application/city/interfaces/database/frontend/city_sections/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/city/interfaces/database/frontend/city_sections/class_CitySectionsWrapper.php b/application/city/interfaces/database/frontend/city_sections/class_CitySectionsWrapper.php
new file mode 100644 (file)
index 0000000..3d83212
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+/**
+ * An interface for city sections (database) wrapper
+ *
+ * @author             Roland Haeder <webmaster@shipsimu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2015 City Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.shipsimu.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 <http://www.gnu.org/licenses/>.
+ */
+interface CitySectionsWrapper extends DatabaseWrapper {
+}
+
+// [EOF]
+?>
diff --git a/application/city/main/database/frontend/city_map/.htaccess b/application/city/main/database/frontend/city_map/.htaccess
deleted file mode 100644 (file)
index 3a42882..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
diff --git a/application/city/main/database/frontend/city_map/class_CityMapDatabaseWrapper.php b/application/city/main/database/frontend/city_map/class_CityMapDatabaseWrapper.php
deleted file mode 100644 (file)
index 657a86a..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * A database wrapper for city informations
- *
- * @author             Roland Haeder <webmaster@shipsimu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2015 City Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.shipsimu.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 <http://www.gnu.org/licenses/>.
- */
-class CityMapDatabaseWrapper extends BaseDatabaseWrapper implements CityMapWrapper, Registerable {
-       // Constants for database table names
-       const DB_TABLE_CITY_MAP = 'city_map';
-
-       /**
-        * Protected constructor
-        *
-        * @return      void
-        */
-       protected function __construct () {
-               // Call parent constructor
-               parent::__construct(__CLASS__);
-       }
-
-       /**
-        * Creates an instance of this database wrapper by a provided user class
-        *
-        * @return      $wrapperInstance        An instance of the created wrapper class
-        */
-       public static final function createCityMapDatabaseWrapper () {
-               // Get a new instance
-               $wrapperInstance = new CityMapDatabaseWrapper();
-
-               // Set (primary!) table name
-               $wrapperInstance->setTableName(self::DB_TABLE_CITY_MAP);
-
-               // Return the instance
-               return $wrapperInstance;
-       }
-}
-
-// [EOF]
-?>
diff --git a/application/city/main/database/frontend/city_sections/.htaccess b/application/city/main/database/frontend/city_sections/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/city/main/database/frontend/city_sections/class_CitySectionsDatabaseWrapper.php b/application/city/main/database/frontend/city_sections/class_CitySectionsDatabaseWrapper.php
new file mode 100644 (file)
index 0000000..0ba967d
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/**
+ * A database wrapper for city informations
+ *
+ * @author             Roland Haeder <webmaster@shipsimu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2015 City Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.shipsimu.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 <http://www.gnu.org/licenses/>.
+ */
+class CitySectionsDatabaseWrapper extends BaseDatabaseWrapper implements CitySectionsWrapper, Registerable {
+       // Constants for database table names
+       const DB_TABLE_CITY_SECTIONS = 'city_sections';
+
+       // Constants for database column names
+       const DB_COLUMN_SECTION_ID = 'city_section_id';
+       const DB_COLUMN_CITY_ID    = 'city_id';
+
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this database wrapper by a provided user class
+        *
+        * @return      $wrapperInstance        An instance of the created wrapper class
+        */
+       public static final function createCitySectionsDatabaseWrapper () {
+               // Get a new instance
+               $wrapperInstance = new CitySectionsDatabaseWrapper();
+
+               // Set (primary!) table name
+               $wrapperInstance->setTableName(self::DB_TABLE_CITY_SECTIONS);
+
+               // Return the instance
+               return $wrapperInstance;
+       }
+}
+
+// [EOF]
+?>
diff --git a/application/city/main/database/frontend/region/class_RegionMapDatabaseWrapper.php b/application/city/main/database/frontend/region/class_RegionMapDatabaseWrapper.php
deleted file mode 100644 (file)
index a2d215b..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<?php
-/**
- * A database wrapper for region maps
- *
- * @author             Roland Haeder <webmaster@shipsimu.org>
- * @version            0.0.0
- * @copyright  Copyright (c) 2015 City Developer Team
- * @license            GNU GPL 3.0 or any newer version
- * @link               http://www.shipsimu.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 <http://www.gnu.org/licenses/>.
- */
-class RegionMapDatabaseWrapper extends BaseDatabaseWrapper implements RegionMapWrapper, Registerable {
-       // Constants for database table names
-       const DB_TABLE_REGION_MAP = 'region_map';
-
-       // Constants for database column names
-       const DB_COLUMN_REGION_ID = 'region_id';
-
-       /**
-        * Protected constructor
-        *
-        * @return      void
-        */
-       protected function __construct () {
-               // Call parent constructor
-               parent::__construct(__CLASS__);
-       }
-
-       /**
-        * Creates an instance of this database wrapper by a provided user class
-        *
-        * @return      $wrapperInstance        An instance of the created wrapper class
-        */
-       public static final function createRegionMapDatabaseWrapper () {
-               // Get a new instance
-               $wrapperInstance = new RegionMapDatabaseWrapper();
-
-               // Set (primary!) table name
-               $wrapperInstance->setTableName(self::DB_TABLE_REGION_MAP);
-
-               // Return the instance
-               return $wrapperInstance;
-       }
-
-       /**
-        * Removes non-public data from given array.
-        *
-        * @param       $data   An array with possible non-public data that needs to be removed.
-        * @return      $data   A cleaned up array with only public data.
-        */
-       public function removeNonPublicDataFromArray(array $data) {
-               // Currently call only inner method
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGION-WRAPPER[' . __METHOD__ . ':' . __LINE__ . ']: Calling parent::removeNonPublicDataFromArray(data) ...');
-               $data = parent::removeNonPublicDataFromArray($data);
-
-               // Return cleaned data
-               return $data;
-       }
-
-       /**
-        * Creates a region by given name
-        *
-        * @return      void
-        */
-       public function createRegionByName () {
-               // Pre-check
-               die(__METHOD__ . ': Unfinshed!');
-               assert(!$this->ifRegionExists($regionName));
-
-               // Get user instance
-               $userInstance = Registry::getRegistry()->getInstance('user');
-
-               // Get a dataset instance
-               $dataSetInstance = ObjectFactory::createObjectByConfiguredName('dataset_criteria_class', array(self::DB_TABLE_REGION_MAP));
-
-               // Set the primary key
-               $dataSetInstance->setUniqueKey(self::DB_COLUMN_REGION_ID);
-
-               // Add region name and assign user id
-               $dataSetInstance->addCriteria(self::DB_COLUMN_REGION_ID     , ($this->countTotalRows() + 1));
-
-               // "Insert" this dataset instance completely into the database
-               $this->queryInsertDataSet($dataSetInstance);
-
-               // Post-check name
-               assert($this->ifRegionExists($regionName));
-       }
-}
-
-// [EOF]
-?>
diff --git a/application/city/main/database/frontend/region_map/.htaccess b/application/city/main/database/frontend/region_map/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/application/city/main/database/frontend/region_map/class_RegionMapDatabaseWrapper.php b/application/city/main/database/frontend/region_map/class_RegionMapDatabaseWrapper.php
new file mode 100644 (file)
index 0000000..a2d215b
--- /dev/null
@@ -0,0 +1,103 @@
+<?php
+/**
+ * A database wrapper for region maps
+ *
+ * @author             Roland Haeder <webmaster@shipsimu.org>
+ * @version            0.0.0
+ * @copyright  Copyright (c) 2015 City Developer Team
+ * @license            GNU GPL 3.0 or any newer version
+ * @link               http://www.shipsimu.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 <http://www.gnu.org/licenses/>.
+ */
+class RegionMapDatabaseWrapper extends BaseDatabaseWrapper implements RegionMapWrapper, Registerable {
+       // Constants for database table names
+       const DB_TABLE_REGION_MAP = 'region_map';
+
+       // Constants for database column names
+       const DB_COLUMN_REGION_ID = 'region_id';
+
+       /**
+        * Protected constructor
+        *
+        * @return      void
+        */
+       protected function __construct () {
+               // Call parent constructor
+               parent::__construct(__CLASS__);
+       }
+
+       /**
+        * Creates an instance of this database wrapper by a provided user class
+        *
+        * @return      $wrapperInstance        An instance of the created wrapper class
+        */
+       public static final function createRegionMapDatabaseWrapper () {
+               // Get a new instance
+               $wrapperInstance = new RegionMapDatabaseWrapper();
+
+               // Set (primary!) table name
+               $wrapperInstance->setTableName(self::DB_TABLE_REGION_MAP);
+
+               // Return the instance
+               return $wrapperInstance;
+       }
+
+       /**
+        * Removes non-public data from given array.
+        *
+        * @param       $data   An array with possible non-public data that needs to be removed.
+        * @return      $data   A cleaned up array with only public data.
+        */
+       public function removeNonPublicDataFromArray(array $data) {
+               // Currently call only inner method
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('REGION-WRAPPER[' . __METHOD__ . ':' . __LINE__ . ']: Calling parent::removeNonPublicDataFromArray(data) ...');
+               $data = parent::removeNonPublicDataFromArray($data);
+
+               // Return cleaned data
+               return $data;
+       }
+
+       /**
+        * Creates a region by given name
+        *
+        * @return      void
+        */
+       public function createRegionByName () {
+               // Pre-check
+               die(__METHOD__ . ': Unfinshed!');
+               assert(!$this->ifRegionExists($regionName));
+
+               // Get user instance
+               $userInstance = Registry::getRegistry()->getInstance('user');
+
+               // Get a dataset instance
+               $dataSetInstance = ObjectFactory::createObjectByConfiguredName('dataset_criteria_class', array(self::DB_TABLE_REGION_MAP));
+
+               // Set the primary key
+               $dataSetInstance->setUniqueKey(self::DB_COLUMN_REGION_ID);
+
+               // Add region name and assign user id
+               $dataSetInstance->addCriteria(self::DB_COLUMN_REGION_ID     , ($this->countTotalRows() + 1));
+
+               // "Insert" this dataset instance completely into the database
+               $this->queryInsertDataSet($dataSetInstance);
+
+               // Post-check name
+               assert($this->ifRegionExists($regionName));
+       }
+}
+
+// [EOF]
+?>
index 576c76e260880d3e2d370f1f0362d48bf34fee25..43f5438894e3af5ef5fc5a5fb1c3a94ad0be79bb 100644 (file)
@@ -42,7 +42,7 @@ class CityMapManager extends BaseFrameworkSystem implements ManageableCityMap, R
                $managerInstance = new CityMapManager();
 
                // Get database wrapper
-               $wrapperInstance = DatabaseWrapperFactory::createWrapperByConfiguredName('city_map_db_wrapper_class');
+               $wrapperInstance = DatabaseWrapperFactory::createWrapperByConfiguredName('city_sections_db_wrapper_class');
 
                // And set it here
                $managerInstance->setWrapperInstance($wrapperInstance);
diff --git a/db/city_map/.htaccess b/db/city_map/.htaccess
deleted file mode 100644 (file)
index 3a42882..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Deny from all
diff --git a/db/city_sections/.htaccess b/db/city_sections/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
index ef85a36239c8ade5d635ba1bc1de50778b458005..a9c6355cc6ddca5c10136536cdc0bc8073193b5b 100644 (file)
@@ -50,7 +50,7 @@
 </stylenode>
 </map_styles>
 </hook>
-<hook NAME="AutomaticEdgeColor" COUNTER="3"/>
+<hook NAME="AutomaticEdgeColor" COUNTER="4"/>
 <font NAME="Dialog" SIZE="20" BOLD="true"/>
 <hook NAME="accessories/plugins/AutomaticLayout.properties" VALUE="ALL"/>
 <node TEXT="General ideas" POSITION="right" ID="ID_1976950711" CREATED="1434011684265" MODIFIED="1434045201294" HGAP="30" VSHIFT="-10">
 </node>
 </node>
 </node>
+<node TEXT="Database design" POSITION="right" ID="ID_37881891" CREATED="1437302882441" MODIFIED="1437302889142">
+<edge COLOR="#ff00ff"/>
+<node TEXT="Table &apos;city_data&apos;" ID="ID_1517130846" CREATED="1437302960255" MODIFIED="1437302980252">
+<node TEXT="General" ID="ID_1679802479" CREATED="1437303004879" MODIFIED="1437303012396">
+<node TEXT="General city data" ID="ID_165551090" CREATED="1437303018975" MODIFIED="1437303026796">
+<node TEXT="Name of city" ID="ID_923685594" CREATED="1437303067567" MODIFIED="1437303070476"/>
+<node TEXT="Linked user profile" ID="ID_939423900" CREATED="1437303071119" MODIFIED="1437303075804"/>
+<node TEXT="Linked region" ID="ID_568383767" CREATED="1437303513553" MODIFIED="1437303517532"/>
+</node>
+</node>
+<node TEXT="Columns" ID="ID_7311076" CREATED="1437303337311" MODIFIED="1437303338924">
+<node TEXT="city_id" ID="ID_94440353" CREATED="1437303421119" MODIFIED="1437303423404"/>
+<node TEXT="city_mode" ID="ID_1714851680" CREATED="1437303423807" MODIFIED="1437303427644"/>
+<node TEXT="city_name" ID="ID_442480951" CREATED="1437303428351" MODIFIED="1437303432236"/>
+<node TEXT="city_user_id" ID="ID_1451478104" CREATED="1437303435967" MODIFIED="1437303439436"/>
+<node TEXT="city_region_id" ID="ID_1079814383" CREATED="1437303439983" MODIFIED="1437303443020"/>
+</node>
+</node>
+<node TEXT="Table &apos;city_map&apos;" ID="ID_687749514" CREATED="1437302980767" MODIFIED="1437302986492">
+<node TEXT="General" ID="ID_474767046" CREATED="1437303004879" MODIFIED="1437303012396"/>
+<node TEXT="Columns" ID="ID_920050758" CREATED="1437304640033" MODIFIED="1437304641549"/>
+</node>
+<node TEXT="Table &apos;region_data&apos;" ID="ID_565474444" CREATED="1437302987199" MODIFIED="1437302992828">
+<node TEXT="General" ID="ID_167479682" CREATED="1437303004879" MODIFIED="1437303012396">
+<node TEXT="General region data" ID="ID_1640925370" CREATED="1437303053807" MODIFIED="1437303061996">
+<node TEXT="Name of region" ID="ID_1834246483" CREATED="1437303077823" MODIFIED="1437303081324"/>
+</node>
+<node TEXT="For the first city, a general region is created" ID="ID_1143661581" CREATED="1437303176943" MODIFIED="1437303191260"/>
+<node TEXT="All regions can later be named, cities re-assigned" ID="ID_1080582875" CREATED="1437303195487" MODIFIED="1437303208444"/>
+<node TEXT="Regions can be connected with each other" ID="ID_1095689306" CREATED="1437303212111" MODIFIED="1437303227276">
+<node TEXT="Between same player" ID="ID_1019502100" CREATED="1437303228095" MODIFIED="1437303233516"/>
+<node TEXT="Also between different players" ID="ID_127376079" CREATED="1437303234255" MODIFIED="1437303240844"/>
+</node>
+</node>
+<node TEXT="Columns" ID="ID_1390154516" CREATED="1437303449135" MODIFIED="1437303451132">
+<node TEXT="region_id" ID="ID_629426834" CREATED="1437303521375" MODIFIED="1437303528156"/>
+<node TEXT="region_name" ID="ID_1676849001" CREATED="1437303528831" MODIFIED="1437303531036"/>
+<node TEXT="region_user_id" ID="ID_539795794" CREATED="1437303531599" MODIFIED="1437303534604"/>
+</node>
+</node>
+<node TEXT="Table &apos;region_map&apos;" ID="ID_954622789" CREATED="1437302993295" MODIFIED="1437302997244">
+<node TEXT="General" ID="ID_1626312098" CREATED="1437303004879" MODIFIED="1437303012396"/>
+<node TEXT="Columns" ID="ID_374773647" CREATED="1437304643025" MODIFIED="1437304644349"/>
+</node>
+</node>
 <node TEXT="Game logic/design" POSITION="left" ID="ID_782475028" CREATED="1434012713594" MODIFIED="1434045201336">
 <edge COLOR="#00ff00"/>
 <font NAME="Dialog" SIZE="16" BOLD="true"/>
 <node TEXT="Low chance (youth pregancy)" ID="ID_48937365" CREATED="1434041910998" MODIFIED="1434045201376">
 <font NAME="Dialog"/>
 <node TEXT="Influenced by sex education" ID="ID_1663386218" CREATED="1434042826295" MODIFIED="1434045201377">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_964741313" STARTINCLINATION="358;0;" ENDINCLINATION="358;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_964741313" STARTINCLINATION="358;0;" ENDINCLINATION="358;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 </node>
 </node>
 </node>
 </node>
 <node TEXT="Depends on education" ID="ID_1215578310" CREATED="1434042007462" MODIFIED="1434045201397">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1806757282" STARTINCLINATION="4576;0;" ENDINCLINATION="4576;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_331881607" STARTINCLINATION="5608;0;" ENDINCLINATION="5608;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_331881607" STARTINCLINATION="5608;0;" ENDINCLINATION="5608;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1806757282" STARTINCLINATION="4576;0;" ENDINCLINATION="4576;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <node TEXT="Sex education?" ID="ID_964741313" CREATED="1434042408630" MODIFIED="1434045201398">
 <icon BUILTIN="help"/>
 <icon BUILTIN="idea"/>
 </node>
 </node>
 <node TEXT="Depends on happiness" ID="ID_1656272295" CREATED="1434042019622" MODIFIED="1434045201399">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_88101134" STARTINCLINATION="6136;0;" ENDINCLINATION="6136;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_88101134" STARTINCLINATION="6136;0;" ENDINCLINATION="6136;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <node TEXT="Happier citizens reproduce often" ID="ID_383081288" CREATED="1434042444438" MODIFIED="1434045201400">
 <font NAME="Dialog"/>
 </node>
 </node>
 </node>
 <node TEXT="Depends on health care" ID="ID_1907214542" CREATED="1434042568278" MODIFIED="1434045201412">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_150347791" STARTINCLINATION="5107;0;" ENDINCLINATION="5107;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_150347791" STARTINCLINATION="5107;0;" ENDINCLINATION="5107;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <node TEXT="Healther citizens have longer life" ID="ID_1772475518" CREATED="1434042635191" MODIFIED="1434045201413">
 <font NAME="Dialog"/>
 </node>
 <font NAME="Dialog"/>
 </node>
 <node TEXT="Policies" ID="ID_999077734" CREATED="1434039539348" MODIFIED="1434045201421">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_76932011" STARTINCLINATION="1335;0;" ENDINCLINATION="1335;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_76932011" STARTINCLINATION="1335;0;" ENDINCLINATION="1335;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Other zones/roads in effect area" ID="ID_309057432" CREATED="1434039919332" MODIFIED="1434045201422">
 <font NAME="Dialog"/>
 </node>
 </node>
 <node TEXT="Land value can be influenced with parks/plazas" ID="ID_1642560116" CREATED="1434022291683" MODIFIED="1434045201484">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_283421216" STARTINCLINATION="720;0;" ENDINCLINATION="720;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_283421216" STARTINCLINATION="720;0;" ENDINCLINATION="720;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 </node>
 <node TEXT="Very low" ID="ID_1203776766" CREATED="1434020405857" MODIFIED="1434045201485">
 <font NAME="Dialog"/>
 </node>
 <node TEXT="Water &quot;production&quot;" ID="ID_387745113" CREATED="1434025817862" MODIFIED="1434045201577">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1106089880" STARTINCLINATION="1164;0;" ENDINCLINATION="1164;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1106089880" STARTINCLINATION="1164;0;" ENDINCLINATION="1164;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <node TEXT="Are basicly water pumps, wells, etc." ID="ID_1391771818" CREATED="1434025892423" MODIFIED="1434045201578">
 <font NAME="Dialog"/>
 </node>
 </node>
 <node TEXT="Water &quot;disposal&quot;" ID="ID_92829122" CREATED="1434025885047" MODIFIED="1434045201581">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_427323284" STARTINCLINATION="1198;0;" ENDINCLINATION="1198;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_427323284" STARTINCLINATION="1198;0;" ENDINCLINATION="1198;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <node TEXT="Are basicly water treatments or sewage pipes" ID="ID_1848223480" CREATED="1434025903831" MODIFIED="1434045201582">
 <font NAME="Dialog"/>
 </node>
 </node>
 <node TEXT="Health care" ID="ID_327865089" CREATED="1434036532337" MODIFIED="1434045201583">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_150347791" STARTINCLINATION="2592;0;" ENDINCLINATION="2592;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_150347791" STARTINCLINATION="2592;0;" ENDINCLINATION="2592;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Death care" ID="ID_609033036" CREATED="1434036537697" MODIFIED="1434045201584">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_765478801" STARTINCLINATION="2592;0;" ENDINCLINATION="2592;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_765478801" STARTINCLINATION="2592;0;" ENDINCLINATION="2592;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Harbor" ID="ID_440665573" CREATED="1434037606210" MODIFIED="1434045201586">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1900102141" STARTINCLINATION="1025;0;" ENDINCLINATION="1025;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1900102141" STARTINCLINATION="1025;0;" ENDINCLINATION="1025;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Religion" ID="ID_1874145544" CREATED="1434038693939" MODIFIED="1434045201587">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_414561380" STARTINCLINATION="3484;0;" ENDINCLINATION="3484;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_414561380" STARTINCLINATION="3484;0;" ENDINCLINATION="3484;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 </node>
 <node TEXT="Policies" ID="ID_76932011" CREATED="1434013960379" MODIFIED="1434045201588">
 <font NAME="Dialog"/>
 </node>
 <node TEXT="Needs be connected to all single buildings" ID="ID_1305093965" CREATED="1434015803965" MODIFIED="1434045201828">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_679686952" STARTINCLINATION="390;0;" ENDINCLINATION="390;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_679686952" STARTINCLINATION="390;0;" ENDINCLINATION="390;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 </node>
 </node>
 <node TEXT="Waste production can be lowered" ID="ID_779867598" CREATED="1434016422238" MODIFIED="1434045201873">
 <font NAME="Dialog"/>
 <node TEXT="By educating citizens" ID="ID_636824048" CREATED="1434016435246" MODIFIED="1434045201874">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1806757282" STARTINCLINATION="604;0;" ENDINCLINATION="604;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1806757282" STARTINCLINATION="604;0;" ENDINCLINATION="604;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="By placing recycling plants" ID="ID_1085119934" CREATED="1434016447053" MODIFIED="1434045201878">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_110998741" STARTINCLINATION="56;0;" ENDINCLINATION="56;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_110998741" STARTINCLINATION="56;0;" ENDINCLINATION="56;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 </node>
 </node>
 <node TEXT="Pay taxes" ID="ID_594362201" CREATED="1434044476568" MODIFIED="1434045202337">
 <font NAME="Dialog"/>
 <node TEXT="Income" ID="ID_1898486000" CREATED="1434044597880" MODIFIED="1434045202339">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_760756384" STARTINCLINATION="129;0;" ENDINCLINATION="129;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_760756384" STARTINCLINATION="129;0;" ENDINCLINATION="129;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Different expenses" ID="ID_1879740587" CREATED="1434044600600" MODIFIED="1434045202340">
+<font NAME="Dialog"/>
 <arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_620932988" STARTINCLINATION="137;0;" ENDINCLINATION="137;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_758700861" STARTINCLINATION="171;0;" ENDINCLINATION="171;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
-<font NAME="Dialog"/>
 </node>
 </node>
 </node>
 <node TEXT="Public services" ID="ID_778619762" CREATED="1434043868552" MODIFIED="1434045202341">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1076954888" STARTINCLINATION="2116;0;" ENDINCLINATION="2116;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1076954888" STARTINCLINATION="2116;0;" ENDINCLINATION="2116;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Public supplies" ID="ID_1060667505" CREATED="1434043885416" MODIFIED="1434045202345">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1744289032" STARTINCLINATION="3423;0;" ENDINCLINATION="3423;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1744289032" STARTINCLINATION="3423;0;" ENDINCLINATION="3423;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Taxes" ID="ID_1406381253" CREATED="1434043914360" MODIFIED="1434045202346">
 <font NAME="Dialog"/>
 <font NAME="Dialog"/>
 </node>
 <node TEXT="Income" ID="ID_1852657110" CREATED="1434044671336" MODIFIED="1434045202352">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1758539544" STARTINCLINATION="393;0;" ENDINCLINATION="393;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1758539544" STARTINCLINATION="393;0;" ENDINCLINATION="393;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <node TEXT="Income tax (citizens)" ID="ID_760756384" CREATED="1434044687512" MODIFIED="1434045202353">
 <font NAME="Dialog"/>
 </node>
 </node>
 </node>
 <node TEXT="Public services" ID="ID_1457171596" CREATED="1434045030185" MODIFIED="1434045202376">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_778619762" STARTINCLINATION="311;0;" ENDINCLINATION="351;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_778619762" STARTINCLINATION="311;0;" ENDINCLINATION="351;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 <node TEXT="Public supplies" ID="ID_32961669" CREATED="1434045035065" MODIFIED="1434045202383">
-<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1060667505" STARTINCLINATION="387;0;" ENDINCLINATION="237;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 <font NAME="Dialog"/>
+<arrowlink SHAPE="CUBIC_CURVE" COLOR="#000000" WIDTH="2" TRANSPARENCY="80" FONT_SIZE="9" FONT_FAMILY="Dialog" DESTINATION="ID_1060667505" STARTINCLINATION="387;0;" ENDINCLINATION="237;0;" STARTARROW="NONE" ENDARROW="DEFAULT"/>
 </node>
 </node>
 </node>