FreeProcessMark.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using UnityEngine;
  5. public enum FreeProcessType
  6. {
  7. 常规触发,
  8. 检查,
  9. 拆解,
  10. 安装
  11. }
  12. public class FreeProcessMark : MonoBehaviour
  13. {
  14. public static int AssembleID = 1000;
  15. public FreeProcessType freeProcessType = FreeProcessType.常规触发;
  16. public string markName;
  17. public List<AssembleObjInfo> assembleObjInfos = new List<AssembleObjInfo>();
  18. public void Enter()
  19. {
  20. }
  21. public bool CheckAssemble()
  22. {
  23. List<ToolConfig> seletTools = DAL.Instance.Get<ToolConfigProxy>().GetCurrentSelectDisassembleObjs();
  24. Debug.Log(seletTools.Count);
  25. foreach (var assembleItem in assembleObjInfos)
  26. {
  27. if (assembleItem.isAssembleMust)
  28. {
  29. if(seletTools.Where(s=>s.toolName==assembleItem.name).Count() == 0)
  30. {
  31. return false;
  32. }
  33. }
  34. }
  35. return true;
  36. }
  37. public void Exit()
  38. {
  39. switch (freeProcessType)
  40. {
  41. case FreeProcessType.常规触发:
  42. break;
  43. case FreeProcessType.检查:
  44. break;
  45. case FreeProcessType.拆解:
  46. DisAssembleToToolLibrary();
  47. break;
  48. case FreeProcessType.安装:
  49. AssemebleToToolLibrary();
  50. break;
  51. default:
  52. break;
  53. }
  54. }
  55. public void AssemebleToToolLibrary()
  56. {
  57. List<ToolConfig> seletTools = DAL.Instance.Get<ToolConfigProxy>().GetCurrentSelectDisassembleObjs();
  58. foreach (var assembleItem in assembleObjInfos)
  59. {
  60. foreach (var item in seletTools)
  61. {
  62. if (item.toolName == assembleItem.name)
  63. {
  64. DAL.Instance.Get<ToolConfigProxy>().RemoveToolConfigInfoToAssembleObjs(item);
  65. }
  66. }
  67. }
  68. }
  69. public void DisAssembleToToolLibrary()
  70. {
  71. foreach (var item in assembleObjInfos)
  72. {
  73. ToolConfigInfo toolConfigInfo = new ToolConfigInfo();
  74. toolConfigInfo.id = FreeProcessMark.AssembleID.ToString();
  75. FreeProcessMark.AssembleID++;
  76. toolConfigInfo.toolName = item.name;
  77. toolConfigInfo.toolDescription = item.description;
  78. toolConfigInfo.toolType = item.toolType;
  79. DAL.Instance.Get<ToolConfigProxy>().AddToolConfigInfoToAssembleObjs(toolConfigInfo);
  80. }
  81. }
  82. }
  83. [System.Serializable]
  84. public class AssembleObjInfo
  85. {
  86. public string name;
  87. public string description;
  88. public string toolType = "电力设备";
  89. //安装必须
  90. public bool isAssembleMust = true;
  91. }