ToolConfigProxy.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1.  using System.Collections;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using UnityEngine;
  5. public class ToolConfigProxy : DataProxy
  6. {
  7. List<ToolConfigInfo> m_ToolConfigInfos;
  8. Dictionary<string,Sprite> m_DicToolSprites;
  9. /// <summary>
  10. /// 默认工具信息表加载路径
  11. /// </summary>
  12. string m_ToolConfigPath;
  13. public override void OnRegister()
  14. {
  15. base.OnRegister();
  16. m_DicToolSprites = new Dictionary<string, Sprite>();
  17. m_ToolConfigPath = Path.Combine(GlobalConfig.toolConfigTablePath, "工具信息表.xlsx");
  18. m_ToolConfigInfos = ExcelHelper.ReadInfoFromExcel<ToolConfigInfo>(m_ToolConfigPath, 1);
  19. }
  20. public override void OnRemove()
  21. {
  22. base.OnRemove();
  23. m_ToolConfigInfos.Clear();
  24. }
  25. /// <summary>
  26. /// 获取所有的工具类型
  27. /// </summary>
  28. /// <returns></returns>
  29. public List<string> GetAllToolTypeOfToolConfig()
  30. {
  31. List<string> list = new List<string>();
  32. foreach (var item in m_ToolConfigInfos)
  33. {
  34. if (!list.Contains(item.toolType))
  35. {
  36. list.Add(item.toolType);
  37. }
  38. }
  39. return list;
  40. }
  41. /// <summary>
  42. /// 获取所有工具名称
  43. /// </summary>
  44. /// <returns></returns>
  45. public List<string> GetAllToolCofigInfoName()
  46. {
  47. List<string> list = new List<string>();
  48. // if (m_ToolConfigInfos == null) m_ToolConfigInfos = ExcelHelper.ReadInfoFromExcel<ToolConfigInfo>(m_ToolConfigPath, 1);
  49. m_ToolConfigInfos = ExcelHelper.ReadInfoFromExcel<ToolConfigInfo>(m_ToolConfigPath, 1);
  50. m_ToolConfigInfos.ForEach(t => list.Add(t.toolName));
  51. return list;
  52. }
  53. /// <summary>
  54. /// 获取所有工具信息
  55. /// </summary>
  56. /// <returns></returns>
  57. public List<ToolConfigInfo> GetAllToolConfigInfos()
  58. {
  59. if (m_ToolConfigInfos == null) m_ToolConfigInfos = ExcelHelper.ReadInfoFromExcel<ToolConfigInfo>(m_ToolConfigPath, 1);
  60. return m_ToolConfigInfos;
  61. }
  62. /// <summary>
  63. /// 获取所有工具通过工具类型
  64. /// </summary>
  65. /// <param name="toolType"></param>
  66. /// <returns></returns>
  67. public List<ToolConfigInfo> GetToolConfigInfosByToolType(string toolType)
  68. {
  69. List<ToolConfigInfo> tmpList = new List<ToolConfigInfo>();
  70. if (m_ToolConfigInfos != null) tmpList = m_ToolConfigInfos.FindAll(tool => tool.toolType == toolType);
  71. return tmpList;
  72. }
  73. /// <summary>
  74. /// 获取所有工具根据工具类型和工具名称
  75. /// </summary>
  76. /// <param name="toolType"></param>
  77. /// <param name="toolName"></param>
  78. /// <returns></returns>
  79. public List<ToolConfigInfo> GetToolConfigInfosByToolTypeAndName(string toolType,string toolName)
  80. {
  81. List<ToolConfigInfo> toolConfigInfos = new List<ToolConfigInfo>();
  82. if (string.IsNullOrEmpty(toolName) && !string.IsNullOrEmpty(toolType))
  83. {
  84. toolConfigInfos = GetToolConfigInfosByToolType(toolType);
  85. }
  86. else if (string.IsNullOrEmpty(toolType) && !string.IsNullOrEmpty(toolName))
  87. {
  88. toolConfigInfos = GetToolConfigInfosByToolNameSearch(toolName);
  89. }
  90. else if (!string.IsNullOrEmpty(toolName) && !string.IsNullOrEmpty(toolType))
  91. {
  92. toolConfigInfos = m_ToolConfigInfos.FindAll(tool => tool.toolType == toolType && tool.toolName.Contains(toolName));
  93. }
  94. else
  95. {
  96. toolConfigInfos = GetAllToolConfigInfos();
  97. }
  98. return toolConfigInfos;
  99. }
  100. /// <summary>
  101. /// 获取所有工具更具工具名的模糊搜索
  102. /// </summary>
  103. /// <param name="searchStr"></param>
  104. /// <returns></returns>
  105. public List<ToolConfigInfo> GetToolConfigInfosByToolNameSearch(string searchStr)
  106. {
  107. List<ToolConfigInfo> tmpList = new List<ToolConfigInfo>();
  108. if (m_ToolConfigInfos != null) tmpList = m_ToolConfigInfos.FindAll(tool => tool.toolName.Contains(searchStr));
  109. return tmpList;
  110. }
  111. /// <summary>
  112. /// 通过ID获取工具配置信息
  113. /// </summary>
  114. /// <param name="_id"></param>
  115. /// <returns></returns>
  116. public ToolConfigInfo GetTooConfigInfoById(int _id)
  117. {
  118. if (m_ToolConfigInfos == null) m_ToolConfigInfos = ExcelHelper.ReadInfoFromExcel<ToolConfigInfo>(m_ToolConfigPath, 1);
  119. return m_ToolConfigInfos.Find(t => t.id == _id.ToString());
  120. }
  121. /// <summary>
  122. /// 通过工具名称获取工具配置信息
  123. /// </summary>
  124. /// <param name="_toolName"></param>
  125. /// <returns></returns>
  126. public ToolConfigInfo GetTooConfigInfoByToolName(string _toolName)
  127. {
  128. if (m_ToolConfigInfos == null) m_ToolConfigInfos = ExcelHelper.ReadInfoFromExcel<ToolConfigInfo>(m_ToolConfigPath, 1);
  129. return m_ToolConfigInfos.Find(t => t.toolName == _toolName);
  130. }
  131. /// <summary>
  132. /// 根据工具名查找工具精灵
  133. /// </summary>
  134. /// <param name="toolName"></param>
  135. /// <returns></returns>
  136. public Sprite GetSpriteByToolName(string toolName)
  137. {
  138. Sprite sprite = null;
  139. if (m_DicToolSprites.TryGetValue(toolName,out sprite))
  140. {
  141. return sprite;
  142. }
  143. else
  144. {
  145. string tmpPath = "Config/工具配置/工具配置图片/" + toolName;
  146. sprite = LoadHelper.LoadSpriteFromStreamming(tmpPath);
  147. if (sprite != null)
  148. {
  149. m_DicToolSprites.Add(toolName, sprite);
  150. }
  151. }
  152. return sprite;
  153. }
  154. }