feat(battle-engine): EffectType full enum + collection/card/vfx extension copies
Replaces partial EffectMgr.EffectType with all 226 decomp values; copies the IsNotNullOrEmpty/EquelsID/FindFromCardId/GetAllFuncVfxResults extension files + UI extensions; adds Renderer/MeshFilter shared-material/mesh/sortingOrder. Compile loop then closed the revealed deps (3242 files). 9.1k -> 18 errors.
This commit is contained in:
132
SVSim.BattleEngine/Engine/Wizard/UserListView.cs
Normal file
132
SVSim.BattleEngine/Engine/Wizard/UserListView.cs
Normal file
@@ -0,0 +1,132 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Cute;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Wizard;
|
||||
|
||||
public class UserListView : MonoBehaviour
|
||||
{
|
||||
[SerializeField]
|
||||
private SimpleScrollViewUI _scrollView;
|
||||
|
||||
[SerializeField]
|
||||
private UIPanel _panel;
|
||||
|
||||
private List<UserInfoBase> _userList;
|
||||
|
||||
private string _actionButtonLabel;
|
||||
|
||||
private Dictionary<string, List<string>> _loadQueueDict = new Dictionary<string, List<string>>();
|
||||
|
||||
private LoadQueue _loadQueue = new LoadQueue();
|
||||
|
||||
private List<string> _loadedResourceList = new List<string>();
|
||||
|
||||
public Action<UserListViewPlate, UserInfoBase> PlateCustomize { get; set; }
|
||||
|
||||
public int PanelDepth
|
||||
{
|
||||
set
|
||||
{
|
||||
_panel.depth = value;
|
||||
}
|
||||
}
|
||||
|
||||
public Action<UserInfoBase> OnSelect { get; set; }
|
||||
|
||||
public DialogBase Dialog { get; private set; }
|
||||
|
||||
public static UserListView CreateDialog(GameObject prefab, List<UserInfoBase> userList, Action<UserInfoBase> actionButtonEvent, string actionButtonLabel)
|
||||
{
|
||||
DialogBase dialogBase = UIManager.GetInstance().CreateDialogClose();
|
||||
UserListView component = UnityEngine.Object.Instantiate(prefab).GetComponent<UserListView>();
|
||||
dialogBase.SetObj(component.gameObject);
|
||||
dialogBase.SetSize(DialogBase.Size.M);
|
||||
dialogBase.SetButtonLayout(DialogBase.ButtonLayout.CloseBtn);
|
||||
component.Initialize(dialogBase, userList, actionButtonEvent, actionButtonLabel);
|
||||
return component;
|
||||
}
|
||||
|
||||
public static UserListView CreateView(GameObject prefab, GameObject parent, List<UserInfoBase> userList, Action<UserInfoBase> actionButtonEvent, string actionButtonLabel)
|
||||
{
|
||||
UserListView component = NGUITools.AddChild(parent, prefab).GetComponent<UserListView>();
|
||||
component.Initialize(null, userList, actionButtonEvent, actionButtonLabel);
|
||||
return component;
|
||||
}
|
||||
|
||||
private void Initialize(DialogBase dialog, List<UserInfoBase> userList, Action<UserInfoBase> actionButton, string actionButtonLabel)
|
||||
{
|
||||
_actionButtonLabel = actionButtonLabel;
|
||||
_userList = userList;
|
||||
OnSelect = actionButton;
|
||||
Dialog = dialog;
|
||||
UIManager.GetInstance().createInSceneCenterLoading();
|
||||
StartCoroutine(LoadFriendUserImages(userList, delegate
|
||||
{
|
||||
_scrollView.CreateScrollView(userList.Count, InitializeInviteFriendPlate);
|
||||
UIManager.GetInstance().closeInSceneCenterLoading();
|
||||
}));
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
UnloadImages();
|
||||
}
|
||||
|
||||
private void UnloadImages()
|
||||
{
|
||||
if (_loadedResourceList.Count > 0)
|
||||
{
|
||||
Toolbox.ResourcesManager.RemoveAssetGroup(_loadedResourceList);
|
||||
_loadedResourceList.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeInviteFriendPlate(int index, GameObject plateObject)
|
||||
{
|
||||
UserListViewPlate component = plateObject.GetComponent<UserListViewPlate>();
|
||||
component.Initialize(_userList[index], _actionButtonLabel);
|
||||
component.SetUnderLine(index < _userList.Count - 1);
|
||||
component.OnAction = delegate(UserInfoBase userInfo)
|
||||
{
|
||||
OnSelect.Call(userInfo);
|
||||
};
|
||||
PlateCustomize.Call(component, _userList[index]);
|
||||
}
|
||||
|
||||
private IEnumerator LoadFriendUserImages(List<UserInfoBase> userList, Action callBack = null)
|
||||
{
|
||||
List<string> loadPathList = new List<string>();
|
||||
List<string> list = new List<string>();
|
||||
_loadQueueDict.Clear();
|
||||
for (int i = 0; i < userList.Count; i++)
|
||||
{
|
||||
List<string> list2 = new List<string>(userList[i].GetUserAssetPathList().Except(list).Except(_loadedResourceList));
|
||||
if (i < _scrollView.ScrollObjectNum)
|
||||
{
|
||||
loadPathList.AddRange(list2);
|
||||
}
|
||||
else
|
||||
{
|
||||
string text = i.ToString();
|
||||
_loadQueueDict.Add(text, list2);
|
||||
LoadQueue.Callback onEnd = delegate(string id)
|
||||
{
|
||||
_loadedResourceList.AddRange(_loadQueueDict[id]);
|
||||
};
|
||||
_loadQueue.AddToLast(text, list2, null, onEnd);
|
||||
}
|
||||
list.AddRange(list2);
|
||||
}
|
||||
if (loadPathList.Count > 0)
|
||||
{
|
||||
yield return StartCoroutine(Toolbox.ResourcesManager.LoadAssetGroupAsync(loadPathList, null));
|
||||
_loadedResourceList.AddRange(loadPathList);
|
||||
}
|
||||
_loadQueue.StartLoad();
|
||||
callBack.Call();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user