Advertisement
m3Zz

Tank Checker

Apr 25th, 2014
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.54 KB | None | 0 0
  1. tankSide = "right"
  2. signalSide = "back"
  3. updateDelay = 5 --in seconds
  4. fill = 0.2 --in % --> 0-1
  5. x,y = term.getSize()
  6.  
  7. function clear() --GUI stuff.
  8.  term.clear()
  9.  term.setCursorPos(1,1)
  10. end
  11.  
  12. function drawLine() --GUI stuff.
  13.  for i=1,x-1 do
  14.   write("-")
  15.  end
  16. end
  17.  
  18. function setup()
  19.  clear()
  20.  drawLine()
  21.  print("Monitoring on side: "..tankSide)
  22.  print("Sending signal to side: "..signalSide.." every "..updateDelay.." seconds.")
  23.  print("Outputting if below "..(fill*100).."%")
  24.  drawLine()
  25.  tank = peripheral.wrap(tankSide)
  26.  if tank == nil then
  27.   clear()
  28.   drawLine()
  29.   print("No tank found!")
  30.   drawLine()
  31.   error()
  32.  end
  33.  sleep(4)
  34. end
  35.  
  36. function display()
  37.  clear()
  38.  drawLine()
  39.  print("Status:")
  40.  print("Tank: "..currentContent.."/"..maxContent)
  41.  percentage = (currentContent *100) / maxContent
  42.  print("Tank is "..math.floor(percentage).."% full.")
  43.  --print("Redstone is: "..rsstate..".")
  44.  signal = currentContent < (maxContent * fill)
  45.  if signal then
  46.   print("Below Threshold!")
  47.  else
  48.   print("Above Threshold.")
  49.  end
  50.  print("")
  51.  print("Update Interval: "..updateDelay.."s")
  52.  drawLine()
  53. end
  54.  
  55. function main()
  56.  while true do
  57.   currentContent = 0
  58.   maxContent = 0
  59.   tankdata = tank.getTankInfo(tankSide)
  60.   for i,j in pairs(tankdata) do
  61.     for name,data in pairs(j) do
  62.       if name=="capacity" then
  63.        maxContent = data
  64.       elseif name=="amount" then
  65.        currentContent = data
  66.       end      
  67.     end
  68.   end
  69.   display()
  70.   rs.setOutput(signalSide,signal)
  71.   sleep(updateDelay)
  72.  end
  73. end
  74.  
  75. setup()
  76. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement