using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using MaidStatus; using UnityEngine; using UnityEngine.UI; using wf; public class uGUICharacterSelectManager : MonoBehaviour { public static void DefaultMaidList(List drawList) { CharacterMgr characterMgr = GameMain.Instance.CharacterMgr; for (int i = 0; i < characterMgr.GetStockMaidCount(); i++) { drawList.Add(characterMgr.GetStockMaid(i)); } } public static void PrivateMaidList(List drawList) { CharacterMgr characterMgr = GameMain.Instance.CharacterMgr; for (int i = 0; i < characterMgr.GetStockMaidCount(); i++) { Maid stockMaid = characterMgr.GetStockMaid(i); Status status = stockMaid.status; if (status.specialRelation == SpecialRelation.Married && !stockMaid.IsCrcBody) { drawList.Add(stockMaid); } } } public void Awake() { NDebug.AssertNull(this.MaidPlateParentGrid != null); this.tabPanel = this.MaidPlateParentGrid.gameObject.GetComponent(); } public void Create(uGUICharacterSelectManager.Type type) { if (this.callBackMaidList == null) { if (uGUICharacterSelectManager.<>f__mg$cache0 == null) { uGUICharacterSelectManager.<>f__mg$cache0 = new uGUICharacterSelectManager.CallBackMaidList(uGUICharacterSelectManager.DefaultMaidList); } this.callBackMaidList = uGUICharacterSelectManager.<>f__mg$cache0; } this.m_type = type; Transform transform = this.MaidPlateParentGrid.transform; for (int i = 0; i < transform.childCount; i++) { UnityEngine.Object.Destroy(transform.GetChild(i).gameObject); } transform.DetachChildren(); this.maidList = new List(); this.callBackMaidList(this.maidList); this.buttonList = new List(); if (type == uGUICharacterSelectManager.Type.Private) { GameObject f_goParent = Utility.CreatePrefab(this.MaidPlateParentGrid.gameObject, "ScenePrivate/NoSelect", true); uGUITabButton component = UTY.GetChildObject(f_goParent, "Plate", false).GetComponent(); this.buttonList.Add(component); if (this.maidList.Count > 0) { GameObject f_goParent2 = Utility.CreatePrefab(this.MaidPlateParentGrid.gameObject, "ScenePrivate/RandomButton", true); uGUITabButton component2 = UTY.GetChildObject(f_goParent2, "Plate", false).GetComponent(); this.buttonList.Add(component2); } } for (int j = 0; j < this.maidList.Count; j++) { GameObject gameObject = Utility.CreatePrefab(this.MaidPlateParentGrid.gameObject, "ScenePrivate/MaidStatus", true); gameObject.GetComponent().SetMaidData(this.maidList[j]); uGUITabButton component3 = UTY.GetChildObject(gameObject, "Plate", false).GetComponent(); EventDelegate.Add(component3.onSelectEvent, new EventDelegate.Callback(this.OnSelect)); this.buttonList.Add(component3); } if (this.tabPanel == null) { this.tabPanel = this.MaidPlateParentGrid.gameObject.AddComponent(); } this.tabPanel.UpdateChildren(); uGUITabButton component4 = UTY.GetChildObject(this.MaidPlateParentGrid.transform.GetChild(0).gameObject, "Plate", false).GetComponent(); this.tabPanel.Select(component4); } public void SelectMaid(Maid maid) { if (maid == null) { return; } Transform transform = this.MaidPlateParentGrid.transform; for (int i = 0; i < transform.childCount; i++) { uGUIMaidPlate component = transform.GetChild(i).GetComponent(); if (component != null && component.maid == maid) { uGUITabButton component2 = UTY.GetChildObject(component.gameObject, "Plate", false).GetComponent(); this.tabPanel.Select(component2); return; } } } public void UpdateMaidPlate(Maid maid) { Transform transform = this.MaidPlateParentGrid.transform; for (int i = 0; i < transform.childCount; i++) { uGUIMaidPlate component = transform.GetChild(i).GetComponent(); if (component != null && component.maid == maid) { component.SetMaidData(maid); return; } } } private void OnSelect() { GameObject gameObject = uGUITabButton.current.transform.parent.gameObject; uGUIMaidPlate component = gameObject.GetComponent(); bool selected = uGUITabButton.selected; if (selected && this.callBackOnSelect != null) { this.callBackOnSelect(component.maid); } } public List GetButtonList() { if (this.buttonList != null) { return this.buttonList; } return null; } public List GetMaidList() { if (this.maidList != null) { return this.maidList; } return null; } public void SetCallBackMaidList(uGUICharacterSelectManager.CallBackMaidList callBack) { this.callBackMaidList = callBack; } public void SetCallBackOnSelect(uGUICharacterSelectManager.CallBackOnSelect callBack) { this.callBackOnSelect = callBack; } public GridLayoutGroup MaidPlateParentGrid; private uGUICharacterSelectManager.CallBackMaidList callBackMaidList; private uGUICharacterSelectManager.CallBackOnSelect callBackOnSelect; private uGUICharacterSelectManager.Type m_type; private uGUITabPanel tabPanel; private uGUIMaidPlate[] selectList; private List buttonList; private List maidList; [CompilerGenerated] private static uGUICharacterSelectManager.CallBackMaidList <>f__mg$cache0; public delegate void CallBackMaidList(List drawList); public delegate void CallBackOnSelect(Maid selectMaid); public delegate void CallBackOnSelectNoSelect(); public enum Type { Default, Private } }