Advertisement
rito_kun

4 Turbines + 1 reacteur

Jul 21st, 2015
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.14 KB | None | 0 0
  1. --Initialisation des peripheriques
  2. --Connexion par cable. Adapter les noms
  3. --Programme pour un ecran 6x5
  4. --sleep(1)
  5. affichage = peripheral.wrap("bottom")
  6. batterie = peripheral.wrap("mekanism_machine_0")
  7. reacteur = peripheral.wrap("BigReactors-Reactor_7")
  8. turbine1 = peripheral.wrap("BigReactors-Turbine_0")
  9. turbine2 = peripheral.wrap("BigReactors-Turbine_1")
  10. turbine3 = peripheral.wrap("BigReactors-Turbine_6")
  11. turbine4 = peripheral.wrap("BigReactors-Turbine_7")
  12. --
  13.  
  14. --message moniteur
  15. print("")
  16. print("Programme de gestion de reacteur et turbines")
  17. print("Made by Rito_kun")
  18. print("")
  19. print("Appuyer sur CTRL + T pendant 2 secondes pour arreter le programme")
  20. --
  21.  
  22. while true do
  23. maxBatterie = batterie.getMaxEnergyStored()
  24. reserveBatterie = batterie.getEnergyStored()
  25. pourcentBatterie = math.floor((reserveBatterie/maxBatterie)*100)
  26.  
  27. vitesseRpmTurbine1 = math.floor(turbine1.getRotorSpeed())
  28. turbine1ProdEnergie = turbine1.getEnergyProducedLastTick()
  29.  
  30. vitesseRpmTurbine2 = math.floor(turbine2.getRotorSpeed())
  31. turbine2ProdEnergie = turbine2.getEnergyProducedLastTick()
  32.  
  33. vitesseRpmTurbine3 = math.floor(turbine3.getRotorSpeed())
  34. turbine3ProdEnergie = turbine3.getEnergyProducedLastTick()
  35.  
  36. vitesseRpmTurbine4 = math.floor(turbine4.getRotorSpeed())
  37. turbine4ProdEnergie = turbine4.getEnergyProducedLastTick()
  38.  
  39. totalProdEnergie = math.floor((turbine1ProdEnergie+turbine2ProdEnergie+turbine3ProdEnergie+turbine4ProdEnergie)/1000)
  40.  
  41. totalProdEnergieRF = turbine1ProdEnergie+turbine2ProdEnergie+turbine3ProdEnergie+turbine4ProdEnergie
  42. consBatterieRF = batterie.getLastOutput()*0.4
  43.  
  44. --consommation = totalProdEnergieRF-consBatterieRF
  45. rentabiliteRF = totalProdEnergieRF-consBatterieRF
  46. rentabilite_kRF = math.floor(rentabiliteRF/1000)
  47.  
  48. if pourcentBatterie <= 5 then
  49.   affichage.setTextColor(colors.white)
  50.   affichage.setTextScale(1)
  51.   affichage.setCursorPos(10,1)
  52.   affichage.write("Batterie :")
  53.  
  54.   affichage.setTextColor(colors.red)
  55.   affichage.setTextScale(1)
  56.   affichage.setCursorPos(21,1)
  57.   affichage.write(pourcentBatterie.." %")
  58.  
  59.   affichage.setTextColor(colors.white)
  60.   affichage.setTextScale(1)
  61.   affichage.setCursorPos(25,1)
  62.   affichage.write(" sur 204,8 gRF")
  63.  
  64.   affichage.setTextColor(colors.white)
  65.   affichage.setTextScale(1)
  66.   affichage.setCursorPos(10,2)
  67.   affichage.write("Production totale : "..totalProdEnergie.." kRF/t")
  68.  
  69.   if rentabilite_kRF >= 0 then
  70.     affichage.setTextColor(colors.lime)
  71.     affichage.setTextScale(1)
  72.     affichage.setCursorPos(13,3)
  73.     affichage.write("RentabilitåA9 : "..rentabilite_kRF.." kRF/t")
  74.   end
  75.  
  76.     if rentabilite_kRF < 0 then
  77.     affichage.setTextColor(colors.red)
  78.     affichage.setTextScale(1)
  79.     affichage.setCursorPos(13,3)
  80.     affichage.write("RentabilitåA9 : "..rentabilite_kRF.." kRF/t")
  81.  end
  82. end
  83.  
  84. if pourcentBatterie > 5 then
  85.  
  86.   affichage.setTextColor(colors.white)
  87.   affichage.setTextScale(1)
  88.   affichage.setCursorPos(10,1)
  89.   affichage.write("Batterie :")
  90.  
  91.   affichage.setTextColor(colors.green)
  92.   affichage.setTextScale(1)
  93.   affichage.setCursorPos(21,1)
  94.   affichage.write(pourcentBatterie.." %")
  95.  
  96.   affichage.setTextColor(colors.white)
  97.   affichage.setTextScale(1)
  98.   affichage.setCursorPos(25,1)
  99.   affichage.write(" sur 204,8 gRF")
  100.  
  101.   affichage.setTextColor(colors.white)
  102.   affichage.setTextScale(1)
  103.   affichage.setCursorPos(10,2)
  104.   affichage.write("Production totale : "..totalProdEnergie.." kRF/t")
  105.  
  106.   if rentabilite_kRF >= 0 then
  107.     affichage.setTextColor(colors.lime)
  108.     affichage.setTextScale(1)
  109.     affichage.setCursorPos(13,3)
  110.     affichage.write("RentabilitåA9 : "..rentabilite_kRF.." kRF/t")
  111.  
  112.   if rentabilite_kRF < 0 then
  113.     affichage.setTextColor(colors.red)
  114.     affichage.setTextScale(1)
  115.     affichage.setCursorPos(13,3)
  116.     affichage.write("RentabilitåA9 : "..rentabilite_kRF.." kRF/t")
  117.   end
  118. end
  119.  
  120. if pourcentBatterie >= 95 then
  121.  
  122.   affichage.setTextColor(colors.white)
  123.   affichage.setTextScale(1)
  124.   affichage.setCursorPos(10,1)
  125.   affichage.write("Batterie :")
  126.  
  127.   affichage.setTextColor(colors.green)
  128.   affichage.setTextScale(1)
  129.   affichage.setCursorPos(21,1)
  130.   affichage.write(pourcentBatterie.." %")
  131.  
  132.   affichage.setTextColor(colors.white)
  133.   affichage.setTextScale(1)
  134.   affichage.setCursorPos(25,1)
  135.   affichage.write(" sur 204,8 gRF")
  136.  
  137.   affichage.setTextColor(colors.white)
  138.   affichage.setTextScale(1)
  139.   affichage.setCursorPos(10,2)
  140.   affichage.write("Production totale : "..totalProdEnergie.." kRF/t")
  141. end
  142.  
  143.   if rentabilite_kRF >= 0 then
  144.     affichage.setTextColor(colors.lime)
  145.     affichage.setTextScale(1)
  146.     affichage.setCursorPos(13,3)
  147.     affichage.write("RentabilitåA9 : "..rentabilite_kRF.." kRF/t")
  148.     end
  149.  
  150.     if rentabilite_kRF < 0 then
  151.     affichage.setTextColor(colors.red)
  152.     affichage.setTextScale(1)
  153.     affichage.setCursorPos(13,3)
  154.     affichage.write("RentabilitåA9 : "..rentabilite_kRF.." kRF/t")
  155.  end
  156. end
  157.  
  158. if pourcentBatterie <= 5 then
  159.   reacteur.setActive(true)
  160.   turbine1.setInductorEngaged(false)
  161.   turbine2.setInductorEngaged(false)
  162.   turbine3.setInductorEngaged(false)
  163.   turbine4.setInductorEngaged(false)
  164. end
  165.  
  166. if pourcentBatterie >= 95 then
  167.   reacteur.setActive(false)
  168.   turbine1.setInductorEngaged(false)
  169.   turbine2.setInductorEngaged(false)
  170.   turbine3.setInductorEngaged(false)
  171.   turbine4.setInductorEngaged(false)
  172.   sleep(1)
  173. end
  174.  
  175. -- affichage Turbines
  176.   affichage.setTextColor(colors.lightBlue)
  177.   affichage.setTextScale(1)
  178.   affichage.setCursorPos(5,6)
  179.   affichage.write("Turbine n¥B01")
  180.   affichage.setTextColor(colors.white)
  181.   affichage.setTextScale(1)
  182.   affichage.setCursorPos(5,7)
  183.   affichage.write(turbine1ProdEnergie.." RF/t")
  184.   affichage.setTextColor(colors.gray)
  185.   affichage.setTextScale(1)
  186.   affichage.setCursorPos(5,8)
  187.   affichage.write(vitesseRpmTurbine1.." RPM")
  188.  
  189.   affichage.setTextColor(colors.lightBlue)
  190.   affichage.setTextScale(1)
  191.   affichage.setCursorPos(5,10)
  192.   affichage.write("Turbine n¥B02")
  193.   affichage.setTextColor(colors.white)
  194.   affichage.setTextScale(1)
  195.   affichage.setCursorPos(5,11)
  196.   affichage.write(turbine2ProdEnergie.." RF/t")
  197.   affichage.setTextColor(colors.gray)
  198.   affichage.setTextScale(1)
  199.   affichage.setCursorPos(5,12)
  200.   affichage.write(vitesseRpmTurbine2.." RPM")
  201.  
  202.   affichage.setTextColor(colors.lightBlue)
  203.   affichage.setTextScale(1)
  204.   affichage.setCursorPos(27,6)
  205.   affichage.write("Turbine n¥B03")
  206.   affichage.setTextColor(colors.white)
  207.   affichage.setTextScale(1)
  208.   affichage.setCursorPos(27,7)
  209.   affichage.write(turbine3ProdEnergie.." RF/t")
  210.   affichage.setTextColor(colors.gray)
  211.   affichage.setTextScale(1)
  212.   affichage.setCursorPos(27,8)
  213.   affichage.write(vitesseRpmTurbine3.." RPM")
  214.  
  215.   affichage.setTextColor(colors.lightBlue)
  216.   affichage.setTextScale(1)
  217.   affichage.setCursorPos(27,10)
  218.   affichage.write("Turbine n¥B04")
  219.   affichage.setTextColor(colors.white)
  220.   affichage.setTextScale(1)
  221.   affichage.setCursorPos(27,11)
  222.   affichage.write(turbine4ProdEnergie.." RF/t")
  223.   affichage.setTextColor(colors.gray)
  224.   affichage.setTextScale(1)
  225.   affichage.setCursorPos(27,12)
  226.   affichage.write(vitesseRpmTurbine4.." RPM")
  227.  
  228.  
  229. -- Affichage reacteur actif ou non
  230. --reacteur_activite = reacteur.getActive()
  231.  
  232. if reacteur.getActive() == true then
  233.   affichage.setTextColor(colors.red)
  234.   affichage.setTextScale(1)
  235.   affichage.setCursorPos(17,4)
  236.   affichage.write("Reacteur Actif")
  237. end
  238.  
  239. if reacteur.getActive() == false then
  240.   affichage.setTextColor(colors.green)
  241.   affichage.setTextScale(1)
  242.   affichage.setCursorPos(17,4)
  243.   affichage.write("Reacteur Inactif")
  244. end
  245.  
  246. if vitesseRpmTurbine1 >= 1780 then
  247.   turbine1.setInductorEngaged(true)
  248. end
  249.  
  250. if vitesseRpmTurbine1 < 1770 then
  251.   turbine1.setInductorEngaged(false)
  252. end
  253.  
  254. if vitesseRpmTurbine2 >= 1780 then
  255.   turbine2.setInductorEngaged(true)
  256. end
  257.  
  258. if vitesseRpmTurbine2 < 1770 then
  259.   turbine2.setInductorEngaged(false)
  260. end
  261.  
  262. if vitesseRpmTurbine3 >= 1780 then
  263.   turbine3.setInductorEngaged(true)
  264. end
  265.  
  266. if vitesseRpmTurbine3 < 1770 then
  267.   turbine3.setInductorEngaged(false)
  268. end
  269.  
  270. if vitesseRpmTurbine4 >= 1780 then
  271.   turbine4.setInductorEngaged(true)
  272. end
  273.  
  274. if vitesseRpmTurbine4 < 1770 then
  275.   turbine4.setInductorEngaged(false)
  276. end
  277.  
  278. sleep(1.5)
  279. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement