//this method is used to fetch and load data from the JSON text file public void loadPlayerDataFromFile() { if (File.Exists(Application.dataPath + "/Resources/SaveData/FloorTransitionData.txt")) { //fetching and creating references to players current scripts player_log = gameObject.GetComponent <Player_Log>(); characterStats = gameObject.GetComponent <CharacterStats>(); player_Inventory = gameObject.GetComponent <Player_Inventory>(); skillsManager = gameObject.GetComponent <SkillsManager>(); Data = (PlayerObjectData)ScriptableObject.CreateInstance("PlayerObjectData"); TextAsset jsonFile = Resources.Load("SaveData/FloorTransitionData") as TextAsset; JsonUtility.FromJsonOverwrite(jsonFile.text, Data); characterStats.loadData(Data); skillsManager.loadData(Data); player_log.loadData(Data); player_Inventory.loadData(Data); Debug.Log("Data Loaded from previous Floor"); } else { Debug.Log("Transition Save Data not found"); } }
public void savePlayerDataToFile() { //fetching and creating references to players current scripts player_log = gameObject.GetComponent <Player_Log>(); characterStats = gameObject.GetComponent <CharacterStats>(); player_Inventory = gameObject.GetComponent <Player_Inventory>(); skillsManager = gameObject.GetComponent <SkillsManager>(); //creating scriptable instance of the PlayerObjectData that will be saved as JSON Data = (PlayerObjectData)ScriptableObject.CreateInstance("PlayerObjectData"); //adding Data from different classes //adding Data from CharacterStats Data.saveCharacterStatData(characterStats.getStatBaseValue("HP"), characterStats.getCurrentHP(), characterStats.getStatBaseValue("Attack"), characterStats.getStatBaseValue("Defence"), characterStats.getStatBaseValue("Agility"), characterStats.CharacterLevel, characterStats.getExperiencePoints(), characterStats.Level_Experience_Required); //adding Data from inventory Data.saveInventoryItems(player_Inventory.getInventory()); //Adding Data from SkillManager Data.saveSkillManager(skillsManager.getAllPlayerSkills(), skillsManager.getSlot1Skill(), skillsManager.getSlot2Skill()); //Adding Data from Attacklog Data.savePlayerLog(player_log); //Saving instance to new file File.WriteAllText(Application.dataPath + "/Resources/SaveData/FloorTransitionData.txt", JsonUtility.ToJson(Data)); if (!transitionFloorInt.Equals(-1)) { SceneManager.LoadScene(transitionFloorInt, LoadSceneMode.Single); } }
public void setSafeLocation() { safeLocation = new PlayerObjectData { x = gameObject.transform.position.x, y = -3.9f, //gameObject.transform.position.y, clamp to floor z = gameObject.transform.position.z }; }
public override void setLoadData(object obj) { PlayerObjectData data = (PlayerObjectData)obj; gameObject.transform.position = new Vector3(data.x, data.y, data.z); gameObject.SetActive(data.enabled); //GetComponent<SpriteRenderer>().enabled = data.spriteRenderer; //Debug.Log("data.spriteRenderer:" + data.spriteRenderer); Debug.Log("load_" + data.x); }
//Methods for Player_Log public void loadData(PlayerObjectData playerObjectData) { attackLog.Clear(); attackLog.AddRange(playerObjectData.attackLog); //Loading individual counts totalSpirits = playerObjectData.totalSpirits; Debug.Log("Player Log Data Loaded"); }
void Awake() { safeLocation = new PlayerObjectData { x = gameObject.transform.position.x, y = gameObject.transform.position.y, z = gameObject.transform.position.z }; safeLocation.enabled = gameObject.activeSelf; //GetComponent<SpriteRenderer>().enabled; Debug.Log("start_" + safeLocation.x); }
//this will load the saved data after loading to a new floor public void loadData(PlayerObjectData playerObjectData) { HP.statBaseValue = playerObjectData.HPValue; currentHP = playerObjectData.currentHP; Attack.statBaseValue = playerObjectData.AttackValue; Defence.statBaseValue = playerObjectData.DefenceValue; Agility.statBaseValue = playerObjectData.AgilityValue; CharacterLevel = playerObjectData.CharacterLevel; Level_Experience_Required = playerObjectData.Level_Experience_Required; updateUIHPGauge(); Debug.Log("Character Stats Loaded"); }
//this method will load all the skill data from the playerObjectData public void loadData(PlayerObjectData playerObjectData) { playerSkills.Clear(); playerSkills.AddRange(playerObjectData.playerSkills); //checking if the saved skills are not null then fetch and equip if (!playerObjectData.activeSkill1.skillName.Equals("")) { setSkill1(playerObjectData.activeSkill1.skillName); } if (!playerObjectData.activeSkill2.skillName.Equals("")) { setSkill2(playerObjectData.activeSkill2.skillName); } Debug.Log("Skill Manager Loaded"); }