Example #1
0
    /**
     * <summary>
     * Generate grids
     * </summary>
     *
     * <param name="initialPoint"/>
     * <param name="finalPoint"/>
     *
     * <returns>
     *  void
     * </returns>
     */
    public void GenerateGrids(Vector3 initialPoint, Vector3 finalPoint)
    {
        for (float x = initialPoint.x; x < finalPoint.x; x++)
        {
            int roundedX = Mathf.RoundToInt(x);
            MapBehaviour.Tiles[roundedX] = new Dictionary <int, Tile>();

            for (float z = finalPoint.z; z <= initialPoint.z; z++)
            {
                // Initializing key
                Tile tile = new Tile();

                int roundedZ = Mathf.RoundToInt(z);

                tile.SetPosition(new Vector3(roundedX, 0, roundedZ));
                MapBehaviour.Tiles[roundedX][roundedZ] = tile;
            }
        }
    }
    /**
     * <summary>
     * Generate Map
     * </summary>
     *
     * <returns>
     *  IEnumerator null
     * </returns>
     */
    public IEnumerator GenerateMap()
    {
        Time.timeScale = 2f;
        GameObject tiles = GameObject.Find("Tiles");

        // Clean before generate a new map
        this.Clear();

        //TileType[,] mapTiles = new TileType[,] { { TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, }, { TileType.Water, TileType.Water, TileType.Grass, TileType.Grass, TileType.Water, }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water, }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Water, TileType.Water, }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water, }, { TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, }, };
        TileType[,] mapTiles = new TileType[, ] {
            { TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Grass, TileType.Water }, { TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, TileType.Water, },
        };
        //Debug.Log(mapTiles[5, 0]);

        for (int x = 0; x < mapTiles.GetLength(0); x++)
        {
            Tiles[x] = new Dictionary <int, GameObject>();

            for (int z = 0; z < mapTiles.GetLength(1); z++)
            {
                //Tile tile = MapBehaviour.Tiles[x][z];

                Tile tile = new Tile();
                tile.SetPosition(new Vector3(x, 0, z));

                TileType type = mapTiles[x, z];

                GameObject tileGameObject = null;

                if (type == TileType.Water)
                {
                    tileGameObject = MonoBehaviour.Instantiate(
                        Resources.Load("Prefabs/Tiles/Water/Center Water Tile", typeof(GameObject))
                        ) as GameObject;

                    tile.SetType(TileType.Water);
                }
                else
                {
                    tileGameObject = MonoBehaviour.Instantiate(
                        Resources.Load("Prefabs/Tiles/Grass/Center Grass Tile", typeof(GameObject))
                        ) as GameObject;

                    tile.SetType(TileType.Grass);
                    this.grassTiles.Add(tileGameObject);
                }

                if (tileGameObject != null)
                {
                    TileBehaviour newTileBehaviour = tileGameObject.GetComponent <TileBehaviour>();
                    newTileBehaviour.SetTile(tile);

                    tileGameObject.transform.position = tile.GetPosition();
                    tileGameObject.transform.SetParent(tiles.transform);

                    Tiles[x][z] = tileGameObject;
                }

                yield return(null);
            }
            yield return(null);
        }

        // Set generated flag to true
        this.generated = true;

        this.SmoothGrassTiles();
        yield return(null);
    }