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(); 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().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(); 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(); 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(); 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() != 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); } } }