Files
Gen_Hack-and-Slash-Roguelite/Client/Assets/Scripts/UI/EntityPlacementUI.cs

51 lines
1.2 KiB
C#

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);
}
}
}