96 lines
2.2 KiB
C#
96 lines
2.2 KiB
C#
using UnityEngine;
|
|
|
|
public class Hook : MonoBehaviour
|
|
{
|
|
public int hookID = -1;
|
|
|
|
[HideInInspector]
|
|
public Rigidbody linkConnectorUp;
|
|
|
|
public HingeJoint hingeJointUp;
|
|
|
|
public Transform baitContainer;
|
|
|
|
public Transform fishPoint;
|
|
|
|
[HideInInspector]
|
|
public FishStats takeFish;
|
|
|
|
[HideInInspector]
|
|
public GameObject currentBait;
|
|
|
|
private bool isRendererEnabled = true;
|
|
|
|
[HideInInspector]
|
|
public FishingLine currentFishingLine;
|
|
|
|
[HideInInspector]
|
|
public Rigidbody rigidbody;
|
|
|
|
[HideInInspector]
|
|
public WaterDisplacementObject waterDisplacementObject;
|
|
|
|
private void Start()
|
|
{
|
|
rigidbody = GetComponent<Rigidbody>();
|
|
waterDisplacementObject = GetComponent<WaterDisplacementObject>();
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
CheckIsCorrectTerreinPosition();
|
|
if ((bool)takeFish)
|
|
{
|
|
if (isRendererEnabled)
|
|
{
|
|
EnableDisableMeshRenderers(value: false);
|
|
}
|
|
}
|
|
else if (!isRendererEnabled)
|
|
{
|
|
EnableDisableMeshRenderers(value: true);
|
|
}
|
|
}
|
|
|
|
private void CheckIsCorrectTerreinPosition()
|
|
{
|
|
if (waterDisplacementObject.deepProbe.z > 0f && waterDisplacementObject.deepProbe.x == 0f)
|
|
{
|
|
ScriptsHandler.Instance.m_PlayerMain.ResetCast();
|
|
}
|
|
}
|
|
|
|
public void Link(Rigidbody connector)
|
|
{
|
|
if (connector.transform.parent.GetComponent<LineHandler>().lineType != LineHandler.LineType.OneSegment)
|
|
{
|
|
currentFishingLine = connector.transform.parent.GetComponent<LineHandler>().currentRodFishingLineComponent;
|
|
if (!(currentFishingLine.hook != this))
|
|
{
|
|
currentFishingLine.hook = this;
|
|
linkConnectorUp = connector;
|
|
base.transform.position = linkConnectorUp.position;
|
|
hingeJointUp.connectedBody = linkConnectorUp;
|
|
linkConnectorUp.GetComponent<MeshRenderer>().enabled = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void EnableDisableMeshRenderers(bool value)
|
|
{
|
|
MeshRenderer[] componentsInChildren = base.gameObject.GetComponentsInChildren<MeshRenderer>();
|
|
SkinnedMeshRenderer[] componentsInChildren2 = base.gameObject.GetComponentsInChildren<SkinnedMeshRenderer>();
|
|
MeshRenderer[] array = componentsInChildren;
|
|
for (int i = 0; i < array.Length; i++)
|
|
{
|
|
array[i].enabled = value;
|
|
}
|
|
SkinnedMeshRenderer[] array2 = componentsInChildren2;
|
|
for (int i = 0; i < array2.Length; i++)
|
|
{
|
|
array2[i].enabled = value;
|
|
}
|
|
isRendererEnabled = value;
|
|
}
|
|
}
|