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

60 lines
1.4 KiB
C#

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