67 lines
1.7 KiB
C#
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";
|
|
}
|
|
}
|
|
}
|