BrineUtil

Untitled

Feb 5th, 2021
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. local moduleName = ...
  2. local moduleSettings
  3. if hudSettings[moduleName] then
  4. moduleSettings = hudSettings[moduleName]
  5. else
  6. local settingsFile = fs.open("/Hud/hudSettings","a")
  7. settingsFile.write(moduleName..[[
  8. = {
  9. coreComputerID = 0,
  10. coreComputerProtocol = "energyCore",
  11. rfSuffixes = {"K","M","G","T","P","E","Z","Y"},
  12. alpha = 1,
  13. barColor = 0xff0000,
  14. textColor = 0xffff00,
  15. y = 1,
  16. x = 1,
  17. height = 9,
  18. width = 350,
  19. }
  20.  
  21. ]])
  22. settingsFile.close()
  23. os.loadAPI("/Hud/hudSettings")
  24. moduleSettings = hudSettings[moduleName]
  25. end
  26.  
  27. function formatRF(rf,forceSign)
  28. local sign
  29. if rf < 0 then
  30. sign = "-"
  31. I = 0-I
  32. elseif rf > 0 then
  33. sign = forceSign and "+" or ""
  34. else
  35. return "0RF"
  36. end
  37.  
  38. local log = math.floor(math.log(rf)/math.log(1000))
  39. return sign..string.format("%0.3f",rf/1000^log)..(log > 0 and moduleSettings.rfSuffixes[log] or "").."RF"
  40. end
  41.  
  42. canvas.addRectangle(
  43. (moduleSettings.x + hudSettings.x-1) * hudSettings.scale,
  44. (moduleSettings.y + hudSettings.y-1) * hudSettings.scale,
  45. (moduleSettings.width + 2) * hudSettings.scale,
  46. (moduleSettings.height + 2) * hudSettings.scale,
  47. hudSettings.backgroundColor*256 + math.floor(moduleSettings.alpha * hudSettings.alpha * 255)
  48. )
  49.  
  50. local bar = {
  51. size = {
  52. moduleSettings.width * hudSettings.scale,
  53. moduleSettings.height * hudSettings.scale
  54. },
  55. object = canvas.addRectangle(
  56. (moduleSettings.x + hudSettings.x) * hudSettings.scale,
  57. (moduleSettings.y + hudSettings.y) * hudSettings.scale,
  58. 0, 0,
  59. moduleSettings.barColor*256 + math.floor(moduleSettings.alpha * hudSettings.alpha * 255)
  60. ),
  61. }
  62.  
  63. local text = {
  64. object = canvas.addText(
  65. {
  66. (1+moduleSettings.x+hudSettings.x) * hudSettings.scale,
  67. (1+moduleSettings.y+hudSettings.y) * hudSettings.scale
  68. },
  69. "",
  70. moduleSettings.textColor*256 + math.floor(moduleSettings.alpha * hudSettings.alpha * 255)
  71. )
  72. }
  73. text.object.setScale(moduleSettings.height * hudSettings.scale / 9)
  74.  
  75. while true do
  76. local data
  77. repeat
  78. rednet.send(
  79. moduleSettings.coreComputerID, "",
  80. moduleSettings.coreComputerProtocol
  81. )
  82.  
  83. _, data = rednet.receive(moduleSettings.coreComputerProtocol, 1)
  84. until data
  85. bar.object.setSize(bar.size[1]*data.RF/data.MaxRF, bar.size[2])
  86. text.object.setText(formatRF(data.RF).."/"..formatRF(data.MaxRF).." ("..string.format("%0.2f",data.RF/data.MaxRF*100,true).."%)")
  87. end
  88.  
Advertisement
Add Comment
Please, Sign In to add comment