Advertisement
lucifersamfr

mineLoader

Mar 15th, 2014
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.51 KB | None | 0 0
  1. local slotCoalChest = 16
  2.  
  3. local modem = peripheral.wrap("right")
  4.  
  5. local idChannel = 10
  6. local idRespChannel = 11
  7. local cmdChannel = 12
  8. local cmdRespChannel = 13
  9.  
  10. local myID = os.getComputerID()
  11. local myLabel = os.getComputerLabel()
  12. local myType = "chunkLoader"
  13.  
  14. modem.open(idChannel)
  15. modem.open(cmdChannel)
  16.  
  17. function placeChest(chestType)
  18.   if chestType == "coal" then
  19.     print(" [INV] Providing Coal chest.")
  20.     slot = slotCoalChest
  21.     else
  22.       return false
  23.   end
  24.  
  25.   if ( turtle.detect() ) then
  26.       turtle.dig()
  27.   end
  28.   turtle.select(slot)
  29.   return turtle.place()
  30. end
  31.  
  32. function storeChest()
  33.   if chestType == "coal" then
  34.     print(" [INV] Storing Coal chest.")
  35.     slot = slotCoalChest
  36.     else
  37.       return false
  38.   end
  39.   turtle.select(1)
  40.   return turtle.transferTo(slot)
  41. end
  42.  
  43. function refuel()
  44.  
  45.   local lastLevel = turtle.getFuelLevel()
  46.   if ( lastLevel < 1000 ) then
  47.     print(" [FUEL] ALERT low level : Refuel turtle with 1 stack of coal")
  48.    
  49.     if ( placeChest("coal") ) then
  50.       turtle.select(1)
  51.       --Wait for a full stack and refuel
  52.       while ( turtle.getItemCount(1) < 64 ) do
  53.         turtle.suck()
  54.       end
  55.       turtle.refuel(64)
  56.       turtle.dig()
  57.       storeChest("sort")
  58.       print(" [FUEL] Level "..lastLevel.." -> "..turtle.getFuelLevel())
  59.     end
  60.   end
  61. end
  62.  
  63. function move(mode)
  64.   if ( mode == 1 ) then
  65.     turtle.select(1)
  66.     turtle.turnRight()
  67.     refuel()
  68.     --get spot loader behind
  69.     turtle.forward()
  70.     turtle.turnLeft()
  71.     turtle.dig()
  72.     --go forward and place the spot loader
  73.     turtle.turnLeft()
  74.     turtle.forward()
  75.     while ( turtle.detect() ) do
  76.       turtle.dig()
  77.       sleep(2)
  78.     end
  79.     turtle.forward()
  80.     turtle.turnRight()
  81.     while ( turtle.detect() ) do
  82.       turtle.dig()
  83.       sleep(2)
  84.     end
  85.     turtle.place()
  86.     return true
  87.    
  88.   elseif ( mode == 2 ) then
  89.     if( move1() ) then
  90.       sleep(2)
  91.       return move1()
  92.     end
  93.   end
  94.  
  95.   return false
  96. end
  97.  
  98. while true do
  99.   local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
  100.   local op=textutils.unserialize(message)
  101.   if (op.name == "ID" ) then
  102.     local rep={name="ID", ID=myID, label=myLabel, wType=myType}
  103.     modem.transmit(idRespChannel,idChannel,textutils.serialize(rep))
  104.   elseif (op.name == "mine" ) then
  105.     if ( move(op.mode) ) then
  106.       local rep={name="waiting", ID=myID, label=myLabel, wType=myType}
  107.       modem.transmit(cmdRespChannel,cmdChannel,textutils.serialize(rep))
  108.     end
  109.   else
  110.     print("LE MONSIEUR EST UN BOULET")
  111.   end
  112. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement