Advertisement
Nokiyen

inventoryCheckerMulti

Jun 14th, 2014
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.46 KB | None | 0 0
  1. --[[
  2. ***********
  3.  * inventoryCheckerMulti
  4.  *
  5. **********
  6. ]]
  7.  
  8.  
  9. ----------
  10. -- Variables.
  11. ----------
  12. -- define vars.
  13. local refuelLevel = 5000
  14.  
  15. local comparators = {
  16.     coal = {-217, 70, 683, 0}
  17.     birchWd = {-217, 70, 683, 3}
  18.     birchSp = {-217, 70, 676, 3}
  19. }
  20.  
  21. local refuelPoint = {-219, 67, 684, 0}
  22.  
  23. local transporterID = 601
  24.  
  25. -- create move instance.
  26. dofile("move")
  27. local moveObj, error_msg = Move.new()
  28. if moveObj == false then
  29.     print("Something wrong. Can't create Move obj.")
  30.     print(error_msg)
  31.     return
  32. end
  33.  
  34.  
  35. ----------
  36. -- Functions.
  37. ----------
  38. function goToPoint(posX, posY, posZ, dir)
  39.     local distX, distY, distZ = moveObj:getDistances(posX, posY, posZ)
  40.    
  41.     moveObj:goStraightX(distX)
  42.     moveObj:goStraightZ(distZ)
  43.     moveObj:goStraightY(distY)
  44.     moveObj:rotate(dir)
  45. end
  46.  
  47. function returnToPoint(posX, posY, posZ, dir)
  48.     local distX, distY, distZ = moveObj:getDistances(posX, posY, posZ)
  49.    
  50.     moveObj:goStraightY(distY)
  51.     moveObj:goStraightZ(distZ)
  52.     moveObj:goStraightX(distX)
  53.     moveObj:rotate(dir)
  54. end
  55.  
  56. function returnToIniPoint()
  57.     returnToPoint(moveObj.initialPos[1], moveObj.initialPos[2], moveObj.initialPos[3], moveObj.initialPos[4])
  58. end
  59.  
  60. function refuel()
  61.     if turtle.getFuelLevel() < refuelLevel then
  62.         goToPoint(refuelPoint[1],refuelPoint[2],refuelPoint[3],refuelPoint[4])
  63.         turtle.select(1)
  64.         for i=1, 8, 1 do
  65.             turtle.suck()
  66.         end
  67.         for i=1, 8, 1 do
  68.             turtle.select(1)
  69.             turtle.refuel()
  70.         end
  71.         turtle.select(1)
  72.         returnToIniPoint()
  73.     end
  74.    
  75.     if turtle.getFuelLevel() < refuelLevel then
  76.         return false
  77.     else
  78.         return true
  79.     end
  80. end
  81.  
  82. function getTime()
  83.     local hour, min = math.modf(os.time())
  84.     min = math.floor( min * 60 )
  85.    
  86.     local time = os.day()..":"..hour..":"..min
  87.     return time
  88. end
  89.  
  90. function boolToNum(bool)
  91.     if bool == true then
  92.         return 1
  93.     else
  94.         return 0
  95.     end
  96. end
  97.  
  98.  
  99. ----------
  100. -- Main Thread.
  101. ----------
  102. term.clear()
  103. term.setCursorPos(1,1)
  104. term.write("Inventory Checker Multi")
  105.  
  106. returnToIniPoint()
  107. rednet.open("left")
  108. while true do
  109.     refuel()
  110.     local id, msg = rednet.receive()
  111.     if id ~= transporterID then
  112.         break
  113.     end
  114.     local pos = comparators[msg]
  115.     goToPoint(pos[1], pos[2], pos[3], pos[4])
  116.     local level = rs.getAnalogInput("front")
  117.     rednet.send(transporterID, level)
  118.  
  119.     term.scroll(1)
  120.     term.setCursorPos(1,1)
  121.     term.clearLine()
  122.     term.write("Inventory Checker Multi")
  123.     term.setCursorPos(1,2)
  124.     term.clearLine()
  125.     term.setCursorPos(1,12)
  126.     term.write("got level. "..getTime().." / "..msg.." / "..level)
  127. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement