Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[
- ***********
- * inventoryCheckerMulti
- *
- **********
- ]]
- ----------
- -- Variables.
- ----------
- -- define vars.
- local refuelLevel = 5000
- local comparators = {
- coal = {-217, 70, 683, 0}
- birchWd = {-217, 70, 683, 3}
- birchSp = {-217, 70, 676, 3}
- }
- local refuelPoint = {-219, 67, 684, 0}
- local transporterID = 601
- -- create move instance.
- dofile("move")
- local moveObj, error_msg = Move.new()
- if moveObj == false then
- print("Something wrong. Can't create Move obj.")
- print(error_msg)
- return
- end
- ----------
- -- Functions.
- ----------
- function goToPoint(posX, posY, posZ, dir)
- local distX, distY, distZ = moveObj:getDistances(posX, posY, posZ)
- moveObj:goStraightX(distX)
- moveObj:goStraightZ(distZ)
- moveObj:goStraightY(distY)
- moveObj:rotate(dir)
- end
- function returnToPoint(posX, posY, posZ, dir)
- local distX, distY, distZ = moveObj:getDistances(posX, posY, posZ)
- moveObj:goStraightY(distY)
- moveObj:goStraightZ(distZ)
- moveObj:goStraightX(distX)
- moveObj:rotate(dir)
- end
- function returnToIniPoint()
- returnToPoint(moveObj.initialPos[1], moveObj.initialPos[2], moveObj.initialPos[3], moveObj.initialPos[4])
- end
- function refuel()
- if turtle.getFuelLevel() < refuelLevel then
- goToPoint(refuelPoint[1],refuelPoint[2],refuelPoint[3],refuelPoint[4])
- turtle.select(1)
- for i=1, 8, 1 do
- turtle.suck()
- end
- for i=1, 8, 1 do
- turtle.select(1)
- turtle.refuel()
- end
- turtle.select(1)
- returnToIniPoint()
- end
- if turtle.getFuelLevel() < refuelLevel then
- return false
- else
- return true
- end
- end
- function getTime()
- local hour, min = math.modf(os.time())
- min = math.floor( min * 60 )
- local time = os.day()..":"..hour..":"..min
- return time
- end
- function boolToNum(bool)
- if bool == true then
- return 1
- else
- return 0
- end
- end
- ----------
- -- Main Thread.
- ----------
- term.clear()
- term.setCursorPos(1,1)
- term.write("Inventory Checker Multi")
- returnToIniPoint()
- rednet.open("left")
- while true do
- refuel()
- local id, msg = rednet.receive()
- if id ~= transporterID then
- break
- end
- local pos = comparators[msg]
- goToPoint(pos[1], pos[2], pos[3], pos[4])
- local level = rs.getAnalogInput("front")
- rednet.send(transporterID, level)
- term.scroll(1)
- term.setCursorPos(1,1)
- term.clearLine()
- term.write("Inventory Checker Multi")
- term.setCursorPos(1,2)
- term.clearLine()
- term.setCursorPos(1,12)
- term.write("got level. "..getTime().." / "..msg.." / "..level)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement