IGMData_Mag_Group.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. namespace OpenVIII
  2. {
  3. public partial class Junction
  4. {
  5. #region Classes
  6. private class IGMData_Mag_Group : IGMData.Group.Base
  7. {
  8. #region Methods
  9. public static new IGMData_Mag_Group Create(params Menu_Base[] d) => Create<IGMData_Mag_Group>(d);
  10. public override void Hide() =>
  11. //depending on the mode it'll hide what's needed and show rest.
  12. Show();
  13. public override bool ITEMInputs(Menu_Base i, int pos = 0)
  14. {
  15. var ret = false;
  16. if (InputsModeTest(pos))
  17. {
  18. var lastmode = (Mode)Junction.GetMode();
  19. ret = base.ITEMInputs(i, pos);
  20. if (ret)
  21. {
  22. if (!Junction.GetMode().Equals(lastmode))
  23. Show();
  24. }
  25. }
  26. return ret;
  27. }
  28. public override void ITEMShow(Menu_Base i, int pos = 0)
  29. {
  30. if (Junction != null)
  31. {
  32. pos = cnv(pos);
  33. switch (Junction.GetMode())
  34. {
  35. default:
  36. if (pos < 1)
  37. base.ITEMShow(i, pos);
  38. else base.ITEMHide(i, pos);
  39. break;
  40. case Mode.Mag_Pool_Stat:
  41. case Mode.Mag_Stat:
  42. if (pos < 3)
  43. base.ITEMShow(i, pos);
  44. else base.ITEMHide(i, pos);
  45. break;
  46. case Mode.Mag_EL_A:
  47. case Mode.Mag_Pool_EL_A:
  48. if (pos > 0 && pos < 5)
  49. base.ITEMShow(i, pos);
  50. else base.ITEMHide(i, pos);
  51. break;
  52. case Mode.Mag_EL_D:
  53. case Mode.Mag_Pool_EL_D:
  54. if (pos > 0 && pos < 4 || pos == 5)
  55. base.ITEMShow(i, pos);
  56. else base.ITEMHide(i, pos);
  57. break;
  58. case Mode.Mag_ST_A:
  59. case Mode.Mag_Pool_ST_A:
  60. if (pos > 0 && pos < 3 || pos == 6 || pos == 7)
  61. base.ITEMShow(i, pos);
  62. else base.ITEMHide(i, pos);
  63. break;
  64. case Mode.Mag_ST_D:
  65. case Mode.Mag_Pool_ST_D:
  66. if (pos > 0 && pos < 3 || pos == 6 || pos == 8)
  67. base.ITEMShow(i, pos);
  68. else base.ITEMHide(i, pos);
  69. break;
  70. }
  71. }
  72. }
  73. public override void Refresh()
  74. {
  75. base.Refresh();
  76. Show();
  77. }
  78. private bool InputsModeTest(int pos)
  79. {
  80. pos = cnv(pos);
  81. switch (Junction.GetMode())
  82. {
  83. case Mode.Mag_Pool_Stat:
  84. case Mode.Mag_Pool_EL_A:
  85. case Mode.Mag_Pool_EL_D:
  86. case Mode.Mag_Pool_ST_A:
  87. case Mode.Mag_Pool_ST_D:
  88. if (pos == 2)
  89. return true;
  90. break;
  91. case Mode.Mag_Stat:
  92. if (pos == 0)
  93. return true;
  94. break;
  95. case Mode.Mag_EL_A:
  96. case Mode.Mag_EL_D:
  97. if (pos == 3)
  98. return true;
  99. break;
  100. case Mode.Mag_ST_A:
  101. case Mode.Mag_ST_D:
  102. if (pos == 6)
  103. return true;
  104. break;
  105. }
  106. return false;
  107. }
  108. #endregion Methods
  109. }
  110. #endregion Classes
  111. }
  112. }