displayelementbase.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. class DisplayElementBase extends MessageReceiverBase
  2. {
  3. int m_Value;
  4. int m_ValueLast = -99999;
  5. int m_Key = 0;
  6. int m_Type = 0;
  7. int m_Range = 0;
  8. int m_Colors[7];
  9. string m_Labels[7];
  10. int m_Pos = 1;
  11. int NUM_OF_BITS;
  12. bool m_IsClientOnly = false;
  13. PlayerBase m_Player;
  14. PluginPlayerStatus m_ModulePlayerStatus;
  15. void DisplayElementBase(PlayerBase player)
  16. {
  17. m_System = "VirtualHud";
  18. m_ModulePlayerStatus = PluginPlayerStatus.Cast(GetPlugin(PluginPlayerStatus));
  19. m_Player = player;
  20. //SetMaxValue();
  21. }
  22. //for elements which get their value client side and can be updated much more quickly
  23. bool IsClientOnly()
  24. {
  25. return m_IsClientOnly;
  26. }
  27. bool IsValueChanged()
  28. {
  29. return !(m_Value == m_ValueLast);
  30. }
  31. void UpdateHUD()
  32. {
  33. m_ValueLast = m_Value;
  34. }
  35. int GetNumberOfBits()
  36. {
  37. return NUM_OF_BITS;
  38. }
  39. void SetValue(int value, int range = 0)
  40. {
  41. m_Value = value;
  42. if (range != 0 )
  43. {
  44. m_Range = range;
  45. }
  46. }
  47. int GetValue()
  48. {
  49. return m_Value;
  50. }
  51. int BitToDec(int mask, int index, int length)
  52. {
  53. int value = mask & (GetCompareMask() << index);
  54. value = value >> index;
  55. return value;
  56. }
  57. int GetCompareMask()
  58. {
  59. int mask = Math.Pow(2, GetNumberOfBits() ) - 1;
  60. return mask;
  61. }
  62. int GetType()
  63. {
  64. return m_Type;
  65. }
  66. int TranslateLevelToStatus(int level)
  67. {
  68. if( level == DSLevels.WARNING )
  69. return 2;
  70. if( level == DSLevels.CRITICAL )
  71. return 3;
  72. if( level == DSLevels.BLINKING )
  73. return 4;
  74. if( level == DSLevels.EXTRA )
  75. return 5;
  76. return 1;
  77. }
  78. }