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; /// /// 根据传入的 Empire 查 PlayerDataAssets.PlayerDataList,找到则替换 LoadingPic.sprite,找不到保留原图。 /// 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; } /// /// 还原为 prefab 上的默认 LoadingPic(若曾经被替换过)。 /// 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); }*/ } }