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.Instance.HitCheck(_DrillingController.DrillPoint.position, _DrillingController.Auger.Radius); if (hitInfo.Result == HolesController.HitResult.Occupied) { foreach (Hole foundHole in hitInfo.FoundHoles) { Singleton.Instance.Remove(foundHole); } } } UpdateHitCheckText(); } else { _DrillTestText.text = "Ice thickness: " + Singleton.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.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"; } } }