rimworld-animation-studio/Assets/Scripts/GUI/Cards/StageCard.cs

67 lines
1.9 KiB
C#
Raw Normal View History

2022-10-27 05:56:04 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
namespace RimWorldAnimationStudio
{
public class StageCard : MonoBehaviour, IPointerClickHandler
{
public Text stageName;
public InputField stageNameField;
public Image banner;
2022-10-28 05:28:51 +00:00
private int stageID { get { return transform.GetSiblingIndex(); } }
2022-10-27 05:56:04 +00:00
2022-10-28 05:28:51 +00:00
public void Start()
{
EventsManager.onStageIDChanged.AddListener(delegate { Initialize(stageName.text); });
stageNameField.onEndEdit.AddListener(delegate { OnNameChange(); });
2022-10-27 05:56:04 +00:00
}
public void Initialize(string stageName)
{
this.stageName.text = stageName;
if (Workspace.StageID == transform.GetSiblingIndex())
2022-10-28 05:28:51 +00:00
{
banner.gameObject.SetActive(true);
}
2022-10-27 05:56:04 +00:00
else
2022-10-28 05:28:51 +00:00
{
2022-10-27 05:56:04 +00:00
banner.gameObject.SetActive(false);
stageNameField.gameObject.SetActive(false);
}
}
2022-10-28 05:28:51 +00:00
public void OnNameChange()
{
stageName.text = stageNameField.text;
stageNameField.gameObject.SetActive(false);
Workspace.GetCurrentAnimationStage().StageName = stageName.text;
Workspace.RecordEvent("Stage renamed");
}
public void OnMoveStage(int delta)
{
Workspace.animationDef.MoveAnimationStage(stageID, delta);
}
2022-10-27 05:56:04 +00:00
public void OnPointerClick(PointerEventData eventData)
{
if (eventData.clickCount >= 2)
{
stageNameField.text = stageName.text;
stageNameField.gameObject.SetActive(true);
}
if (Workspace.StageID != transform.GetSiblingIndex())
{ Workspace.RecordEvent("Stage selected"); }
Workspace.StageID = transform.GetSiblingIndex();
}
}
}