Files
2026-03-04 10:03:45 +08:00

436 lines
15 KiB
C#

using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class FishPediaManager : MonoBehaviour
{
[SerializeField]
private Image mainContentMaskImage;
[SerializeField]
private Camera mCamera;
[SerializeField]
private PlayerHeader playerHeader;
[SerializeField]
private Text sortText;
[SerializeField]
private Transform ButtonsContainer;
[SerializeField]
private Transform FishContentTransform;
[SerializeField]
private GameObject ButtonPrefab;
[SerializeField]
private GameObject FishPediaContentItem;
public InputField searchText;
private bool sortA;
public void SortButton()
{
bool flag = true;
GameManager.TruncateContainer(ButtonsContainer);
sortA = !sortA;
GameManager.GameFish[] array = SortAZ(sortA);
for (int i = 0; i < array.Length; i++)
{
if (array[i].isEnabled)
{
FishPediaButtonItem component = Object.Instantiate(ButtonPrefab, ButtonsContainer).GetComponent<FishPediaButtonItem>();
component.fishNameText.text = array[i].GetFishName();
component.fishSpecies = array[i].speciesName;
if (flag && i == 0)
{
string fishName = array[i].GetFishName();
GameManager.FishSpecies speciesName = array[i].speciesName;
component.GetComponent<Hover>().isSelected = true;
flag = false;
ShowFishContent(fishName, speciesName);
}
}
}
}
public void LiveSearchButtons()
{
if (SRDebug.Instance.IsDebugPanelVisible)
{
return;
}
GameManager.GameFish[] array = SortAZ(sortA);
if (searchText.text.Length < 2)
{
GameManager.TruncateContainer(ButtonsContainer);
array = SortAZ(sortA);
for (int i = 0; i < array.Length; i++)
{
if (array[i].isEnabled)
{
FishPediaButtonItem component = Object.Instantiate(ButtonPrefab, ButtonsContainer).GetComponent<FishPediaButtonItem>();
component.fishNameText.text = array[i].GetFishName();
component.fishSpecies = array[i].speciesName;
}
}
return;
}
GameManager.TruncateContainer(ButtonsContainer);
for (int j = 0; j < array.Length; j++)
{
if (array[j].isEnabled && array[j].GetFishName().ToUpper().Contains(searchText.text.ToUpper()))
{
FishPediaButtonItem component2 = Object.Instantiate(ButtonPrefab, ButtonsContainer).GetComponent<FishPediaButtonItem>();
component2.fishNameText.text = array[j].GetFishName();
component2.fishSpecies = array[j].speciesName;
}
}
}
private void OnEnable()
{
}
private GameManager.GameFish[] SortAZ(bool s)
{
GameManager.GameFish[] result;
if (s)
{
result = GameManager.Instance.gameFish.OrderBy((GameManager.GameFish o) => o.GetFishName()).ToArray();
sortText.text = "A-Z";
}
else
{
result = GameManager.Instance.gameFish.OrderByDescending((GameManager.GameFish o) => o.GetFishName()).ToArray();
sortText.text = "Z-A";
}
return result;
}
public void ShowFishContent(string fishName, GameManager.FishSpecies fishSpecies)
{
GameManager.TruncateContainer(FishContentTransform);
FishpediaContentItem component = Object.Instantiate(FishPediaContentItem, FishContentTransform).GetComponent<FishpediaContentItem>();
component.fishNameText.text = fishName.ToUpper();
component.DescriptionText.text = GetFishDescription(fishSpecies);
component.Show3D(fishSpecies);
}
private void Start()
{
if ((bool)FScriptsHandler.Instance)
{
playerHeader.gameObject.SetActive(value: true);
playerHeader.SetSelectedOptionBtn(4);
mainContentMaskImage.enabled = true;
FScriptsHandler.Instance.m_Canvas.gameObject.SetActive(value: false);
}
else if (Object.FindObjectOfType<Residence>() != null)
{
playerHeader.gameObject.SetActive(value: true);
mainContentMaskImage.enabled = true;
}
else
{
playerHeader.gameObject.SetActive(value: false);
mainContentMaskImage.enabled = false;
}
SortButton();
}
public string GetFishDescription(GameManager.FishSpecies speciesName)
{
string result = "Description missing";
switch (speciesName)
{
case GameManager.FishSpecies.BlackBullhead:
result = LanguageManager.Instance.GetText("BLACKBULLHEAD_DESCRIPTION");
break;
case GameManager.FishSpecies.Perch:
result = LanguageManager.Instance.GetText("PERCH_DESCRIPTION");
break;
case GameManager.FishSpecies.PerchYellow:
result = LanguageManager.Instance.GetText("YELLOW_PERCH_DESCRIPTION");
break;
case GameManager.FishSpecies.SalmonSockeye:
result = LanguageManager.Instance.GetText("SALMON_SOCKEYE_DESCRIPTION");
break;
case GameManager.FishSpecies.TroutRainbow:
result = LanguageManager.Instance.GetText("TROUT_RAINBOW_DESCRIPTION");
break;
case GameManager.FishSpecies.BassSmallmouth:
result = LanguageManager.Instance.GetText("BASS_SMALLMOUTH_DESCRIPTION");
break;
case GameManager.FishSpecies.CommonBream:
result = LanguageManager.Instance.GetText("COMMON_BREAM_DESCRIPTION");
break;
case GameManager.FishSpecies.Asp:
result = LanguageManager.Instance.GetText("ASP_DESCRIPTION");
break;
case GameManager.FishSpecies.CommonBarbel:
result = LanguageManager.Instance.GetText("COMMON_BARBEL_DESCRIPTION");
break;
case GameManager.FishSpecies.BreamSilver:
result = LanguageManager.Instance.GetText("SILVER_BREAM_DESCRIPTION");
break;
case GameManager.FishSpecies.Burbot:
result = LanguageManager.Instance.GetText("BURBOT_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpCommon:
result = LanguageManager.Instance.GetText("COMMON_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpCrucian:
result = LanguageManager.Instance.GetText("CRUCIAN_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpGrass:
result = LanguageManager.Instance.GetText("GRASS_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpMirror:
result = LanguageManager.Instance.GetText("MIRROR_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpPrussian:
result = LanguageManager.Instance.GetText("PRUSSIAN_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpSezan:
result = LanguageManager.Instance.GetText("SEZAN_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CarpSilver:
result = LanguageManager.Instance.GetText("SILVER_CARP_DESCRIPTION");
break;
case GameManager.FishSpecies.CatfishChannel:
result = LanguageManager.Instance.GetText("CHANNEL_CATFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.CatfishFlathead:
result = LanguageManager.Instance.GetText("FLATHEAD_CATFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.CatfishRedtail:
result = LanguageManager.Instance.GetText("REDTAIL_CATFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.CatfishWels:
result = LanguageManager.Instance.GetText("WELLS_CATFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.Chub:
result = LanguageManager.Instance.GetText("CHUB_DESCRIPTION");
break;
case GameManager.FishSpecies.EuropeanGrayling:
result = LanguageManager.Instance.GetText("EUROPEAN_GRAYLING_DESCRIPTION");
break;
case GameManager.FishSpecies.Ide:
result = LanguageManager.Instance.GetText("IDE_DESCRIPTION");
break;
case GameManager.FishSpecies.PickerelChain:
result = LanguageManager.Instance.GetText("CHAIN_PICKEREL_DESCRIPTION");
break;
case GameManager.FishSpecies.PickerelGrass:
result = LanguageManager.Instance.GetText("GRASS_PICKEREL_DESCRIPTION");
break;
case GameManager.FishSpecies.PickerelRedfin:
result = LanguageManager.Instance.GetText("REDFIN_PICKEREL_DESCRIPTION");
break;
case GameManager.FishSpecies.PikeAmur:
result = LanguageManager.Instance.GetText("AMUR_PIKE_DESCRIPTION");
break;
case GameManager.FishSpecies.PikeMuskellunge:
result = LanguageManager.Instance.GetText("MUSKELLUNGE_DESCRIPTION");
break;
case GameManager.FishSpecies.PikeNorthern:
result = LanguageManager.Instance.GetText("NORTHERN_PIKE_DESCRIPTION");
break;
case GameManager.FishSpecies.PikeSoutherm:
result = LanguageManager.Instance.GetText("SOUTHERN_PIKE_DESCRIPTION");
break;
case GameManager.FishSpecies.Roach:
result = LanguageManager.Instance.GetText("ROACH_DESCRIPTION");
break;
case GameManager.FishSpecies.Tench:
result = LanguageManager.Instance.GetText("TENCH_DESCRIPTION");
break;
case GameManager.FishSpecies.Zander:
result = LanguageManager.Instance.GetText("ZANDER_DESCRIPTION");
break;
case GameManager.FishSpecies.BassLargemouth:
result = LanguageManager.Instance.GetText("LARGEMOUNTH_BASS_DESCRIPTION");
break;
case GameManager.FishSpecies.Bluegill:
result = LanguageManager.Instance.GetText("BLURGILL_DESCRIPTION");
break;
case GameManager.FishSpecies.Pumpkinseed:
result = LanguageManager.Instance.GetText("PUMPKINSEED_DESCRIPTION");
break;
case GameManager.FishSpecies.AtlanticSalmon:
result = LanguageManager.Instance.GetText("ATLANTIC_SALMON_DESCRIPTION");
break;
case GameManager.FishSpecies.CommonBleak:
result = LanguageManager.Instance.GetText("BLEAK_COMMON_DESCRIPTION");
break;
case GameManager.FishSpecies.Huchen:
result = LanguageManager.Instance.GetText("HUCHEN_DESCRIPTION");
break;
case GameManager.FishSpecies.BrookTrout:
result = LanguageManager.Instance.GetText("BROOK_TROUT_DESCRIPTION");
break;
case GameManager.FishSpecies.BrownTrout:
result = LanguageManager.Instance.GetText("BROWN_TROUT_DESCRIPTION");
break;
case GameManager.FishSpecies.EuropeanBass:
result = LanguageManager.Instance.GetText("EUROPEAN_BASS_DESCRIPTION");
break;
case GameManager.FishSpecies.AtlanticCod:
result = LanguageManager.Instance.GetText("ATLANTIC_COD_DESCRIPTION");
break;
case GameManager.FishSpecies.CrocodileNeedlefish:
result = LanguageManager.Instance.GetText("CROCODILE_NEEDLEFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.EuropeanEel:
result = LanguageManager.Instance.GetText("EUROPEAN_EEL_DESCRIPTION");
break;
case GameManager.FishSpecies.EuropeanFlounder:
result = LanguageManager.Instance.GetText("EUROPEAN_FLOUNDER_DESCRIPTION");
break;
case GameManager.FishSpecies.Garfish:
result = LanguageManager.Instance.GetText("GARFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.EuropeanSeaSturgeon:
result = LanguageManager.Instance.GetText("COMMON_STURGEON_DESCRIPTION");
break;
case GameManager.FishSpecies.SeaTrout:
result = LanguageManager.Instance.GetText("SEA_TROUT_DESCRIPTION");
break;
case GameManager.FishSpecies.Beluga:
result = LanguageManager.Instance.GetText("BELUGA_STURGEON_DESCRIPTION");
break;
case GameManager.FishSpecies.BaikalBlackGrayling:
result = LanguageManager.Instance.GetText("BLACK_GRAILING_DESCRIPTION");
break;
case GameManager.FishSpecies.ChumSalmon:
result = LanguageManager.Instance.GetText("CHUM_SALMON_DESCRIPTION");
break;
case GameManager.FishSpecies.CohoSalmon:
result = LanguageManager.Instance.GetText("COHO_SALMON_DESCRIPTION");
break;
case GameManager.FishSpecies.PinkSalmon:
result = LanguageManager.Instance.GetText("PINK_SALMON_DESCRIPTION");
break;
case GameManager.FishSpecies.BarracudaGreat:
result = LanguageManager.Instance.GetText("GREAT_BARRACUDA_DESCRIPTION");
break;
case GameManager.FishSpecies.BarracudaYellowtail:
result = LanguageManager.Instance.GetText("YELOWTAIL_BARRACUDA_DESCRIPTION");
break;
case GameManager.FishSpecies.GrouperGiant:
result = LanguageManager.Instance.GetText("GIANT_GROUPER_DESCRIPTION");
break;
case GameManager.FishSpecies.GrouperMalabar:
result = LanguageManager.Instance.GetText("MALABAR_GROUPER_DESCRIPTION");
break;
case GameManager.FishSpecies.LionfishRed:
result = LanguageManager.Instance.GetText("RED_LIONFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.MahiMahi:
result = LanguageManager.Instance.GetText("MAHI_MAHI_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkBlacktipReef:
result = LanguageManager.Instance.GetText("BLACKTIP_REEF_SHARK_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkTiger:
result = LanguageManager.Instance.GetText("TIGER_SHARK_DESCRIPTION");
break;
case GameManager.FishSpecies.SnapperGrey:
result = LanguageManager.Instance.GetText("GREY_SNAPPER_DESCRIPTION");
break;
case GameManager.FishSpecies.TreadfishIndian:
result = LanguageManager.Instance.GetText("INDIAN_THREADFISH_DESCRIPTION");
break;
case GameManager.FishSpecies.TrevallyGiant:
result = LanguageManager.Instance.GetText("GIANT_TREVALLY_DESCRIPTION");
break;
case GameManager.FishSpecies.TunaYellowfin:
result = LanguageManager.Instance.GetText("YELLOWFIN_TUNA_DESCRIPTION");
break;
case GameManager.FishSpecies.ZombieBass:
result = LanguageManager.Instance.GetText("ZOMBIE_BASS_DESCRIPTION");
break;
case GameManager.FishSpecies.BassStriped:
result = LanguageManager.Instance.GetText("BASS_STRIPED_DESCRIPTION");
break;
case GameManager.FishSpecies.DrumBlack:
result = LanguageManager.Instance.GetText("DRUM_BLACK_DESCRIPTION");
break;
case GameManager.FishSpecies.DrumRed:
result = LanguageManager.Instance.GetText("DRUM_RED_DESCRIPTION");
break;
case GameManager.FishSpecies.MarlinBlue:
result = LanguageManager.Instance.GetText("MARLIN_BLUE_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkDusky:
result = LanguageManager.Instance.GetText("SHARK_DUSKY_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkSandbar:
result = LanguageManager.Instance.GetText("SHARK_SANDBAR_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkSilky:
result = LanguageManager.Instance.GetText("SHARK_SILKY_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkSpinner:
result = LanguageManager.Instance.GetText("SHARK_SPINNER_DESCRIPTION");
break;
case GameManager.FishSpecies.TunaBlackfin:
result = LanguageManager.Instance.GetText("TUNA_BLACKFIN_DESCRIPTION");
break;
case GameManager.FishSpecies.TunnyLittle:
result = LanguageManager.Instance.GetText("TUNNY_LITTLE_DESCRIPTION");
break;
case GameManager.FishSpecies.SeabassBlack:
result = LanguageManager.Instance.GetText("SEABASS_BLACK_DESCRIPTION");
break;
case GameManager.FishSpecies.MulletFlatheadGrey:
result = LanguageManager.Instance.GetText("MULLET_FLATHEAD_GREY_DESCRIPTION");
break;
case GameManager.FishSpecies.SharkBlacktip:
result = LanguageManager.Instance.GetText("SHARK_BLACKTIP_DESCRIPTION");
break;
case GameManager.FishSpecies.CharArctic:
result = LanguageManager.Instance.GetText("CHAR_ARCTIC_DESCRIPTION");
break;
case GameManager.FishSpecies.TroutDollyVarden:
result = LanguageManager.Instance.GetText("TROUT_DOLLY_VARDEN_DESCRIPTION");
break;
case GameManager.FishSpecies.SalmonChinook:
result = LanguageManager.Instance.GetText("CHINOOK_SALMON_DESCRIPTION");
break;
case GameManager.FishSpecies.TroutCutthroat:
result = LanguageManager.Instance.GetText("TROUT_CUTTHROAT_DESCRIPTION");
break;
case GameManager.FishSpecies.TroutBull:
result = LanguageManager.Instance.GetText("TROUT_BULL_DESCRIPTION");
break;
case GameManager.FishSpecies.WhitefishAlaska:
result = LanguageManager.Instance.GetText("WHITEFISH_ALASKA_DESCRIPTION");
break;
case GameManager.FishSpecies.SturgeonWhite:
result = LanguageManager.Instance.GetText("STURGEON_WHITE_DESCRIPTION");
break;
case GameManager.FishSpecies.SturgeonGreen:
result = LanguageManager.Instance.GetText("STURGEON_GREEN_DESCRIPTION");
break;
}
return result;
}
private void Update()
{
}
private void OnDestroy()
{
if (FScriptsHandler.Instance != null)
{
FScriptsHandler.Instance.m_Canvas.gameObject.SetActive(value: true);
}
}
}