Taruu

statusmonitor

Jun 11th, 2020
500
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.34 KB | None | 0 0
  1. local component = require("component")
  2. list_all_cell = {
  3.     {"d84e5c05-5fba-4fea-b523-df103932002e","aea80191-5961-486a-a175-5b3b1e70895f","38c29be3-9d12-48d2-9147-09eac04bd3ad"},
  4.     {"e8938c89-fd36-4d4c-b13a-414043937d2d","cdc87287-8ebc-4a5b-85ed-fb6630cd540c","c591cd76-0558-48cb-b7ea-2aeab05f3498"},
  5.     {"b6ff451b-5eb8-4fb8-bf60-e1ff8d2f2b6d","85e3e65f-0a14-4e34-983f-facb613dc823","6fe772a2-d5b2-45af-ab70-34a68786135d"},
  6.     {"c8f421d6-a31f-4c08-9bdd-286f6505080d","a43d2e3d-ba3a-4eb9-a588-5f02e7d96fe3","ac6969c0-9cd1-4356-ab2e-6ca6cf3c1c21"}
  7. }
  8.  
  9. list_all_disel_generator = {"984e503d-983d-45d2-bc18-1b33ff169166","d0fd57a5-dae2-4b8d-ad17-8a2b84218806","d447e55e-763c-4696-b5f9-a04bbe2eb851"}
  10. print(list_all_cell)
  11. max_energy_in_cell = 2000000
  12. min_average = 1000000
  13. function pass()
  14. end
  15.  
  16. function floor_to_step(what,step)
  17.     return math.floor(what/step) * step
  18. end
  19.  
  20. function sum(list)
  21.     result = 0
  22.     for item in ipairs(list) do
  23.     result = result + list[item].getEnergyStored()
  24.     end
  25.     return result
  26. end
  27.  
  28. function on_off_generator(list_cells,list_generator)
  29.    
  30.     for id in ipairs(list_cells) do
  31.         local average_cell = sum(list_cells[id])/3
  32.         local generator = list_generator[id]
  33.         if generator == nil then
  34.         break
  35.         end
  36.         print(average_cell,generator,id,generator_status)
  37.         local generator_status = generator.isActive()
  38.         if average_cell < min_average then
  39.             if generator_status then
  40.                 pass()
  41.             else
  42.                 generator.setEnabled(true)
  43.             end
  44.         elseif average_cell >= max_energy_in_cell-120 then
  45.             if generator_status == false then
  46.                 pass()
  47.             else
  48.                 generator.setEnabled(false)
  49.             end
  50.         else
  51.             pass()
  52.         end
  53.     end
  54.  
  55. end
  56.  
  57. print("config cells")
  58. for col_three in ipairs(list_all_cell) do
  59.     for row_item in ipairs(list_all_cell[col_three]) do
  60.         temp_str_id = list_all_cell[col_three][row_item]
  61.         list_all_cell[col_three][row_item] = component.proxy(component.get(temp_str_id))
  62.    
  63.     end
  64.     --print("sum",floor_to_step(sum(list_all_cell[col_three])/3,0.01))
  65. end
  66. print("config generator")
  67. for col_three in ipairs(list_all_disel_generator) do
  68.     temp_str_id = list_all_disel_generator[col_three]
  69.     list_all_disel_generator[col_three] = component.proxy(component.get(temp_str_id))
  70.     list_all_disel_generator[col_three].enableComputerControl(true)
  71.     list_all_disel_generator[col_three].setEnabled(false)
  72. end
  73.  
  74.  
  75. while true do
  76. os.sleep(2)
  77. print("checking")
  78. on_off_generator(list_all_cell,list_all_disel_generator)
  79. end
Add Comment
Please, Sign In to add comment