ToolLibraryForm.cs 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using QFramework;
  4. using System.Collections.Generic;
  5. using I2.Loc;
  6. using System;
  7. namespace QFramework
  8. {
  9. public enum ToolLibraryType
  10. {
  11. /// <summary>
  12. /// 工具间
  13. /// </summary>
  14. ToolRoom,
  15. /// <summary>
  16. /// 工具包
  17. /// </summary>
  18. ToolKit
  19. }
  20. public class ToolLibraryFormData : UIPanelData
  21. {
  22. /// <summary>
  23. /// 开启的工具库类型
  24. /// </summary>
  25. public ToolLibraryType toolLibraryType = ToolLibraryType.ToolRoom;
  26. /// <summary>
  27. /// 正常情况下不用使用该回调,这是为ToolLibrarySelectElement单加的模式
  28. /// </summary>
  29. public Action selectAction;
  30. /// <summary>
  31. /// 这是为ToolLibrarySelectElement单加的模式
  32. /// </summary>
  33. public List<string> rightTools = new List<string>();
  34. }
  35. public partial class ToolLibraryForm : UIPanel
  36. {
  37. public List<Sprite> m_Sprites = new List<Sprite>();
  38. public ToolConfigProxy m_ToolConfigProxy;
  39. //工具间中用到
  40. public List<string> rightToolsForToolRoom = new List<string>();
  41. protected override void OnInit(IUIData uiData = null)
  42. {
  43. mData = uiData as ToolLibraryFormData ?? new ToolLibraryFormData();
  44. m_ToolConfigProxy = DAL.Instance.Get<ToolConfigProxy>();
  45. CloseBtn.onClick.AddListener(OnCloseBtnClick);
  46. ToolLibrarySelectElement.InitData();
  47. ToolLibrarySelectElement.TitleText.text = ScriptLocalization.tooltype.all;
  48. m_ToolConfigProxy.m_CurrentToolLibraryType = mData.toolLibraryType;
  49. CloseBtn.gameObject.SetActive(mData.selectAction == null);
  50. rightToolsForToolRoom = mData.rightTools;
  51. }
  52. protected override void OnOpen(IUIData uiData = null)
  53. {
  54. mData = uiData as ToolLibraryFormData ?? new ToolLibraryFormData();
  55. switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
  56. {
  57. case ToolLibraryType.ToolRoom:
  58. m_ToolConfigProxy.m_TmpToolRoomConfigInfos = m_ToolConfigProxy.GetAllToolConfigInfoFromCTRSTCIs();
  59. ToolLibrarySelectElement.OpenToolRoomUI();
  60. break;
  61. case ToolLibraryType.ToolKit:
  62. ToolLibrarySelectElement.OpenToolKitUI();
  63. break;
  64. default:
  65. break;
  66. }
  67. ToolTypeElement.RefrushTypeBtn();
  68. transform.transform.SetAsLastSibling();
  69. }
  70. protected override void OnShow()
  71. {
  72. //工具包
  73. if (mData.toolLibraryType == ToolLibraryType.ToolKit)
  74. {
  75. }
  76. else if (mData.toolLibraryType == ToolLibraryType.ToolRoom)
  77. {
  78. ToolLibrarySelectElement.ShowUI();
  79. //刷新工具列表为全部
  80. ToolTypeElement.RefrushTypeBtn();
  81. transform.transform.SetAsLastSibling();
  82. }
  83. }
  84. protected override void OnHide()
  85. {
  86. }
  87. protected override void OnClose()
  88. {
  89. }
  90. void Update()
  91. {
  92. if (Input.GetKeyDown(KeyCode.Escape))
  93. {
  94. OnCloseBtnClick();
  95. }
  96. if (Input.GetKeyDown(KeyCode.Return))
  97. {
  98. Debug.Log("ClickEnter");
  99. OnConfirmBtnClick();
  100. }
  101. if (Input.GetKeyDown(KeyCode.Delete))
  102. {
  103. ToolLibrarySelectElement.OnClearBtnClick();
  104. }
  105. }
  106. /// <summary>
  107. /// 关闭工具库
  108. /// </summary>
  109. public void OnCloseBtnClick()
  110. {
  111. switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
  112. {
  113. case ToolLibraryType.ToolRoom:
  114. break;
  115. case ToolLibraryType.ToolKit:
  116. m_ToolConfigProxy.ClearToolConfigInfoToCTKSTCIs();
  117. foreach (var item in m_ToolConfigProxy.GetAllToolConfigInfos())
  118. {
  119. foreach (var selectTool in OperateSetting.Instance.m_ToolKitToolConfigs)
  120. {
  121. if (selectTool.toolName == item.toolName)
  122. {
  123. ToolConfigInfo tmpToolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoByToolName(item.toolName);
  124. m_ToolConfigProxy.AddToolConfigInfoToCTKSTCIs(tmpToolConfigInfo);
  125. }
  126. }
  127. }
  128. break;
  129. default:
  130. break;
  131. }
  132. UIKit.ClosePanel<ToolLibraryForm>();
  133. }
  134. /// <summary>
  135. /// 确认提交所选工具
  136. /// </summary>
  137. public void OnConfirmBtnClick()
  138. {
  139. switch (m_ToolConfigProxy.m_CurrentToolLibraryType)
  140. {
  141. case ToolLibraryType.ToolRoom:
  142. m_ToolConfigProxy.SetCurrrentToolRoomToolConfigInfos(m_ToolConfigProxy.m_TmpToolRoomConfigInfos);
  143. break;
  144. case ToolLibraryType.ToolKit:
  145. break;
  146. default:
  147. break;
  148. }
  149. List<ToolConfig> tmpToolConfigs = new List<ToolConfig>();
  150. foreach (var item in m_ToolConfigProxy.GetAllToolConfigInfoFromCTKSTCIs())
  151. {
  152. if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(item.id)) != null)
  153. {
  154. ToolConfig tmpToolConfig = new ToolConfig();
  155. ToolConfigInfo toolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoById(int.Parse(item.id));
  156. tmpToolConfig.toolName = toolConfigInfo.toolName;
  157. tmpToolConfig.toolImg = m_ToolConfigProxy.GetSpriteByToolName(tmpToolConfig.toolName);
  158. tmpToolConfig.en_toolName = toolConfigInfo.en_toolName;
  159. tmpToolConfig.en_toolType = toolConfigInfo.en_toolType;
  160. tmpToolConfig.en_toolDescription = toolConfigInfo.en_toolDescription;
  161. tmpToolConfigs.Add(tmpToolConfig);
  162. }
  163. }
  164. OperateSetting.Instance.m_ToolKitToolConfigs = tmpToolConfigs;
  165. UIKit.OpenPanel<ToolDisplayForm>(new ToolDisplayFormData() { m_ToolConfigs = tmpToolConfigs });
  166. if (mData.selectAction != null)
  167. {
  168. mData.selectAction?.Invoke();
  169. }
  170. else
  171. {
  172. UIKit.ClosePanel<ToolLibraryForm>();
  173. }
  174. }
  175. public static void RefrushAllChoseTool()
  176. {
  177. ToolConfigProxy tmpToolConfigProxy = DAL.Instance.Get<ToolConfigProxy>();
  178. tmpToolConfigProxy.ClearToolConfigInfoToCTKSTCIs();
  179. OperateSetting.Instance.m_ToolKitToolConfigs.Clear();
  180. UIKit.OpenPanel<ToolDisplayForm>(new ToolDisplayFormData() { m_ToolConfigs = null });
  181. }
  182. }
  183. }