public void SaveCreatures() { //Debug.Log("SAVING CREATURES"); string filePath = Application.persistentDataPath + fileName; //string filePath = fileName; //Debug.Log(filePath); if (File.Exists(filePath)) { JsonCreatures jsonCreatures = new JsonCreatures() { names = new string[creaturesInWorld.Count], types = new string[creaturesInWorld.Count], worldIds = new int[creaturesInWorld.Count], happiness = new float[creaturesInWorld.Count], sizes = new float[creaturesInWorld.Count], stars = new int[creaturesInWorld.Count], intelligenceRank = new string[creaturesInWorld.Count], intelligenceLevel = new int[creaturesInWorld.Count], intelligenceUpgradePoints = new int[creaturesInWorld.Count], intelligenceScore = new int[creaturesInWorld.Count], agilityRank = new string[creaturesInWorld.Count], agilityLevel = new int[creaturesInWorld.Count], agilityUpgradePoints = new int[creaturesInWorld.Count], agilityScore = new int[creaturesInWorld.Count], strengthRank = new string[creaturesInWorld.Count], strengthLevel = new int[creaturesInWorld.Count], strengthUpgradePoints = new int[creaturesInWorld.Count], strengthScore = new int[creaturesInWorld.Count], styleRank = new string[creaturesInWorld.Count], styleLevel = new int[creaturesInWorld.Count], styleUpgradePoints = new int[creaturesInWorld.Count], styleScore = new int[creaturesInWorld.Count], staminaRank = new string[creaturesInWorld.Count], staminaLevel = new int[creaturesInWorld.Count], staminaUpgradePoints = new int[creaturesInWorld.Count], staminaScore = new int[creaturesInWorld.Count], }; int i = 0; foreach (var creature in creaturesInWorld) { CreatureScript CS = creature.GetComponent <CreatureScript>(); jsonCreatures.names[i] = CS.name; jsonCreatures.happiness[i] = CS.happiness; jsonCreatures.sizes[i] = CS.size; jsonCreatures.types[i] = CS.type; jsonCreatures.worldIds[i] = creature.transform.parent.GetComponent <IslandScript>().islandID; jsonCreatures.stars[i] = CS.Stars; jsonCreatures.intelligenceRank[i] = CS.Intelligence.rank.name; jsonCreatures.intelligenceLevel[i] = CS.Intelligence.level; jsonCreatures.intelligenceUpgradePoints[i] = CS.Intelligence.upgradePoints; jsonCreatures.intelligenceScore[i] = CS.Intelligence.amt; jsonCreatures.agilityRank[i] = CS.Agility.rank.name; jsonCreatures.agilityLevel[i] = CS.Agility.level; jsonCreatures.agilityUpgradePoints[i] = CS.Agility.upgradePoints; jsonCreatures.agilityScore[i] = CS.Agility.amt; jsonCreatures.strengthRank[i] = CS.Strength.rank.name; jsonCreatures.strengthLevel[i] = CS.Strength.level; jsonCreatures.strengthUpgradePoints[i] = CS.Strength.upgradePoints; jsonCreatures.strengthScore[i] = CS.Strength.amt; jsonCreatures.styleRank[i] = CS.Style.rank.name; jsonCreatures.styleLevel[i] = CS.Style.level; jsonCreatures.styleUpgradePoints[i] = CS.Style.upgradePoints; jsonCreatures.styleScore[i] = CS.Style.amt; jsonCreatures.staminaRank[i] = CS.Stamina.rank.name; jsonCreatures.staminaLevel[i] = CS.Stamina.level; jsonCreatures.staminaUpgradePoints[i] = CS.Stamina.upgradePoints; jsonCreatures.staminaScore[i] = CS.Stamina.amt; i++; } string dataAsJson = JsonUtility.ToJson(jsonCreatures); File.WriteAllText(filePath, dataAsJson); //Debug.Log("Saved creatures"); } else { File.Create(filePath).Dispose(); SaveCreatures(); } }
void LoadCreatures() { //Debug.Log("LOADING CREATURES"); string filePath = Application.persistentDataPath + fileName; //string filePath = fileName; if (File.Exists(filePath)) { string dataAsJson = File.ReadAllText(filePath); JsonCreatures jsonCreatures = JsonUtility.FromJson <JsonCreatures>(dataAsJson); //Debug.Log(jsonCreatures.types[0]); for (int i = 0; i < jsonCreatures.names.Length; i++) { GameObject newCreature = Instantiate( FindCreature(jsonCreatures.types[i]), new Vector3(Random.Range(spawnBounds.x, spawnBounds.y), 0.5f, nextSpawnDepth) + WorldManager.Instance.islands[jsonCreatures.worldIds[i]].transform.position, Quaternion.identity, WorldManager.Instance.islands[jsonCreatures.worldIds[i]].transform ); nextSpawnDepth -= 0.05f; creaturesInWorld.Add(newCreature); WorldManager.Instance.islands[jsonCreatures.worldIds[i]].GetComponent <IslandScript>().currentCreaturePopulation++; SavedIntelligence intelligence = new SavedIntelligence() { rank = jsonCreatures.intelligenceRank[i], level = jsonCreatures.intelligenceLevel[i], upgradePoints = jsonCreatures.intelligenceUpgradePoints[i], score = jsonCreatures.intelligenceScore[i] }; SavedAgility agility = new SavedAgility() { rank = jsonCreatures.agilityRank[i], level = jsonCreatures.agilityLevel[i], upgradePoints = jsonCreatures.agilityUpgradePoints[i], score = jsonCreatures.agilityScore[i] }; SavedStrength strength = new SavedStrength() { rank = jsonCreatures.strengthRank[i], level = jsonCreatures.strengthLevel[i], upgradePoints = jsonCreatures.strengthUpgradePoints[i], score = jsonCreatures.strengthScore[i] }; SavedStyle style = new SavedStyle() { rank = jsonCreatures.styleRank[i], level = jsonCreatures.styleLevel[i], upgradePoints = jsonCreatures.styleUpgradePoints[i], score = jsonCreatures.styleScore[i] }; SavedStamina stamina = new SavedStamina() { rank = jsonCreatures.staminaRank[i], level = jsonCreatures.staminaLevel[i], upgradePoints = jsonCreatures.staminaUpgradePoints[i], score = jsonCreatures.staminaScore[i] }; newCreature.GetComponent <CreatureScript>().SetUpCreature( jsonCreatures.names[i], jsonCreatures.happiness[i], jsonCreatures.sizes[i], jsonCreatures.stars[i], intelligence, agility, strength, style, stamina ); } //Debug.Log("Loaded creatures"); } else { SaveCreatures(); } }