TH1/Unity/Assets/Scripts/TH1_UI/View/Outside/UIOutsideLoadingView.cs
2026-05-14 17:25:29 +08:00

90 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using Animancer;
using Logic;
using Logic.Action;
using Logic.AI;
using Logic.Multilingual;
using ParadoxNotion;
using RuntimeData;
using Steamworks;
using TH1_Core.Events;
using TH1_Core.Managers;
using TH1_Logic.Action;
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;
namespace TH1_UI.View.Outside
{
public class UIOutsideLoadingView : Base.View
{
//public AnimancerComponent Animancer;
//加载图:在 Inspector 中拖入;调用 SetEmpire 时会根据 PlayerDataAssets 的 LoadingPic 替换
public Image LoadingPic;
//保留 prefab 默认 Sprite找不到目标阵营 LoadingPic 时回退
private Sprite _defaultLoadingSprite;
private bool _defaultLoadingSpriteCached;
//关闭时执行的委托
public ViDelegateAssisstant.Dele OnBtnCloseClick;
//开始游戏时执行的委托(目前委托内容就是执行controller的Close())
public ViDelegateAssisstant.Dele OnStartGame;
/// <summary>
/// 根据传入的 Empire 查 PlayerDataAssets.PlayerDataList找到则替换 LoadingPic.sprite找不到保留原图。
/// </summary>
public void SetEmpire(Empire empire)
{
if (LoadingPic == null) return;
if (!_defaultLoadingSpriteCached)
{
_defaultLoadingSprite = LoadingPic.sprite;
_defaultLoadingSpriteCached = true;
}
var assets = Table.Instance != null ? Table.Instance.PlayerDataAssets : null;
if (assets == null) return;
if (!assets.GetPlayerInfo(empire, out var info) || info == null) return;
if (info.LoadingPic == null) return;
LoadingPic.sprite = info.LoadingPic;
}
/// <summary>
/// 还原为 prefab 上的默认 LoadingPic若曾经被替换过
/// </summary>
public void ResetLoadingPic()
{
if (LoadingPic == null) return;
if (_defaultLoadingSpriteCached)
LoadingPic.sprite = _defaultLoadingSprite;
}
/*public override void Show()
{
gameObject.SetActive(true);
if(Animancer!=null)Animancer.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeIn);
}
public override void Hide()
{
if (Animancer != null)
{
var state = Animancer.Play(ResourceCache.Instance.AnimCache.UICommonPanelFadeIn);
state.Events.OnEnd = () => { gameObject.SetActive(false); };
}
else
gameObject.SetActive(false);
}*/
}
}