Advertisement
SemlerPDX

Stationeers Power Station Min/Max/Averages Displays IC10

Feb 18th, 2025 (edited)
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.74 KB | Gaming | 0 0
  1. #Power Distribution Large LED Control Script v1
  2. # by SemlerPDX Sept2023
  3.  
  4. #As seen in my Power Station Quick Clip video:
  5. # https://youtu.be/s45vYXD6dSI
  6.  
  7. define CableAnalyzer 1036015121
  8. define Button 491845673
  9. define MediumLED -53151617
  10. define LargeLED -1949054743
  11. sb LargeLED Mode 2
  12. sb LargeLED Color 6
  13.  
  14. alias ThisBut r10
  15. alias ThisMax r11
  16. alias ThisLED r12
  17. alias AvgTotal r13
  18. alias AvgCount r14
  19. alias x r15
  20.  
  21. define ThisNet HASH("Cable Analyzer MAIN OUT")
  22.  
  23. #Clear the stack
  24. move sp 0
  25. define STACK 500
  26. push 0
  27. brlt sp STACK -1 #can use clr in latest version
  28. #Initialize Stack to contain Averages
  29. move sp 0
  30. move AvgTotal 0
  31. move AvgCount 0
  32.  
  33. start:
  34. sb MediumLED Color 6 #REQUIRED!
  35. move ThisLED HASH("LED Total Power Min")
  36. lbn r0 LargeLED ThisLED Setting Maximum
  37. beqzal r0 setMinDisplay
  38.  
  39. yield
  40. move ThisLED HASH("LED Total Power Avg")
  41.  
  42. add sp sp 1
  43. pop x
  44. sub AvgTotal AvgTotal x
  45. lbn x CableAnalyzer ThisNet PowerActual Maximum
  46. push x
  47. add AvgTotal AvgTotal x
  48. max AvgCount AvgCount sp
  49. brlt sp STACK 2
  50. move sp 0
  51. div x AvgTotal AvgCount
  52. sbn LargeLED ThisLED Setting x
  53.  
  54. jal setDisplaysMinMax
  55. j start
  56.  
  57. setDisplaysMinMax:
  58. move ThisBut HASH("Button Total Power Max")
  59. move ThisLED HASH("LED Total Power Max")
  60. lbn r1 Button ThisBut Setting Maximum
  61. bgtz r1 resetThisDisplay
  62. move ThisMax HASH("LED Power Station Max")
  63. lbn r1 MediumLED ThisMax Setting Maximum
  64. add r0 0 r1
  65. move ThisMax HASH("LED Greenhouse Max")
  66. lbn r1 MediumLED ThisMax Setting Maximum
  67. add r0 r0 r1
  68. move ThisMax HASH("LED Workshop Max")
  69. lbn r1 MediumLED ThisMax Setting Maximum
  70. add r0 r0 r1
  71. move ThisMax HASH("LED Mining Max")
  72. lbn r1 MediumLED ThisMax Setting Maximum
  73. add r0 r0 r1
  74. move ThisMax HASH("LED Furnace Max")
  75. lbn r1 MediumLED ThisMax Setting Maximum
  76. add r0 r0 r1
  77. move ThisMax HASH("LED Spaceport Max")
  78. lbn r1 MediumLED ThisMax Setting Maximum
  79. add r0 r0 r1
  80. lbn r1 LargeLED ThisLED Setting Maximum
  81. bge r1 r0 setDisplaysMin #bypass if max is greater
  82.  
  83. #Set new Maximum to Power Consumption Display
  84. sbn LargeLED ThisLED Setting r0
  85.  
  86. setDisplaysMin:
  87. move ThisBut HASH("Button Total Power Min")
  88. move ThisLED HASH("LED Total Power Min")
  89. lbn r1 Button ThisBut Setting Maximum
  90. bgtz r1 resetThisDisplay
  91. lbn r0 CableAnalyzer ThisNet PowerActual Maximum
  92. lbn r1 LargeLED ThisLED Setting Maximum
  93. select r1 r1 r1 r0
  94. ble r1 r0 ra #bypass if min is already lesser
  95.  
  96. #Set new Minimum to Power Consumption Display
  97. sbn LargeLED ThisLED Setting r0
  98. j ra
  99.  
  100. resetThisDisplay:
  101. sbn LargeLED ThisLED Color 1
  102. sbn LargeLED ThisLED Setting 0
  103. sleep 2
  104. j start
  105.  
  106. setMinDisplay:
  107. lbn r0 CableAnalyzer ThisNet PowerActual Maximum
  108. sbn LargeLED ThisLED Setting r0
  109. j ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement