118 lines
4.9 KiB
C#
118 lines
4.9 KiB
C#
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));
|
|
}
|
|
}
|
|
}
|
|
}
|