void loadMapFromXml()
    {
        MapXmlContainer container = MapSaveLoad.Load("map.xml");

        mapSizeX = container.sizeX;
        mapSizeY = container.sizeY;

        //initially remove all children
        for (int i = 0; i < mapTransform.childCount; i++)
        {
            Destroy(mapTransform.GetChild(i).gameObject);
        }

        map = new List <List <Tile> >();
        for (int i = 0; i < mapSizeX; i++)
        {
            List <Tile> row = new List <Tile>();
            for (int j = 0; j < mapSizeY; j++)
            {
                Tile tile = ((GameObject)Instantiate(PrefabHolder.instance.BASE_TILE_PREFAB, new Vector3(i - Mathf.Floor(mapSizeX / 2), 0, -j + Mathf.Floor(mapSizeY / 2)), Quaternion.Euler(new Vector3()))).GetComponent <Tile>();
                tile.transform.parent = mapTransform;
                tile.gridPosition     = new Vector2(i, j);
                tile.setType((TileType)container.tiles.Where(x => x.locX == i && x.locY == j).First().id);
                row.Add(tile);
            }
            map.Add(row);
        }
    }
예제 #2
0
 public static void Save(MapXmlContainer mapContainer, string filename)
 {
     var serializer = new XmlSerializer(typeof(MapXmlContainer));
     using(var stream = new FileStream(filename, FileMode.Create))
     {
         serializer.Serialize(stream, mapContainer);
     }
 }
    public static void Save(MapXmlContainer mapContainer, string filename)
    {
        var serializer = new XmlSerializer(typeof(MapXmlContainer));

        using (var stream = new FileStream(filename, FileMode.Create)) {
            serializer.Serialize(stream, mapContainer);
        }
    }
예제 #4
0
    public static void Save(MapXmlContainer mapContainer, string filename)
    {
        var serializer = new XmlSerializer(typeof(MapXmlContainer));

        using (var stream = new FileStream(filename, FileMode.Create))
        {
            var xmlWriter = new XmlTextWriter(stream, Encoding.UTF8);
            serializer.Serialize(xmlWriter, mapContainer);
        }
    }
예제 #5
0
    public static MapXmlContainer LoadMapDataFromResources(string filename)
    {
        var             serializer  = new XmlSerializer(typeof(MapXmlContainer));
        TextAsset       textAsset   = (TextAsset)Resources.Load(filename, typeof(TextAsset));
        MemoryStream    assetStream = new MemoryStream(textAsset.bytes);
        MapXmlContainer container   = serializer.Deserialize(assetStream) as MapXmlContainer;

        assetStream.Close();
        return(container);
    }
예제 #6
0
    public static void Save(MapXmlContainer mapContainer, string filename)
    {
        var    serializer = new XmlSerializer(typeof(MapXmlContainer));
        string qualMundo  = Regex.Match(filename, @"\d+").Value;
        int    world      = Int32.Parse(qualMundo);

        filename = Application.dataPath + "/Resources/XML/Mapas/World" + world + "/" + filename;
        using (var stream = new FileStream(filename, FileMode.Create)){
            serializer.Serialize(stream, mapContainer);
        }
    }
예제 #7
0
    public static void SaveMapData(List <Tile> map, string filename)
    {
        MapXmlContainer mapContainer = SaveLoad.CreateMapContainer(map);
        var             serializer   = new XmlSerializer(typeof(MapXmlContainer));
        var             encoding     = Encoding.GetEncoding("UTF-8");

        using (var stream = new StreamWriter(filename, false, encoding))
        {
            serializer.Serialize(stream, mapContainer);
        }
    }
