TH1/Unity/Assets/Scripts/TH1_UI/View/Outside/UIOutsideMenuShutdownPanelMono.cs
2026-03-05 15:26:15 +08:00

75 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using Animancer;
using Logic;
using Logic.Action;
using Logic.AI;
using Logic.Audio;
using Logic.Config;
using Logic.Multilingual;
using ParadoxNotion;
using RuntimeData;
using Steamworks;
using TH1_Core.Events;
using TH1_Core.Managers;
using TH1_Logic.Action;
using TH1_Logic.Config;
using TH1_Logic.Core;
using TH1_Logic.Net;
using TH1_Logic.Steam;
using TH1_UI.View.Announce;
using TH1Resource;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
using ConfigManager = TH1_Logic.Config.ConfigManager;
namespace TH1_UI.View.Outside
{
public class UIOutsideMenuShutdownPanelMono : MonoBehaviour
{
public AnimancerComponent Animancer;
public Button CancelButton;
public Button CheckButton;
public Button BlockButton;
// 关闭时执行的委托
public ViDelegateAssisstant.Dele OnPanelClose;
// 确认退出时执行的委托
public ViDelegateAssisstant.Dele OnShutdownConfirm;
public void OnInit()
{
CancelButton.onClick.RemoveAllListeners();
CancelButton.onClick.AddListener(OnClose);
CheckButton.onClick.RemoveAllListeners();
CheckButton.onClick.AddListener(OnConfirm);
BlockButton.onClick.RemoveAllListeners();
BlockButton.onClick.AddListener(OnClose);
gameObject.SetActive(false);
}
public void Open()
{
gameObject.SetActive(true);
Animancer.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeIn);
}
public void OnClose()
{
AnimancerState state = Animancer.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeOut);
state.Events.OnEnd += () =>
{
gameObject.SetActive(false);
OnPanelClose?.Invoke();
};
}
private void OnConfirm()
{
OnShutdownConfirm?.Invoke();
}
}
}