Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/DrillingExample.cs
2026-02-21 16:45:37 +08:00

67 lines
1.7 KiB
C#

using Moonlit.IceFishing;
using Moonlit.Utils;
using UnityEngine;
using UnityEngine.UI;
public class DrillingExample : MonoBehaviour
{
[SerializeField]
private DrillingController _DrillingController;
[SerializeField]
private Text _DrillTestText;
private void Update()
{
if (!_DrillingController.Drilling)
{
if (Input.GetKey(KeyCode.G))
{
_DrillingController.StartDrilling();
}
if (Input.GetKey(KeyCode.U))
{
HolesController.HitInfo hitInfo = Singleton<HolesController>.Instance.HitCheck(_DrillingController.DrillPoint.position, _DrillingController.Auger.Radius);
if (hitInfo.Result == HolesController.HitResult.Occupied)
{
foreach (Hole foundHole in hitInfo.FoundHoles)
{
Singleton<HolesController>.Instance.Remove(foundHole);
}
}
}
UpdateHitCheckText();
}
else
{
_DrillTestText.text = "Ice thickness: " + Singleton<HolesController>.Instance.GetIceThickness(_DrillingController.DrillPoint.position).ToString("0.0") + " Auger Depth: " + _DrillingController.Auger.Depth.ToString("0.0");
}
}
private void UpdateHitCheckText()
{
if (_DrillingController.Auger == null)
{
_DrillTestText.text = "Press T to drill";
return;
}
HolesController.HitInfo hitInfo = Singleton<HolesController>.Instance.HitCheck(_DrillingController.DrillPoint.position, _DrillingController.Auger.Radius);
if (hitInfo.Result != HolesController.HitResult.Unoccupied)
{
switch (hitInfo.Result)
{
case HolesController.HitResult.Occupied:
_DrillTestText.text = "Space already occupied by hole (U to delete)";
break;
case HolesController.HitResult.Terrain:
_DrillTestText.text = "You're to close to the shore";
break;
}
}
else
{
_DrillTestText.text = "Press T to drill";
}
}
}