Advertisement
OldDragon2A

Manual Turtle Controller

Jan 8th, 2013
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.47 KB | None | 0 0
  1. local dig = false
  2. local attack = false
  3.  
  4. function forward()
  5.   if attack then turtle.attack() end
  6.   if turtle.detect() and dig then turtle.dig() end
  7.   if turtle.getFuelLevel() == 0 then print("Out of Fuel")
  8.   elseif turtle.forward() then print("Moved Forward - Fuel: " .. turtle.getFuelLevel())
  9.   else print("Did Not Move")
  10.   end
  11. end
  12. function back()
  13.   if turtle.getFuelLevel() == 0 then print("Out of Fuel")
  14.   elseif turtle.back() then print("Moved Back - Fuel: " .. turtle.getFuelLevel())
  15.   else print("Did Not Move")
  16.   end
  17. end
  18. function up()
  19.   if attack then turtle.attackUp() end
  20.   if turtle.detectUp() and dig then turtle.digUp() end
  21.   if turtle.getFuelLevel() == 0 then print("Out of Fuel")
  22.   elseif turtle.up() then print("Descended - Fuel: " .. turtle.getFuelLevel())
  23.   else print("Did not move")
  24.   end
  25. end
  26. function down()
  27.   if attack then turtle.attackDown() end
  28.   if turtle.detectDown() and dig then turtle.digDown() end
  29.   if turtle.getFuelLevel() == 0 then print("Out of Fuel")
  30.   elseif turtle.down() then print("Ascended - Fuel: " .. turtle.getFuelLevel())
  31.   else print("Did not move")
  32.   end
  33. end
  34. function right()
  35.   turtle.turnRight()
  36.   print("Turned Right")
  37. end
  38. function left()
  39.   turtle.turnLeft()
  40.   print("Turned Left")
  41. end
  42.  
  43. function refuel(ammount)
  44.   if ammount == nil then ammount = 1 end
  45.   for i = 1, 16 do
  46.     if turtle.getItemCount(i) ~= 0 then
  47.       turtle.select(i)
  48.       if turtle.refuel(ammount) then
  49.         print("Refueled - Fuel: " .. turtle.getFuelLevel())
  50.         return
  51.       end
  52.     end
  53.   end
  54.   print("No Fuel Found")
  55. end
  56.  
  57. print("Controls:")
  58. print("  Arrow Keys - Move")
  59. print("         a/z - Ascend/Descend")
  60. print("         A/d - Toggle Attack/Dig Mode")
  61. print("         r/R - Refuel/Refuel Stack")
  62. print("           q - Release")
  63. print("")
  64. print('Assuming Control')
  65. print("Attack Mode " .. (dig and "On" or "Off"))
  66. print("Dig Mode " .. (dig and "On" or "Off"))
  67. while (true) do
  68.   event, key = os.pullEvent()
  69.   if     key == 203 then left()
  70.   elseif key == 200 then forward()
  71.   elseif key == 205 then right()
  72.   elseif key == 208 then back()
  73.   elseif key == 'a' then up()
  74.   elseif key == 'z' then down()
  75.   elseif key == 'A' then attack = not attack print("Attack Mode " .. (dig and "On" or "Off"))
  76.   elseif key == 'd' then dig = not dig print("Dig Mode " .. (dig and "On" or "Off"))
  77.   elseif key == 'r' then refuel()
  78.   elseif key == 'R' then refuel(64)
  79.   elseif key == 'q' then break
  80.   end
  81. end
  82. print('Releasing Control')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement