Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tankSide = "right"
- signalSide = "back"
- updateDelay = 5 --in seconds
- fill = 0.2 --in % --> 0-1
- x,y = term.getSize()
- function clear() --GUI stuff.
- term.clear()
- term.setCursorPos(1,1)
- end
- function drawLine() --GUI stuff.
- for i=1,x-1 do
- write("-")
- end
- end
- function setup()
- clear()
- drawLine()
- print("Monitoring on side: "..tankSide)
- print("Sending signal to side: "..signalSide.." every "..updateDelay.." seconds.")
- print("Outputting if below "..(fill*100).."%")
- drawLine()
- tank = peripheral.wrap(tankSide)
- if tank == nil then
- clear()
- drawLine()
- print("No tank found!")
- drawLine()
- error()
- end
- sleep(4)
- end
- function display()
- clear()
- drawLine()
- print("Status:")
- print("Tank: "..currentContent.."/"..maxContent)
- percentage = (currentContent *100) / maxContent
- print("Tank is "..math.floor(percentage).."% full.")
- --print("Redstone is: "..rsstate..".")
- signal = currentContent < (maxContent * fill)
- if signal then
- print("Below Threshold!")
- else
- print("Above Threshold.")
- end
- print("")
- print("Update Interval: "..updateDelay.."s")
- drawLine()
- end
- function main()
- while true do
- currentContent = 0
- maxContent = 0
- tankdata = tank.getTankInfo(tankSide)
- for i,j in pairs(tankdata) do
- for name,data in pairs(j) do
- if name=="capacity" then
- maxContent = data
- elseif name=="amount" then
- currentContent = data
- end
- end
- end
- display()
- rs.setOutput(signalSide,signal)
- sleep(updateDelay)
- end
- end
- setup()
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement