using Base; using TMPro; using UnityEngine; using Utils; namespace UI { public delegate void NonReturnCallback(); public class EntityPlacementUI : UIBase, ITickUI { public TMP_Text promptText; public GameObject focusBox; public bool snapEnabled; public NonReturnCallback currentAction; public string Prompt { get => promptText.text; set => promptText.text = value; } public void TickUI() { if (Input.GetKeyDown(KeyCode.Escape)) UIInputControl.Instance.Hide(this); if (currentAction != null && Input.GetMouseButtonDown(0)) currentAction(); if (!focusBox) return; if (snapEnabled) focusBox.transform.position = MousePosition.GetSnappedWorldPosition(); else focusBox.transform.position = MousePosition.GetWorldPosition(); } public override void Show() { base.Show(); focusBox.SetActive(true); Clock.AddTickUI(this); } public override void Hide() { base.Hide(); focusBox.SetActive(false); Clock.RemoveTickUI(this); } } }