Advertisement
silverwolf1793

Lava Energy Control DRW20 FTB Minecraft

Aug 2nd, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.31 KB | None | 0 0
  1. ienergylevel=0
  2. net = peripheral.wrap("back")
  3. nmonitor = peripheral.wrap("left")
  4. ienergymax = 1990000
  5. imonitorx = 0
  6. imonitory = 0
  7. netitems = peripheral.getNames()
  8. index = 0
  9. names = ""
  10. lavalevel= 0
  11. ienergypercentage = 0
  12. ilavapercentage = 0
  13. contador1 = 0
  14. contador2 = 0
  15. contador3 = 0
  16. engines = {}
  17. drums = {}
  18. cells = {}
  19.  
  20. function initializate()
  21.  
  22.  for index,names in pairs(netitems) do
  23.   if(string.find(names,"drum")) then
  24.     drums [contador1]= names
  25.     contador1 = contador1 + 1
  26.   elseif(string.find(names,"cell")) then
  27.     cells [contador2]= names
  28.     contador2 = contador2 + 1
  29.  
  30.   elseif(string.find(names,"dynamo")) then
  31.     engines[contador3]=names
  32.     contador3 = contador3 + 1
  33.   end
  34.  end
  35.  
  36.  nmonitor.clear()
  37.  nmonitor.setTextScale(2)
  38.  imonitorx,imonitory =nmonitor.getSize()
  39. end
  40.  
  41.  
  42. function getvalues()
  43.   lavalevel = 0
  44.  for index,names in pairs(drums) do
  45.     if nil ~= net.callRemote(names,"getTankInfo")[1].contents then
  46.        lavalevel = lavalevel +  net.callRemote(names,"getTankInfo")[1].contents.amount    
  47.     end
  48.  end
  49.  for index,names in pairs(cells) do
  50.    ienergylevel = net.callRemote(names,"getEnergyStored")  
  51.  end
  52.  
  53. ienergypercentage = math.floor((ienergylevel*100)/ienergymax)
  54. ilavapercentage = math.floor((lavalevel*100)/((contador1+1)*256000))
  55. end
  56.  
  57. function enginecontrol(control)
  58.  
  59.  if control then
  60.     for index,names in pairs(engines) do
  61.         net.callRemote(names,"setRedstoneControl","DISABLED")
  62.     end
  63.  else
  64.     for index,names in pairs(engines) do
  65.         net.callRemote(names,"setRedstoneControl","High")
  66.     end
  67.  end
  68. end
  69.  
  70.  
  71.  
  72. function mastercontrol()
  73.  if (ienergylevel<ienergymax and ilavapercentage>=10 ) then
  74.    enginecontrol(true)
  75.    print("Nivel de energia: ",ienergylevel)
  76.    print("Nivel de lava: ",lavalevel)
  77.  else
  78.    enginecontrol(false)
  79.    print("Nivel de energia: ",ienergylevel)
  80.    print("Nivel de lava: ",lavalevel)
  81.  end
  82. end
  83.  
  84. function monitor()
  85.  buffer = "Energy Level: " .. tostring(ienergypercentage) .. "%"
  86.  nmonitor.setCursorPos((imonitorx/2)-(string.len(buffer)/2)+2,(imonitory/2)-1)
  87.  nmonitor.write(buffer)
  88.  
  89.  buffer = "Lava Level: " .. tostring(ilavapercentage) .. "%"
  90.  nmonitor.setCursorPos((imonitorx/2)-(string.len(buffer)/2)+2,(imonitory/2)+1)
  91.  nmonitor.write(buffer)
  92. end
  93.  
  94. initializate()
  95. while(true) do
  96.     sleep(.1)
  97.     getvalues()
  98.     mastercontrol()
  99.     monitor()
  100. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement