Beispiel #1
0
    /// Se quiser melhorar no futuro: Fazer esse código ser private, e chamá-lo de outro lugar
    public void DeletePlayer(int slot)
    {
        string stringSlot = (slot.ToString() + ".json");

        System.IO.File.Delete(System.IO.Path.Combine(dataPath, stringSlot));
        //Debug.Log(SaveManager.selectedSlot);
        SlotsListManager.ReturnSlot(selectedSlot);
    }
Beispiel #2
0
    /*
     * public void Update()
     * {
     *  //Debug.Log(player.slot);
     * }
     */
    #region Create & Save & Load que será chamada

    public void CreateNewPlayer()///Modificar de acordo com sua primeira tela de save
    {
        Player newPlayer = new Player();

        player = newPlayer;
        SpecificFromGame();
        player.SetSlot(SlotsListManager.SlotGiver(list));
    }
Beispiel #3
0
    /*
     * public void Update()
     * {
     *  //Debug.Log(player.slot);
     * }
     */
    #region Create & Save & Load que será chamada

    public void CreateNewPlayer()///Modificar de acordo com sua primeira tela de save
    {
        //List<Flag> flagTemp = this.player.flag;
        Player newPlayer = new Player();

        player = newPlayer;
        SpecificFromGame();
        player.slot = SlotsListManager.SlotGiver(list);
    }
Beispiel #4
0
    void Start()
    {
        // Caminho padrão do local de save
        dataPath = SaveManager.dataPath;

        // Usado para contar quantos slots de save estão sendo usados
        int slotsUsados = SaveManager.slotsListSize;

        // Percorre todos os possíveis save slots
        for (int i = 0; i < SaveManager.slotsListSize; i++)
        {
            // Verifica se o slot está sendo usado (não está na lista)
            if (System.IO.File.Exists(dataPath + "/listaDeSlots.json") && !SlotsListManager.CheckSameNumber(i, SaveManager.list))
            {
                // Instancia o botão
                loadSlotButton = Instantiate(loadSlotButton, transform);
                // Carrega o player para obter o nome
                SaveManager.Load(i);
                // Coloca as informações do save no botão de load
                loadSlotButton.transform.GetChild(0).GetComponent <Text>().text = " " + SaveManager.player.nome + "\n Idade: " + SaveManager.player.idade + " Série: " + SaveManager.player.serie;
                loadSlotButton.transform.GetChild(3).GetComponent <Text>().text = "x" + SaveManager.player.totalEstrelas;
                //loadSlotButton.GetComponentInChildren<Text>().text =  " "+SaveManager.player.nome +  " Idade: " +SaveManager.player.idade + " Série: "+SaveManager.player.serie;
                loadSlotButton.GetComponentInChildren <UnityEngine.UI.Button>().interactable = true;
                // Carrega a imagem do avatar para colocar no botão
                Sprite avatar = itensinfoList.avatarsToSell[SaveManager.player.avatarSelecionadoIndex].itemSprite;
                // Encontra a imagem do botão e muda para o avatar selecionado
                GameObject buttonImage = loadSlotButton.transform.GetChild(1).gameObject;
                buttonImage.GetComponent <Image>().sprite = avatar;

                // Se o slot está sendo usado, adiciona no contador
                slotsUsados--;
            }
            #region Opção de deixar todos os slots vísiveis, bloqueando os não utilizados

            /*
             * else
             * {
             *  // Opção de deixar visível todos os slots, mas bloqueando os que não possuem save
             *  // Podemos colocar a criação do botão dentro do if e só aparece se existir save
             *  loadSlotButton.GetComponentInChildren<Text>().text = "  Load Slot " + i + "\n  Vazio";
             *  // Desabilita o botão e remove a imagem do avatar
             *  loadSlotButton.GetComponent<UnityEngine.UI.Button>().interactable = false;
             *  loadSlotButton.transform.GetChild(1).gameObject.SetActive(false);
             * }*/
            #endregion
        }

        // Mostra quantos espaços de save estão livres do total
        GameObject.Find("Slots Livres").GetComponent <Text>().text = "Espaços Livres: " + slotsUsados.ToString() + "/" + SaveManager.slotsListSize;
    }
Beispiel #5
0
    public void CreateNewPlayer()
    {
        // Inicialização dos parametros básicos da classe Player no player do SaveManager
        SaveManager.player = newPlayer;
        //SaveManager.player.sistemaLiberado = newPlayer.sistemaLiberado;
        //SaveManager.player.avatarBloqueado = newPlayer.avatarBloqueado;
        //SaveManager.player.avatarSelecionadoIndex = newPlayer.avatarSelecionadoIndex;

        SaveManager.player.nome = GameObject.Find("NomeText").GetComponent <Text>().text;
        int.TryParse(GameObject.Find("IdadeText").GetComponent <Text>().text, out SaveManager.player.idade);
        int.TryParse(GameObject.Find("SerieText").GetComponent <Text>().text, out SaveManager.player.serie);
        SaveManager.player.slot = SlotsListManager.SlotGiver(SaveManager.list);
        SaveManager.player.CriarPontuacaoInicial();
    }
Beispiel #6
0
    public void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (this != instance)
        {
            Destroy(gameObject);
        }
        DontDestroyOnLoad(gameObject);

        dataPath      = Application.persistentDataPath;
        slotsDataPath = System.IO.Path.Combine(dataPath, "listaDeSlots.json");
        list          = SlotsListManager.StartList(slotsDataPath);
    }
Beispiel #7
0
    /// <summary>
    /// Recebe o caminho e salva os dados do Player que está no SaveManager.player
    /// </summary>
    /// <param name="path"></param>
    private void SavePlayerData(string path)
    {
        if (player.slot == -1) //O número -1 é dado caso não haja mais espaços livres para salvar o jogo.
        {
            Debug.Log("Não foi possível criar um save");
        }

        else
        {
            SlotsListManager.RetiraKey(player.slot);
            string json = JsonUtility.ToJson(player);

            StreamWriter sw = File.CreateText(path);
            sw.Close();

            File.WriteAllText(path, json);
        }
    }
    /// <summary>
    /// Verifica se há o arquivo das lista de slots na pasta destino, caso não exista, cria um de acordo com o tamanho definido no slotsListSize.
    /// </summary>
    /// <param name="path"></param>
    /// <returns>Retorna a lista de slots que será utilizada</returns>
    public static SlotsList StartList(string path)
    {
        SlotsList list = new SlotsList();

        if (System.IO.File.Exists(path))
        {
            list = SlotsListManager.LoadSlotsList(path);
            return(list);
        }

        else
        {
            for (int i = 0; i < SaveManager.slotsListSize; i++)
            {
                list.slotsList.Add(i);
            }

            SaveSlotsList(path, list);

            return(list);
        }
    }
Beispiel #9
0
 public void Awake()
 {
     dataPath      = Application.persistentDataPath;
     slotsDataPath = System.IO.Path.Combine(dataPath, "listaDeSlots.json");
     list          = SlotsListManager.StartList(slotsDataPath);
 }
    /// <summary>
    /// Informa qual o slot selecionado para carregar (load)
    /// </summary>
    public void SlotSelected()
    {
        GridLayout gridLayout = transform.parent.GetComponent <GridLayout>();
        Vector3Int cellPos    = gridLayout.WorldToCell(transform.position);

        selectedSlotButton = PositionToIndex(cellPos);

        // Verifica de qual save é o slot selecionado
        int count = 0, i;

        for (i = 0; i < SaveManager.slotsListSize; i++)
        {
            if (System.IO.File.Exists(SaveManager.dataPath + "/listaDeSlots.json") && !SlotsListManager.CheckSameNumber(i, SaveManager.list))
            {
                if (count == selectedSlotButton)
                {
                    break;
                }
                else
                {
                    count++;
                }
            }
        }

        SaveManager.selectedSlot = i;
        //Debug.Log(selectedSlotButton + " " + i + " "+ SaveManager.player.slot);
        GameObject.Find("Confirma").GetComponent <UnityEngine.UI.Button>().interactable = true;
        GameObject.Find("Delete").GetComponent <UnityEngine.UI.Button>().interactable   = true;
    }