mirror of
https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
synced 2024-08-15 00:43:27 +00:00
Code refactor
This commit is contained in:
parent
cd4711a8e5
commit
757badf4f6
517 changed files with 2534 additions and 2221 deletions
72
Assets/Scripts/GUI/Tooltips/Tooltip.cs
Normal file
72
Assets/Scripts/GUI/Tooltips/Tooltip.cs
Normal file
|
@ -0,0 +1,72 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
namespace RimWorldAnimationStudio
|
||||
{
|
||||
public class Tooltip : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
|
||||
{
|
||||
public string message = "Undefined";
|
||||
public string executedCommand;
|
||||
public float delay = 0f;
|
||||
public Vector2 offset = new Vector2(5f, -15f);
|
||||
public bool flipX = false;
|
||||
|
||||
public GameObject tooltip;
|
||||
public Text tooltipText;
|
||||
private bool isActive;
|
||||
private bool isDisplayed;
|
||||
private float activeTime = -1f;
|
||||
|
||||
public void Start()
|
||||
{
|
||||
tooltip = Resources.FindObjectsOfTypeAll<TooltipMessage>()?.FirstOrDefault().gameObject;
|
||||
tooltipText = tooltip?.GetComponentInChildren<Text>();
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
if (tooltip == null || isActive == false || (activeTime + delay) > Time.unscaledTime) return;
|
||||
|
||||
if (isDisplayed == false)
|
||||
{
|
||||
tooltip.GetComponent<RectTransform>().pivot = flipX ? new Vector2(1, 1) : new Vector2(0, 1);
|
||||
tooltipText.text = message;
|
||||
|
||||
if (executedCommand != null && executedCommand != "")
|
||||
{ tooltipText.text += " (" + KeybindConfig.GetKeybindLabel(executedCommand) + ")"; }
|
||||
|
||||
tooltip.transform.position = (Vector2)transform.position + offset;
|
||||
tooltip.gameObject.SetActive(true);
|
||||
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(tooltip.GetComponent<RectTransform>());
|
||||
|
||||
isDisplayed = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnDisable()
|
||||
{
|
||||
if (isActive)
|
||||
{ OnPointerExit(new PointerEventData(EventSystem.current)); }
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData pointerEventData)
|
||||
{
|
||||
isActive = true;
|
||||
activeTime = Time.unscaledTime;
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData pointerEventData)
|
||||
{
|
||||
isActive = false;
|
||||
isDisplayed = false;
|
||||
tooltip.gameObject.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue