2022-01-11 00:17:29 +00:00
|
|
|
using UnityEngine;
|
2022-06-14 05:24:41 +00:00
|
|
|
using UnityEngine.Rendering;
|
2022-01-11 00:17:29 +00:00
|
|
|
using UnityEngine.UI;
|
2023-06-19 20:28:52 +00:00
|
|
|
using UnityEngine.EventSystems;
|
2022-01-11 00:17:29 +00:00
|
|
|
|
2022-06-14 05:24:41 +00:00
|
|
|
using DG.Tweening;
|
|
|
|
|
2022-03-14 14:21:05 +00:00
|
|
|
namespace HeavenStudio.Editor
|
2022-01-11 00:17:29 +00:00
|
|
|
{
|
|
|
|
public class GridGameSelectorGame : MonoBehaviour
|
|
|
|
{
|
|
|
|
public GameObject GameTitlePreview;
|
2023-06-19 20:28:52 +00:00
|
|
|
public Animator StarAnim;
|
|
|
|
public bool StarActive;
|
2022-01-11 00:17:29 +00:00
|
|
|
|
|
|
|
public GridGameSelector GridGameSelector;
|
|
|
|
|
2022-06-14 05:24:41 +00:00
|
|
|
public Texture MaskTex;
|
|
|
|
public Texture BgTex;
|
|
|
|
private Material m_Material;
|
|
|
|
|
2022-01-15 05:20:47 +00:00
|
|
|
private void Start()
|
2022-01-11 00:17:29 +00:00
|
|
|
{
|
2023-06-19 20:28:52 +00:00
|
|
|
Tooltip.AddTooltip(this.gameObject, EventCaller.instance.GetMinigame(this.gameObject.name).displayName);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnEnable()
|
|
|
|
{
|
|
|
|
if (StarActive) StarAnim.Play("Appear", 0, 1);
|
2022-01-11 00:17:29 +00:00
|
|
|
}
|
|
|
|
|
2022-06-14 05:24:41 +00:00
|
|
|
public void SetupTextures()
|
|
|
|
{
|
|
|
|
if (m_Material == null)
|
|
|
|
{
|
|
|
|
m_Material = Instantiate(GetComponent<Image>().material);
|
|
|
|
GetComponent<Image>().material = m_Material;
|
|
|
|
}
|
|
|
|
m_Material.SetTexture("_MaskTex", MaskTex);
|
|
|
|
m_Material.SetTexture("_BgTex", BgTex);
|
|
|
|
}
|
|
|
|
|
2022-01-15 05:20:47 +00:00
|
|
|
public void OnClick()
|
2022-01-11 00:17:29 +00:00
|
|
|
{
|
2023-06-19 20:28:52 +00:00
|
|
|
if (Input.GetMouseButtonUp(0))
|
|
|
|
{
|
|
|
|
GridGameSelector.SelectGame(this.gameObject.name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void OnDown()
|
|
|
|
{
|
|
|
|
if (Input.GetMouseButtonDown(1))
|
|
|
|
{
|
|
|
|
// while holding shift and the game icon clicked has a star, it will disable all stars.
|
|
|
|
if (Input.GetKey(KeyCode.LeftShift)) {
|
|
|
|
if (!StarActive) return;
|
|
|
|
for (int i = 0; i < transform.parent.childCount; i++)
|
|
|
|
{
|
|
|
|
var ggsg = transform.parent.GetChild(i).GetComponent<GridGameSelectorGame>();
|
|
|
|
if (ggsg.StarActive) ggsg.Star();
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
Star();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void Star()
|
|
|
|
{
|
|
|
|
StarAnim.CrossFade(StarActive ? "Disappear" : "Appear", 0.3f);
|
|
|
|
StarActive = !StarActive;
|
2022-01-11 00:17:29 +00:00
|
|
|
}
|
2022-06-14 05:24:41 +00:00
|
|
|
|
|
|
|
//TODO: animate between shapes
|
|
|
|
public void ClickIcon()
|
|
|
|
{
|
|
|
|
transform.DOScale(new Vector3(1.15f, 1.15f, 1f), 0.1f);
|
|
|
|
BgTex = Resources.Load<Texture>($"Sprites/GeneralPurpose/Circle");
|
|
|
|
SetupTextures();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void UnClickIcon()
|
|
|
|
{
|
|
|
|
transform.DOScale(new Vector3(1f, 1f, 1f), 0.1f);
|
|
|
|
BgTex = Resources.Load<Texture>($"Sprites/GeneralPurpose/Square");
|
|
|
|
SetupTextures();
|
|
|
|
}
|
2022-01-11 00:17:29 +00:00
|
|
|
}
|
|
|
|
}
|