using System; using UnityEngine; public static class AquariumUtilities { public static Transform RecursiveFindChild(Transform parent, string childName) { foreach (Transform item in parent) { if (item.name == childName) { return item; } Transform transform2 = RecursiveFindChild(item, childName); if (transform2 != null) { return transform2; } } return null; } public static void TestLoad() { string currentProfilePrefix = GlobalSettings.Instance.saveManager.GetCurrentProfilePrefix(); using (ES2Reader reader = ES2Reader.Create(currentProfilePrefix)) { foreach (FishManager.FishDefinition fishDefinition in GlobalSettings.Instance.fishManager.fishDefinitions) { fishDefinition.weight = SaveManager.Read(reader, fishDefinition.species.ToString() + "_weight", 0f); fishDefinition.length = SaveManager.Read(reader, fishDefinition.species.ToString() + "_length", 0f); fishDefinition.fishery = SaveManager.Read(reader, fishDefinition.species.ToString() + "_fishery", string.Empty); fishDefinition.caughtCount = SaveManager.Read(reader, fishDefinition.species.ToString() + "_caughtCount", 0); fishDefinition.caughtWeightSum = SaveManager.Read(reader, fishDefinition.species.ToString() + "_caughtWeightSum", 0f); if (fishDefinition.caughtCount > 0) { fishDefinition.weight = Mathf.Clamp(fishDefinition.weight, fishDefinition.fishPrefab.WeightMinMax.x, fishDefinition.fishPrefab.WeightMinMax.y); fishDefinition.length = Mathf.Clamp(fishDefinition.length, fishDefinition.fishPrefab.LengthMinMax.x, fishDefinition.fishPrefab.LengthMinMax.y); } else { fishDefinition.weight = 0f; fishDefinition.length = 0f; } } GlobalSettings.Instance.fishManager.fishKeptCount = SaveManager.Read(reader, "fishKept_count", 0); for (int i = 0; i < GlobalSettings.Instance.fishManager.fishKeptCount; i++) { float length = SaveManager.Read(reader, "fishKept_length_" + i, 0f); float weight = SaveManager.Read(reader, "fishKept_weight_" + i, 0f); Fish.Species species = (Fish.Species)SaveManager.Read(reader, "fishKept_species_" + i, 0); string fishery = SaveManager.Read(reader, "fishKept_fishery_" + i, string.Empty); int aquarium = SaveManager.Read(reader, "fishKept_aquarium_" + i, -1); FishManager.FishKept item = new FishManager.FishKept(species, weight, length, fishery, aquarium); GlobalSettings.Instance.fishManager.fishKeep.Add(item); } GlobalSettings.Instance.fishManager.aquariumsCount = SaveManager.Read(reader, "aquariums_count", 0); for (int j = 0; j < GlobalSettings.Instance.fishManager.aquariumsCount; j++) { FishManager.AquariumData aquariumData = new FishManager.AquariumData(); aquariumData.id = SaveManager.Read(reader, "aquarium_id_" + j, -1); aquariumData.name = SaveManager.Read(reader, "aquarium_name_" + j, string.Empty); aquariumData.waterType = SaveManager.Read(reader, "aquarium_water_" + j, -1); aquariumData.enviroPreset = SaveManager.Read(reader, "aquarium_enviro_" + j, -1); FishManager.AquariumData item2 = aquariumData; GlobalSettings.Instance.fishManager.aquariums.Add(item2); } } } public static void AddEachSpecie(int count, float sizeRatio) { bool flag = sizeRatio < 0f; foreach (Fish.Species value in Enum.GetValues(typeof(Fish.Species))) { for (int i = 0; i < count; i++) { Fish.Species species2 = value; FishManager.FishDefinition fishDefinition = GlobalSettings.Instance.fishManager.GetFishDefinition(species2); if (fishDefinition != null) { if (flag) { sizeRatio = UnityEngine.Random.Range(0f, 1f); } float length = Mathf.Lerp(fishDefinition.fishPrefab.LengthMinMax.x, fishDefinition.fishPrefab.LengthMinMax.y, sizeRatio); float weight = Mathf.Lerp(fishDefinition.fishPrefab.WeightMinMax.x, fishDefinition.fishPrefab.WeightMinMax.y, sizeRatio); string fishery = "TestFishery"; int aquarium = -1; GlobalSettings.Instance.fishManager.fishKeep.Add(new FishManager.FishKept(species2, weight, length, fishery, aquarium)); } } } } public static void RemoveAllFish() { GlobalSettings.Instance.fishManager.fishKeep.Clear(); } public static void AddTestFish(int count) { for (int i = 0; i < count; i++) { Fish.Species species = (Fish.Species)UnityEngine.Random.Range(0, Enum.GetValues(typeof(Fish.Species)).Length); FishManager.FishDefinition fishDefinition = GlobalSettings.Instance.fishManager.GetFishDefinition(species); if (fishDefinition != null) { float length = UnityEngine.Random.Range(fishDefinition.fishPrefab.LengthMinMax.x, fishDefinition.fishPrefab.LengthMinMax.y); float weight = UnityEngine.Random.Range(fishDefinition.fishPrefab.WeightMinMax.x, fishDefinition.fishPrefab.WeightMinMax.y); string fishery = "TestFishery"; int aquarium = -1; GlobalSettings.Instance.fishManager.fishKeep.Add(new FishManager.FishKept(species, weight, length, fishery, aquarium)); } } } }