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