99 lines
2.6 KiB
C#
99 lines
2.6 KiB
C#
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<BoxCollider>().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;
|
|
}
|
|
}
|