예제 #8
0
    public void loadMapFromXml(string nome)
    {
        MapXmlContainer container = MapSaveLoad.MapBuildLoad(nome + ".xml");

        colunas = container.coluns;
        linhas  = container.lines;

        destruirTabuleiroAtual();

        for (int i = 0; i < colunas; i++)
        {
            List <Tile> row = new List <Tile>();
            for (int j = 0; j < linhas; j++)
            {
                Tile tile = ((GameObject)Instantiate(tilePrefab, new Vector3(i - Mathf.Floor(linhas / 2), 0, -j + Mathf.Floor(colunas / 2)), Quaternion.Euler(new Vector3()))).GetComponent <Tile>();
                tile.transform.parent   = mapHolder.transform;
                tile.noConstrutor       = true;
                tile.posicaoNoTabuleiro = new Vector2(i, j);
                tile.setarTipoeVisual((TileType)container.tiles.Where(x => x.locX == i && x.locY == j).First().id);
                tile.setarMecanicaeVisual((TileMechanic)container.tiles.Where(x => x.locX == i && x.locY == j).First().mechanic);
                row.Add(tile);
            }
            tabuleiro.Add(row);
        }
        foreach (UnidadeXml uXML in container.unidadesNoTabuleiro)
        {
            UnidadeNoTabuleiro unidadeNova = ((GameObject)Instantiate(unidadePrefab, tabuleiro[uXML.locX][uXML.locY].transform.position + 1 * Vector3.up, Quaternion.Euler(new Vector3(90, 0, 0)))).GetComponent <UnidadeNoTabuleiro>();
            unidadeNova.gridPosition     = new Vector2(uXML.locX, uXML.locY);
            unidadeNova.unidadeAssociada = BancoDeDados.instancia.retornarUnidade(uXML.id);
            unidadeNova.gameObject.GetComponent <Animator>().runtimeAnimatorController = controladoresInimigos[(int)unidadeNova.unidadeAssociada.classe];
            //Aqui so entrarão unidades que vão estar contra você no jogo, então sempre serão inimigos
            unidadeNova.inimigo = true;
            tabuleiro[uXML.locX][uXML.locY].ocupado = true;
            unidadesNoTabuleiro.Add(unidadeNova);
        }
        configurarCameraParaNovoTabuleiro(tabuleiro);
    }
예제 #9
0
    public static void LoadMap(List <Tile> map, GameObject mapObject)
    {
        //MapXmlContainer loadData = SaveLoad.LoadMapData(Path.Combine(Application.dataPath, @"Resources\" + "Maps.Xml")); //For Window
        MapXmlContainer loadData       = SaveLoad.LoadMapData(Path.Combine(Application.dataPath, @"Resources/" + "Maps.Xml"));
        int             subSpriteCount = 0;

        for (int i = 0; i < loadData.tiles.Count; i++)
        {
            TileXml data = loadData.tiles[i];
            Tile    tile = ((GameObject)Transform.Instantiate(PrefabHolder.Instance.Tile)).GetComponent <Tile>();
            tile.tileId             = i;
            tile.rowNb              = data.rowNb;
            tile.colNb              = data.colNb;
            tile.transform.position = new Vector3(data.locX / 10.0f, data.locY / 10.0f, tile.rowNb * 1 - tile.colNb * 0.1f);
            tile.hasSubSprite       = data.hasSub == 1;
            tile.height             = data.height;
            tile.transform.parent   = mapObject.transform;

            if (tile.hasSubSprite)
            {
                //tile.transform.GetChild (0).gameObject.SetActive (true);
                tile.GetComponent <SpriteRenderer>().sprite = AssetHolder.Instance.Map2SubSprite[subSpriteCount];
                subSpriteCount++;
            }

            map.Add(tile);
        }
        for (int i = 0; i < loadData.tiles.Count; i++)
        {
            Tile    tile = map[i];
            TileXml data = loadData.tiles[i];
            tile.neighbours[0] = data.neighbor0 != -9 ? map[data.neighbor0] : null;
            tile.neighbours[1] = data.neighbor1 != -9 ? map[data.neighbor1] : null;
            tile.neighbours[2] = data.neighbor2 != -9 ? map[data.neighbor2] : null;
            tile.neighbours[3] = data.neighbor3 != -9 ? map[data.neighbor3] : null;
        }
    }