Ejemplo n.º 1
0
 void Awake()
 {
     GameManager.worldEvent += EventManager;
     GameManager.nextTurn += NextTurn;
     WorldManager.onHexClick += OnHexClick;
     worldManager = GameObject.FindObjectOfType<WorldManager>();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Sets up the resource manager.
        /// Caches all needed values.
        /// </summary>
        internal void SetUp()
        {
            //insert default "None" resource into the resource array
            resources.Insert(0, new Resource("None", 0, 0, null, null, false, null));

            //set internal array
            internalResources = resources.ToArray();

            //cache managers
            tileManager = GetComponent<TileManager>();
            worldManager = GetComponent<WorldManager>();

            //instatiate the improvement name array
            if (resourceNames == null)
            {
                UpdateResourceNames();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Sets up the cameras to position themselves correctly depending on the user settings.
        /// Spawns the second follow camera if wrapping is enabled.
        /// Caches transforms for the cameras for speed.
        /// </summary>
        /// <remarks>
        /// The WorldManager script must be within the scene for this method to execute.
        /// </remarks>
        public void SetupCameras()
        {
            //cache the lead camera and world manager
            cam1 = gameObject.GetComponent<Camera>();
            worldManager = GameObject.FindObjectOfType<WorldManager>();

            //set the lead camera to the origin
            cam1.transform.position = new Vector3(0, 0, 0);

            //setup wrapping camera if needed
            if (enableWrapping == true)
            {
                //spawn the follow camera and setup it's camera setting to match the lead camera
                cam2 = new GameObject("Cam2").gameObject.AddComponent<Camera>();
                cam2.gameObject.AddComponent<GUILayer>();
                cam2.fieldOfView = cam1.fieldOfView;
                cam2.clearFlags = CameraClearFlags.Depth;
                cam2.depth = cam1.depth + 1;

                //calculate the offset between the two cameras to make a wrapping world
                camOffset = new Vector2((this.worldManager.mapSize.x * this.worldManager.hexSize.x), 0);
            }

            //cache the transform on the lead camera and assign its position and rotation
            cam1T = cam1.transform;
            cam1T.localEulerAngles = new Vector3(cameraAngle, cam1T.localEulerAngles.y, cam1T.localEulerAngles.z);
            cam1T.position = new Vector3(camOffset.x * .5f, cameraHeight, (worldManager.hexExt.y * worldManager.mapSize.y) * .5f);

            //set the follow camera to the lead cameras values until they are correctly calculated in the update methods
            if (enableWrapping == true)
            {
                cam2T = cam2.transform;
                cam2T.position = cam1T.position;
                cam2T.rotation = cam1T.rotation;
            }
        }
Ejemplo n.º 4
0
 void Awake()
 {
     worldManager = (WorldManager)target;
 }
Ejemplo n.º 5
0
        public override void OnInspectorGUI()
        {
            if (done == false)
            {
                Awake();

                done = true;
            }

            if (improvementManager == null) { improvementManager = (ImprovementManager)target; }
            if (worldManager == null) { worldManager = improvementManager.GetComponent<WorldManager>(); }
            if (tileManager == null) { tileManager = improvementManager.GetComponent<TileManager>(); }
            if (improvementManager.improvements != null && (foldoutOpen == null || foldoutOpen.Length != improvementManager.improvements.Count)) { foldoutOpen = new bool[improvementManager.improvements.Count]; }
            if (improvementManager.improvements != null && (extraInfoFoldout == null || extraInfoFoldout.Length != improvementManager.improvements.Count)) { extraInfoFoldout = new bool[improvementManager.improvements.Count]; }

            if (GUILayout.Button("Add New Improvement"))
            {
                ImprovementEditorWindow window = EditorWindow.CreateInstance<ImprovementEditorWindow>();
                EditorWindow.GetWindow<ImprovementEditorWindow>();
                window.editMode = false;
                window.improvementIndexToEdit = 0;
            }

            if (improvementManager.improvements != null && improvementManager.improvements.Count > 0)
            {
                for (int i = 0; i < improvementManager.improvements.Count; i++)
                {
                    Improvement improvement = improvementManager.improvements[i];

                    EditorGUILayout.BeginHorizontal();

                    foldoutOpen[i] = EditorGUILayout.Foldout(foldoutOpen[i], improvement.name);

                    if (GUILayout.Button("Edit"))
                    {
                        ImprovementEditorWindow window = EditorWindow.CreateInstance<ImprovementEditorWindow>();
                        EditorWindow.GetWindow<ImprovementEditorWindow>();
                        window.editMode = true;
                        window.improvementIndexToEdit = i;
                    }

                    if (GUILayout.Button("Remove"))
                    {
                        improvementManager.DeleteImprovement(improvement);
                    }

                    EditorGUILayout.EndHorizontal();

                    EditorGUI.indentLevel++;
                    if (foldoutOpen[i])
                    {
                        improvement.name = EditorGUILayout.TextField("Improvement Name:", improvement.name);
                        improvement.replaceGroundTexture = EditorGUILayout.Toggle("Replace Ground Texture:", improvement.replaceGroundTexture);

                        extraInfoFoldout[i] = EditorGUILayout.Foldout(extraInfoFoldout[i], "Rules:");

                        if (extraInfoFoldout[i])
                        {
                            EditorGUILayout.SelectableLabel("Possible Tiles:", EditorStyles.boldLabel, GUILayout.ExpandHeight(false), GUILayout.MaxHeight(15));
							EditorGUI.indentLevel++;
							if(improvement.rule.possibleTiles.Length == 0)
							{
								EditorGUILayout.SelectableLabel("No Possible Tiles");	
							}
							else
							{
								foreach (int t in improvement.rule.possibleTiles)
                            	{
                                	EditorGUI.indentLevel++;
                                	EditorGUILayout.SelectableLabel(tileManager.tiles[t].name, GUILayout.ExpandHeight(false), GUILayout.MaxHeight(18));
                                	EditorGUI.indentLevel--;
                            	}
							}
							EditorGUI.indentLevel--;
							
                            EditorGUILayout.SelectableLabel("Possible Features:", EditorStyles.boldLabel, GUILayout.ExpandHeight(false), GUILayout.MaxHeight(15));
							EditorGUI.indentLevel++;
							if(improvement.rule.possibleFeatures.Length == 0)
							{
								EditorGUILayout.SelectableLabel("No Possible Features");	
							}
							else
							{
								foreach (Feature f in improvement.rule.possibleFeatures)
                            	{
                                	EditorGUI.indentLevel++;
                                	EditorGUILayout.SelectableLabel(f.ToString(), GUILayout.ExpandHeight(false), GUILayout.MaxHeight(18));
                                	EditorGUI.indentLevel--;
                            	}
							}
							EditorGUI.indentLevel--;
							
							EditorGUILayout.Separator();
                        }
                        improvement.meshToSpawn = (Mesh)EditorGUILayout.ObjectField("Improvement Mesh", (Object)improvement.meshToSpawn, typeof(Mesh), false);
                        improvement.meshTexture = (Texture2D)EditorGUILayout.ObjectField("Improvement Mesh Texture:", (Object)improvement.meshTexture, typeof(Texture2D), false, GUILayout.ExpandHeight(false), GUILayout.ExpandWidth(true));

                    }
                    EditorGUI.indentLevel--;
                }
            }
            else
            {
                GUILayout.Label("No Improvements Created; Please Add Some");
            }

            if (GUILayout.Button("Finalize"))
            {
                improvementManager.UpdateImprovementNames();
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Loads a terrain into the scene from a file.
        /// <see cref="WorldManager.LoadAndGenerateMap"/> should be used unless additional custom modification will be used.
        /// This method only loads the data into memory and does not generate the world from the data.
        /// </summary>
        /// <param name="location">File to load</param>
        /// <remarks>
        /// <see cref="WorldManager.LoadAndGenerateMap"/> should be used instead of this method unless advanced custom work needs to be implimented.
        /// </remarks>
        public static void LoadTerrain(string location)
        {
            WorldManager worldManager = GameObject.FindObjectOfType <WorldManager>();

            if (worldManager == null)
            {
                Debug.LogError("WorldManager not found while attempting to load the game. \n Game load failed. ");
                return;
            }

            bool startedGen = false;

            using (XmlReader reader = XmlReader.Create(location + ".xml"))
            {
                while (reader.Read())
                {
                    if (reader.IsStartElement())
                    {
                        switch (reader.Name)
                        {
                        case "WorldManager":
                            worldManager.useCivGridCamera   = XmlConvert.ToBoolean(reader["useCivGridCamera"]);
                            worldManager.useWorldTypeValues = XmlConvert.ToBoolean(reader["usePresetWorldValue"]);
                            worldManager.worldType          = (WorldType)XmlConvert.ToInt32(reader["worldType"]);
                            worldManager.mapSize            = new Vector2(XmlConvert.ToInt32(reader["mapSizeX"]), XmlConvert.ToInt32(reader["mapSizeY"]));
                            worldManager.chunkSize          = XmlConvert.ToInt32(reader["chunkSize"]);
                            worldManager.hexRadiusSize      = (float)XmlConvert.ToDouble(reader["hexRadiusSize"]);
                            worldManager.mountainHeightMap  = FileUtility.LoadTexture("Base_Mountain_Map");
                            break;

                        case "CivGridCamera":

                            worldManager.civGridCamera.enableWrapping = XmlConvert.ToBoolean(reader["enableWrapping"]);
                            worldManager.civGridCamera.cameraHeight   = (float)XmlConvert.ToDouble(reader["cameraHeight"]);
                            worldManager.civGridCamera.cameraAngle    = (float)XmlConvert.ToDouble(reader["cameraAngle"]);
                            worldManager.civGridCamera.cameraSpeed    = (float)XmlConvert.ToDouble(reader["cameraSpeed"]);
                            break;

                        case "Chunk":
                            if (startedGen == false)
                            {
                                worldManager.GenerateNewMap(false);
                                startedGen = true;
                            }
                            break;

                        case "Hexagon":
                            Hex hex = worldManager.hexChunks[XmlConvert.ToInt32(reader["xParentChunk"]), XmlConvert.ToInt32(reader["yParentChunk"])].hexArray[XmlConvert.ToInt32(reader["xHexLoc"]), XmlConvert.ToInt32(reader["yHexLoc"])];

                            hex.terrainType    = worldManager.tileManager.TryGetTile(reader["type"]);
                            hex.terrainFeature = (Feature)XmlConvert.ToInt32(reader["feature"]);
                            hex.parentChunk    = worldManager.hexChunks[XmlConvert.ToInt32(reader["xParentChunk"]), XmlConvert.ToInt32(reader["yParentChunk"])];

                            //rectLocation
                            hex.currentRectLocation = new Rect((float)XmlConvert.ToDouble(reader["rLeft"]), (float)XmlConvert.ToDouble(reader["rTop"]), (float)XmlConvert.ToDouble(reader["rWidth"]), (float)XmlConvert.ToDouble(reader["rHeight"]));

                            hex.currentResource = worldManager.resourceManager.TryGetResource(reader["resource"]);

                            hex.currentImprovement = worldManager.improvementManager.TryGetImprovement(reader["improvement"]);
                            break;

                            #region VoidedManagers

                            /*
                             #region TileManager
                             * case "TileManager":
                             *  Debug.Log("opening tile manager");
                             *  break;
                             * case "Tiles":
                             *  Debug.Log("finding tiles");
                             *  break;
                             * case "NewTile":
                             *  Debug.Log("adding Tile: " + reader["name"]);
                             *  tileManager.AddTile(new Tile(reader["name"], XmlConvert.ToBoolean(reader["isShore"]), XmlConvert.ToBoolean(reader["isOcean"]), XmlConvert.ToBoolean(reader["isMountain"]), (float)XmlConvert.ToDouble(reader["bottomLongitude"]), (float)XmlConvert.ToDouble(reader["topLongitude"])));
                             *  break;
                             #endregion
                             #region ResourceManager
                             * case "ResourceManager":
                             *  Debug.Log("opening resource manager");
                             *  break;
                             * case "Resources":
                             *  Debug.Log("opening resources");
                             *  break;
                             * case "NewResource":
                             *  string loc1 = reader["meshToSpawn"];
                             *  string loc2 = reader["meshTexture"];
                             *
                             *  List<int> possibleTiles = new List<int>();
                             *  List<Feature> possibleFeatures = new List<Feature>();
                             *
                             *  for(int i = 0; i < XmlConvert.ToInt32(reader["numOfPossibleTiles"]); i++)
                             *  {
                             *      possibleTiles.Add(XmlConvert.ToInt32(reader["possibleTile" + i]));
                             *  }
                             *
                             *  for (int i = 0; i < XmlConvert.ToInt32(reader["numOfPossibleFeatures"]); i++)
                             *  {
                             *      possibleFeatures.Add((Feature)System.Enum.Parse(typeof(Feature), reader["possibleFeature" + i]));
                             *  }
                             *
                             *  resourceManager.resources.Add(new Resource(
                             *      reader["name"],
                             *      ((float)XmlConvert.ToDouble(reader["rarity"])),
                             *      XmlConvert.ToInt32(reader["spawnAmount"]),
                             *      ((Mesh)AssetDatabase.LoadAssetAtPath(loc1, typeof(Mesh))),
                             *      ((Texture2D)AssetDatabase.LoadAssetAtPath(loc2, typeof(Texture2D))),
                             *      XmlConvert.ToBoolean(reader["replaceGroundTexture"]), new ResourceRule(possibleTiles.ToArray(), possibleFeatures.ToArray())));
                             *  break;
                             #endregion
                             */
                            #endregion
                        default:
                            //Debug.Log("unhandled exception: " + reader.Name);
                            break;
                        }
                    }
                }
            }

            foreach (Chunk chunk in worldManager.hexChunks)
            {
                chunk.StartHexGeneration();
                foreach (Hex hex in chunk.hexArray)
                {
                    if (hex.currentResource.name != "None")
                    {
                        worldManager.resourceManager.SpawnResource(hex, hex.currentResource, true);
                    }
                    if (hex.currentImprovement.name != "None")
                    {
                        worldManager.improvementManager.AddImprovement(hex.currentImprovement);
                    }
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Saves the current terrain to a file. <see cref="WorldManager.SaveMap"/> is a wrapper for this method, both are congruent.
        /// </summary>
        /// <param name="name">Name of the file</param>
        /// <example>
        /// The following code saves the terrain to a file called <b>terrainSave</b>.
        /// <code>
        /// class SaveTerrain : MonoBehaviour
        /// {
        ///    void Start()
        ///    {
        ///        CivGridFileUtility.SaveTerrain("terrainSave");
        ///    }
        /// }
        /// </code>
        /// <remarks>
        /// <see cref="WorldManager"/> must be in the scene and currently have a world in memory. Method will return errors if a WorldManager
        /// is not currently in the scene or if it doesn't have a world currently loaded into memory.
        /// </remarks>
        /// </example>
        public static void SaveTerrain(string name)
        {
            WorldManager worldManager = GameObject.FindObjectOfType <WorldManager>();

            if (worldManager == null)
            {
                Debug.LogError("WorldManager not found while attempting to save the game. \n Game save failed. ");
                return;
            }

            System.Text.StringBuilder assetPrefix = new System.Text.StringBuilder(Application.dataPath);
            assetPrefix.Remove((assetPrefix.Length - 6), 6);

            using (XmlWriter writer = XmlWriter.Create(name + ".xml"))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("Root");

                #region WorldManager
                writer.WriteStartElement("WorldManager");

                writer.WriteAttributeString("useCivGridCamera", XmlConvert.ToString(worldManager.useCivGridCamera));
                writer.WriteAttributeString("usePresetWorldValue", XmlConvert.ToString(worldManager.useWorldTypeValues));
                writer.WriteAttributeString("worldType", ((int)worldManager.worldType).ToString());
                writer.WriteAttributeString("mapSizeX", worldManager.mapSize.x.ToString());
                writer.WriteAttributeString("mapSizeY", worldManager.mapSize.y.ToString());
                writer.WriteAttributeString("chunkSize", worldManager.chunkSize.ToString());
                writer.WriteAttributeString("hexRadiusSize", worldManager.hexRadiusSize.ToString());


                FileUtility.SaveTexture(worldManager.mountainHeightMap, "Base_Mountain_Map", false);

                writer.WriteEndElement();
                #endregion

                #region VoidedManagers

                /*
                 #region TileManager
                 *
                 * TileManager tileManager = worldManager.tileManager;
                 *
                 * writer.WriteStartElement("TileManager");
                 *
                 * writer.WriteStartElement("Tiles");
                 * for (int i = 0; i < tileManager.tiles.Count; i++)
                 * {
                 *  writer.WriteStartElement("NewTile");
                 *
                 *  writer.WriteAttributeString("name", tileManager.tiles[i].name);
                 *  writer.WriteAttributeString("bottomLongitude", XmlConvert.ToString(tileManager.tiles[i].bottomLongitude));
                 *  writer.WriteAttributeString("topLongitude", XmlConvert.ToString(tileManager.tiles[i].topLongitude));
                 *  writer.WriteAttributeString("isShore", XmlConvert.ToString(tileManager.tiles[i].isShore));
                 *  writer.WriteAttributeString("isOcean", XmlConvert.ToString(tileManager.tiles[i].isOcean));
                 *  writer.WriteAttributeString("isMountain", XmlConvert.ToString(tileManager.tiles[i].isMountain));
                 *
                 *  writer.WriteEndElement();
                 * }
                 * writer.WriteEndElement();
                 *
                 * writer.WriteEndElement();
                 *
                 #endregion
                 *
                 #region ResourceManager
                 *
                 * ResourceManager resourceManager = worldManager.resourceManager;
                 *
                 * writer.WriteStartElement("ResourceManager");
                 *
                 *  writer.WriteStartElement("Resources");
                 *      for (int i = 1; i < resourceManager.resources.Count; i++)
                 *      {
                 *          writer.WriteStartElement("NewResource");
                 *
                 *              writer.WriteAttributeString("name", resourceManager.resources[i].name);
                 *              writer.WriteAttributeString("rarity", resourceManager.resources[i].rarity.ToString());
                 *              writer.WriteAttributeString("spawnAmount", resourceManager.resources[i].spawnAmount.ToString());
                 *              writer.WriteAttributeString("meshToSpawn", (AssetDatabase.GetAssetPath(resourceManager.resources[i].meshToSpawn)));
                 *              writer.WriteAttributeString("meshTexture", (AssetDatabase.GetAssetPath(resourceManager.resources[i].meshTexture)));
                 *              writer.WriteAttributeString("replaceGroundTexture", XmlConvert.ToString(resourceManager.resources[i].replaceGroundTexture));
                 *
                 *              writer.WriteAttributeString("numOfPossibleTiles", resourceManager.resources[i].rule.possibleTiles.Length.ToString());
                 *
                 *              for (int y = 0; y < resourceManager.resources[i].rule.possibleTiles.Length; y++)
                 *              {
                 *                  writer.WriteAttributeString("possibleTile" + y, resourceManager.resources[i].rule.possibleTiles[y].ToString());
                 *              }
                 *
                 *              writer.WriteAttributeString("numOfPossibleFeatures", resourceManager.resources[i].rule.possibleFeatures.Length.ToString());
                 *
                 *              for (int y = 0; y < resourceManager.resources[i].rule.possibleFeatures.Length; y++)
                 *              {
                 *                  writer.WriteAttributeString("possibleFeature" + y, resourceManager.resources[i].rule.possibleFeatures[y].ToString());
                 *              }
                 *
                 *          writer.WriteEndElement();
                 *      }
                 *  writer.WriteEndElement();
                 *
                 * writer.WriteEndElement();
                 *
                 #endregion
                 *
                 #region ImprovementManager
                 *
                 * ImprovementManager improvementManager = worldManager.improvementManager;
                 *
                 * writer.WriteStartElement("ImprovementManager");
                 *
                 * writer.WriteElementString("improvementCount", improvementManager.searalizableImprovements.Count.ToString());
                 *
                 * writer.WriteStartElement("Improvements");
                 * for (int i = 1; i < improvementManager.searalizableImprovements.Count; i++)
                 * {
                 *  writer.WriteStartElement("Improvement");
                 *
                 *  writer.WriteElementString("name", improvementManager.searalizableImprovements[i].name);
                 *  writer.WriteElementString("meshToSpawn", (assetPrefix.ToString() + AssetDatabase.GetAssetPath(improvementManager.searalizableImprovements[i].meshToSpawn)));
                 *  writer.WriteElementString("meshTexture", (assetPrefix.ToString() + AssetDatabase.GetAssetPath(improvementManager.searalizableImprovements[i].meshTexture)));
                 *  writer.WriteElementString("replaceGroundTexture", improvementManager.searalizableImprovements[i].replaceGroundTexture.ToString());
                 *
                 *  writer.WriteStartElement("ImprovementRule");
                 *
                 *  writer.WriteStartElement("PossibleTiles");
                 *  for (int y = 0; y < improvementManager.searalizableImprovements[i].rule.possibleTiles.Length; y++)
                 *  {
                 *      writer.WriteStartElement("Tile");
                 *      writer.WriteElementString("tile", improvementManager.searalizableImprovements[i].rule.possibleTiles[i].ToString());
                 *      writer.WriteEndElement();
                 *  }
                 *  writer.WriteEndElement();
                 *
                 *  writer.WriteStartElement("PossibleFeatures");
                 *  for (int y = 0; y < improvementManager.searalizableImprovements[i].rule.possibleFeatures.Length; y++)
                 *  {
                 *      writer.WriteStartElement("Feature");
                 *      writer.WriteElementString("feature", improvementManager.searalizableImprovements[i].rule.possibleFeatures[i].ToString());
                 *      writer.WriteEndElement();
                 *  }
                 *  writer.WriteEndElement();
                 *
                 *  writer.WriteEndElement();
                 *
                 *  writer.WriteEndElement();
                 * }
                 * writer.WriteEndElement();
                 *
                 * writer.WriteEndElement();
                 *
                 #endregion
                 */

                #endregion

                #region Chunk
                for (int x = 0; x < worldManager.hexChunks.GetLength(0); x++)
                {
                    for (int y = 0; y < worldManager.hexChunks.GetLength(1); y++)
                    {
                        Chunk chunk = worldManager.hexChunks[x, y];

                        writer.WriteStartElement("Chunk");

                        writer.WriteAttributeString("xChunkLoc", XmlConvert.ToString(x));
                        writer.WriteAttributeString("yChunkLoc", XmlConvert.ToString(y));

                        for (int _x = 0; _x < chunk.hexArray.GetLength(0); _x++)
                        {
                            for (int _y = 0; _y < chunk.hexArray.GetLength(1); _y++)
                            {
                                Hex hex = chunk.hexArray[_x, _y];

                                #region Hex

                                writer.WriteStartElement("Hexagon");

                                writer.WriteAttributeString("xHexLoc", XmlConvert.ToString(_x));

                                writer.WriteAttributeString("yHexLoc", XmlConvert.ToString(_y));

                                writer.WriteAttributeString("xParentChunk", XmlConvert.ToString(x));

                                writer.WriteAttributeString("yParentChunk", XmlConvert.ToString(y));

                                //Texture Rect Location
                                writer.WriteAttributeString("rLeft", XmlConvert.ToString(hex.currentRectLocation.xMin));
                                writer.WriteAttributeString("rTop", XmlConvert.ToString(hex.currentRectLocation.yMin));
                                writer.WriteAttributeString("rWidth", XmlConvert.ToString(hex.currentRectLocation.width));
                                writer.WriteAttributeString("rHeight", XmlConvert.ToString(hex.currentRectLocation.height));

                                writer.WriteAttributeString("type", hex.terrainType.name);

                                writer.WriteAttributeString("feature", ((int)hex.terrainFeature).ToString());

                                writer.WriteAttributeString("resource", hex.currentResource.name);

                                writer.WriteAttributeString("improvement", hex.currentImprovement.name);

                                writer.WriteEndElement();

                                #endregion
                            }
                        }
                        writer.WriteEndElement();
                    }
                }
                #endregion

                #region CivGridCamera

                writer.WriteStartElement("CivGridCamera");

                //camera settings
                writer.WriteAttributeString("enableWrapping", XmlConvert.ToString(worldManager.civGridCamera.enableWrapping));
                writer.WriteAttributeString("cameraHeight", worldManager.civGridCamera.cameraHeight.ToString());
                writer.WriteAttributeString("cameraAngle", worldManager.civGridCamera.cameraAngle.ToString());
                writer.WriteAttributeString("cameraSpeed", worldManager.civGridCamera.cameraSpeed.ToString());

                writer.WriteEndElement();

                #endregion

                writer.WriteEndElement();
                writer.WriteEndDocument();
            }
        }
Ejemplo n.º 8
0
 void Start()
 {
     worldManager = GameObject.FindObjectOfType<WorldManager>();
 }
Ejemplo n.º 9
0
        void OnEnable()
        {
            this.title = "Terrain Manager";
            worldManager = GameObject.FindObjectOfType<WorldManager>();
            improvementManager = GameObject.FindObjectOfType<ImprovementManager>();
            resourceManager = GameObject.FindObjectOfType<ResourceManager>();
            tileManager = GameObject.FindObjectOfType<TileManager>();

            if (worldManager == null || improvementManager == null)
            {
                Debug.LogError("Need to have WorldManager and ImprovementManager in current scene");
            }

            int length = 0;

            foreach(Resource r in resourceManager.resources)
            {
                if (r.replaceGroundTexture == true) { length++; }
            }
            foreach(Improvement i in improvementManager.improvements)
            {
                if (i.replaceGroundTexture == true) { length++; }
            }
            length += tileManager.tileNames.Length;

            for (int i = 0; i < length; i++)
            {
                AddElement();
            }

                tileManager.UpdateTileNames();
            resourceManager.UpdateResourceNames();
            improvementManager.UpdateImprovementNames();

            start = true;
        }