using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; namespace RimWorldAnimationStudio { public class StageCard : MonoBehaviour, IPointerClickHandler { private Text stageName; private InputField stageNameField; private Image banner; public void OnNameChange() { stageName.text = stageNameField.text; stageNameField.gameObject.SetActive(false); Workspace.animationDef.animationStages[Workspace.stageID].stageName = stageName.text; Workspace.Instance.RecordEvent("Stage renamed"); } public void OnMoveStage(int delta) { if (StageCardManager.Instance.MoveAnimationStage(transform.GetSiblingIndex(), delta)) { int siblingCount = transform.parent.childCount; int index = Mathf.Clamp(transform.GetSiblingIndex() + delta, 0, siblingCount - 1); transform.SetSiblingIndex(index); } } public void Initialize(string stageName) { this.stageName = transform.Find("StageName").GetComponent(); this.stageNameField = transform.Find("StageNameField").GetComponent(); this.banner = transform.Find("Banner").GetComponent(); this.stageName.text = stageName; } public void Update() { if (Workspace.stageID == transform.GetSiblingIndex()) { banner.gameObject.SetActive(true); } else { banner.gameObject.SetActive(false); stageNameField.gameObject.SetActive(false); } } public void OnPointerClick(PointerEventData eventData) { if (eventData.clickCount >= 2) { stageNameField.text = stageName.text; stageNameField.gameObject.SetActive(true); } if (Workspace.stageID != transform.GetSiblingIndex()) { AnimationController.Instance.stageTick = 1; Workspace.Instance.RecordEvent("Stage selected"); } Workspace.stageID = transform.GetSiblingIndex(); } } }