Advertisement
Aynigma

Reactor

Jul 18th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.68 KB | None | 0 0
  1. re = peripheral.wrap("back")
  2. mo = peripheral.wrap("monitor_4")
  3.  
  4. ba_0 = peripheral.wrap("thermalexpansion:storage_cell_0")
  5. ba_1 = peripheral.wrap("thermalexpansion:storage_cell_1")
  6. ba_2 = peripheral.wrap("thermalexpansion:storage_cell_2")
  7. ba_3 = peripheral.wrap("thermalexpansion:storage_cell_3")
  8. ba_4 = peripheral.wrap("thermalexpansion:storage_cell_4")
  9.  
  10.  
  11. manualOverride = false
  12.  
  13. bad_0 = {}
  14. bad_0["Ref"] = ba_0
  15. bad_0["Capacity"] = 0
  16. bad_0["LastCharge"] = 0
  17. bad_0["Charge"] = bad_0["Ref"].getRFStored()
  18. bad_0["Delta"] = 0
  19.  
  20. bad_1 = {}
  21. bad_1["Ref"] = ba_1
  22. bad_1["Capacity"] = 0
  23. bad_1["LastCharge"] = 0
  24. bad_1["Charge"] = bad_1["Ref"].getRFStored()
  25. bad_1["Delta"] = 0
  26.  
  27. bad_2 = {}
  28. bad_2["Ref"] = ba_2
  29. bad_2["Capacity"] = 0
  30. bad_2["LastCharge"] = 0
  31. bad_2["Charge"] = bad_2["Ref"].getRFStored()
  32. bad_2["Delta"] = 0
  33.  
  34. bad_3 = {}
  35. bad_3["Ref"] = ba_3
  36. bad_3["Capacity"] = 0
  37. bad_3["LastCharge"] = 0
  38. bad_3["Charge"] = bad_3["Ref"].getRFStored()
  39. bad_3["Delta"] = 0
  40.  
  41. bad_4 = {}
  42. bad_4["Ref"] = ba_4
  43. bad_4["Capacity"] = 0
  44. bad_4["LastCharge"] = 0
  45. bad_4["Charge"] = bad_4["Ref"].getRFStored()
  46. bad_4["Delta"] = 0
  47.  
  48. bad_T = {}
  49. bad_T["Capacity"] = 0
  50. bad_T["Charge"] = 0
  51. bad_T["Delta"] = 0
  52. bad_T["Percent"] = 0
  53.  
  54.  
  55. batteries = {}
  56. batteries[0] = bad_0
  57. batteries[1] = bad_1
  58. batteries[2] = bad_2
  59. batteries[3] = bad_3
  60. batteries[4] = bad_4
  61.  
  62. for i = 0, table.getn(batteries), 1 do
  63.  
  64.  batteries[i]["Capacity"] = batteries[i]["Ref"].getRFCapacity()
  65.  bad_T["Capacity"] = bad_T["Capacity"] + batteries[i]["Capacity"]
  66.  
  67. end
  68.  
  69.  
  70. function updateBatteries()
  71.  
  72.  bad_T["Charge"] = 0
  73.  bad_T["Delta"] = 0
  74.  
  75.  for i = 0, table.getn(batteries), 1 do
  76.  
  77.   batteries[i]["LastCharge"] = batteries[i]["Charge"]
  78.   batteries[i]["Charge"] = batteries[i]["Ref"].getRFStored()
  79.   batteries[i]["Delta"] = batteries[i]["Charge"] - batteries[i]["LastCharge"]
  80.  
  81.   bad_T["Charge"] = bad_T["Charge"] + batteries[i]["Charge"]
  82.   bad_T["Delta"] = bad_T["Delta"] + batteries[i]["Delta"]
  83.  
  84.  end
  85.  
  86.  bad_T["Percent"] = bad_T["Charge"] / bad_T["Capacity"] * 100
  87.  
  88. end
  89.  
  90.  
  91. function draw ()
  92.  
  93.  mo.clear()
  94.  width, height = mo.getSize()
  95.  
  96.  --Reactor
  97.  mo.setCursorPos(3, 1)
  98.  mo.blit("REACTOR", "fffffff", "0000000")
  99.  
  100.  mo.setCursorPos(1, 3)
  101.  if(re.getActive()) then
  102.   mo.blit("Status : ON", "000000f0f00", "fffffffffdd")
  103.  else
  104.     mo.blit("Status : OFF", "000000f0ffff", "fffffffffeee")
  105.  end
  106.  
  107.  mo.setCursorPos(1, 5)
  108.  mo.write("Energie : ")
  109.  mo.setCursorPos(3, 6)
  110.  mo.write("- Produite : "..re.getEnergyProducedLastTick().." RF")
  111.  mo.setCursorPos(3, 7)
  112.  mo.write("- Stockee : "..re.getEnergyStored().." RF")
  113.  
  114.  mo.setCursorPos(1, 9)
  115.  mo.write("Temperature : ")
  116.  mo.setCursorPos(3, 10)
  117.  mo.write("- Interne : "..re.getFuelTemperature().." °C")
  118.  mo.setCursorPos(3, 11)
  119.  mo.write("- Externe : "..re.getCasingTemperature().." °C")
  120.  
  121.  
  122.  --Splitter
  123.  for i = 1, height, 1 do
  124.   if math.fmod(i, 3) == 0 then  
  125.    mo.setCursorPos(width / 2, i)
  126.    mo.blit(" ", "f", "7")
  127.   end
  128.  end
  129.  
  130.  --Batteries
  131.  mo.setCursorPos(30, 1)
  132.  mo.blit("BATTERIES", "fffffffff", "000000000")
  133.  
  134.  mo.setCursorPos(20, 3)
  135.  mo.write("Nombre : "..table.getn(batteries))
  136.  
  137.  mo.setCursorPos(20, 5)
  138.  mo.write("Charge : "..bad_T["Percent"].." %")
  139.  
  140.  mo.setCursorPos(20, 7)
  141.  mo.write("Capacite : "..bad_T["Capacity"].." RF")
  142.  
  143.  mo.setCursorPos(20, 9)
  144.  mo.write("Stockee : "..bad_T["Charge"].." RF")
  145.  
  146.  mo.setCursorPos(20, 11)
  147.  mo.write("Changement : "..bad_T["Delta"].. " RF")
  148.  
  149. end
  150.  
  151.  
  152.  
  153.  
  154.  
  155. -- Update
  156. while true do
  157.  
  158.  updateBatteries()
  159.  
  160.  
  161.  if not manualOverride then
  162.   if bad_T["Percent"] >= 99 or re.getEnergyStored() >= 80000 then
  163.    re.setActive(false)
  164.   end
  165.  
  166.   if bad_T["Percent"] <= 1 then
  167.    re.setActive(true)
  168.   end
  169.  end
  170.  
  171.  
  172.  draw()
  173. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement