Advertisement
Guest User

control

a guest
Feb 8th, 2016
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.98 KB | None | 0 0
  1. turtle.select(1)
  2. rednet.open("right")
  3.  
  4. function dance()
  5.     shell.run("dance")
  6. end
  7.  
  8. function receive()
  9.     scrap, message = rednet.receive()
  10.     return message
  11. end
  12.  
  13. function stopDancing()
  14.     while true do
  15.         messsage = receive()
  16.         if message == "Dance" then break end
  17.     end
  18. end
  19.  
  20. function inspect()
  21.     a, b = turtle.inspect()
  22.     if a then rednet.send(0,"Currently facing:\n" .. b.name) end
  23. end
  24.  
  25. while true do
  26.     message = receive()
  27.     if message == "Forward" then
  28.         if turtle.getFuelLevel() == 0 then
  29.             rednet.send(0,"Error: Out of fuel.")
  30.         else
  31.             turtle.dig()
  32.             turtle.forward()
  33.         end
  34.         inspect()
  35.     elseif message == "Backward" then
  36.         if turtle.getFuelLevel() == 0 then
  37.             rednet.send(0,"Error: Out of fuel.")
  38.         else
  39.             turtle.back()
  40.         end
  41.     elseif message == "Left" then
  42.         turtle.turnLeft()
  43.         inspect()
  44.     elseif message == "Right" then
  45.         turtle.turnRight()
  46.         inspect()
  47.     elseif message == "Up" then
  48.         if turtle.getFuelLevel() == 0 then
  49.             rednet.send(0,"Error: Out of fuel.")
  50.         else
  51.             turtle.digUp()
  52.             turtle.up()
  53.         end
  54.         inspect()
  55.     elseif message == "Down" then
  56.         if turtle.getFuelLevel() == 0 then
  57.             rednet.send(0,"Error: Out of fuel.")
  58.         else
  59.             turtle.digDown()
  60.             turtle.down()
  61.         end
  62.         inspect()
  63.     elseif message == "Place" then
  64.         turtle.place()
  65.     elseif string.sub(message, 1, 6) == "Select" then
  66.         index = tonumber(string.sub(message, -1)) - 1
  67.         count = turtle.getItemCount(index)
  68.         turtle.select(index)
  69.         if count == 0 then
  70.             rednet.send(0,"Slot " .. index .. " is empty.")
  71.         else
  72.             fullName = turtle.getItemDetail(index).name
  73.             colon = string.find(fullName, ":")
  74.             colon = colon + 1
  75.             name = string.sub(fullName, colon)
  76.             rednet.send(0,"Slot " .. index .. " has " .. count .. " " .. name .. "(s/es).")
  77.         end
  78.     elseif message == "Dance" then
  79.         parallel.waitForAny(dance, stopDancing)
  80.         print("Okay, I'll stop dancing.")
  81.     elseif message == "Refuel" then
  82.         if turtle.getFuelLevel() == 100000 then
  83.             rednet.send(0,"Error: Fuel at capacity. Command ignored.")
  84.         else
  85.             if turtle.getItemCount() == 0 then
  86.                 rednet.send(0,"Error: Slot empty.")
  87.             else
  88.                 success, error = turtle.refuel()
  89.                 if success == false and error == "Items not combustible" then
  90.                     rednet.send(0,"Error: Item(s) not combustible.")
  91.                 else
  92.                     rednet.send(0,"Turtle successfully refueled.")
  93.                 end
  94.             end
  95.             rednet.send(0,"Current fuel level: " .. turtle.getFuelLevel())
  96.         end    
  97.     elseif message == "Stop" then
  98.         break
  99.     end
  100. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement