using BitStrap; using UnityEngine; public class TrophyFishHolder : vp_Interactable { [Header("Fish Holder")] public GameObject plate; public Transform fishMountPosition; public Transform fishModel; public Fish.Species spieces = Fish.Species.LAKE_TROUT; public float plateScaleMultiplier = 1f; public float plateColliderDepth; [HideInInspector] public TrophyRoomManager trophyRoomManager; [HideInInspector] public FishManager.FishDefinition fishDefinition; [HideInInspector] public Fish fishPrefab; private new void Start() { Utilities.DisableAllScripts(fishModel.gameObject); } public override void UpdateSeeing(bool isSeeing) { if (isSeeingMe != isSeeing) { trophyRoomManager.trophyRoomGUI.ShowFishInfo((!isSeeing) ? null : fishDefinition); base.UpdateSeeing(isSeeing); } } public void Refresh() { trophyRoomManager = TrophyRoomManager.Instance; fishDefinition = trophyRoomManager.globalSettings.fishManager.GetFishDefinition(spieces); if (fishDefinition == null) { Debug.Log("TrophyFishHolder fishDefinition == null: " + spieces); } if (fishDefinition != null && fishDefinition.length > 0f) { fishMountPosition.localScale = new Vector3(fishDefinition.length, fishDefinition.length, fishDefinition.length); } else { base.gameObject.SetActive(trophyRoomManager.showAll); } RefreshPlateSize(fishDefinition); } public void Resize(bool maxLength) { trophyRoomManager = TrophyRoomManager.Instance; fishDefinition = trophyRoomManager.globalSettings.fishManager.GetFishDefinition(spieces); if (fishDefinition != null && fishDefinition.fishPrefab != null) { float num = ((!maxLength) ? fishDefinition.fishPrefab.LengthMinMax.x : fishDefinition.fishPrefab.LengthMinMax.y); fishMountPosition.localScale = Vector3.one * num; RefreshPlateSize(fishDefinition); base.gameObject.SetActive(true); } } public void RefreshPlateSize(FishManager.FishDefinition fishDefinition) { Vector3 localScale = plate.transform.localScale; float num = fishMountPosition.localScale.x; if (fishDefinition != null) { float num2 = Mathf.Lerp(fishDefinition.fishPrefab.LengthMinMax.x, fishDefinition.fishPrefab.LengthMinMax.y, 0.2f); if (num < num2) { num = num2; } } num *= plateScaleMultiplier; localScale.x = (localScale.y = num); plate.transform.localScale = localScale; GetComponent().size = new Vector3(plate.transform.localScale.x * 0.7f, plate.transform.localScale.x * 0.4f, (!(plateColliderDepth > 0f)) ? 0.3f : plateColliderDepth); } [Button] public void ChangeScale() { fishMountPosition.localScale = fishModel.localScale; fishModel.localScale = Vector3.one; } }