nSun

CC-Hobo-bot

Aug 3rd, 2016
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.25 KB | None | 0 0
  1. --os.loadAPI("blacklist")
  2. local delay=.6
  3. local pot_facing = 7
  4. local setup = false
  5. local wrenchSlot = 1
  6. local flowerSlot = 2
  7. --flower_pot/3 (South)
  8. --flower_pot/7 (West) <--
  9. --flower_pot/11 (North)
  10. --flower_pot/15 (East)
  11. -- Rotation/Direction
  12. -- 0 South
  13. -- 4 West
  14. -- 8 North
  15. -- 12 East
  16. --
  17. local i,continue=1,true
  18.  
  19. local blacklist={
  20. unwanted={
  21. --Items
  22. ["minecraft:wooden_sword"]=1,
  23. ["minecraft:wooden_shovel"]=1,
  24. ["minecraft:wooden_pickaxe"]=1,
  25. ["minecraft:wooden_axe"]=1,
  26. ["minecraft:stone_sword"]=1,
  27. ["minecraft:stone_shovel"]=1,
  28. ["minecraft:stone_pickaxe"]=1,
  29. ["minecraft:stone_axe"]=1,
  30. ["minecraft:stick"]=1,
  31. ["minecraft:bowl"]=1,
  32. ["minecraft:wooden_hoe"]=1,
  33. ["minecraft:stone_hoe"]=1,
  34. ["minecraft:sign"]=1,
  35. ["minecraft:wooden_door"]=1,
  36. ["minecraft:snowball"]=1,
  37. ["minecraft:boat"]=1,
  38. ["minecraft:rotten_flesh"]=1,
  39. ["minecraft:poisonous_potato"]=1,
  40. ["minecraft:spruce_door"]=1,
  41. ["minecraft:birch_door"]=1,
  42. ["minecraft:jungle_door"]=1,
  43. ["minecraft:acacia_door"]=1,
  44. ["minecraft:dark_oak_door"]=1,
  45. ["minecraft:spruce_boat"]=1,
  46. ["minecraft:birch_boat"]=1,
  47. ["minecraft:jungle_boat"]=1,
  48. ["minecraft:acacia_boat"]=1,
  49. ["minecraft:dark_oak_boat"]=1,
  50. --Blocks
  51. ["minecraft:stone"]=1,
  52. ["minecraft:grass"]=1,
  53. ["minecraft:dirt"]=1,
  54. ["minecraft:cobblestone"]=1,
  55. ["minecraft:planks"]=1,
  56. ["minecraft:gravel"]=1,
  57. ["minecraft:leaves"]=1,
  58. ["minecraft:tallgrass"]=1,
  59. ["minecraft:stone_slab"]=1,
  60. ["minecraft:oak_stairs"]=1,
  61. ["minecraft:wooden_door"]=1,
  62. ["minecraft:ladder"]=1,
  63. ["minecraft:stone_stairs"]=1,
  64. ["minecraft:lever"]=1,
  65. ["minecraft:stone_pressure_plate"]=1,
  66. ["minecraft:wooden_pressure_plate"]=1,
  67. ["minecraft:stone_button"]=1,
  68. ["minecraft:snow_layer"]=1,
  69. ["minecraft:fence"]=1,
  70. ["minecraft:netherrack"]=1,
  71. ["minecraft:trapdoor"]=1,
  72. ["minecraft:fence_gate"]=1,
  73. ["minecraft:wooden_slab"]=1,
  74. ["minecraft:spruce_stairs"]=1,
  75. ["minecraft:birch_stairs"]=1,
  76. ["minecraft:jungle_stairs"]=1,
  77. ["minecraft:cobblestone_wall"]=1,
  78. ["minecraft:wooden_button"]=1,
  79. ["minecraft:leaves2"]=1,
  80. ["minecraft:acacia_stairs"]=1,
  81. ["minecraft:dark_oak_stairs"]=1,
  82. ["minecraft:barrier"]=1,
  83. ["minecraft:double_plant"]=1,
  84. ["minecraft:stone_slab2"]=1,
  85. ["minecraft:spruce_fence_gate"]=1,
  86. ["minecraft:birch_fence_gate"]=1,
  87. ["minecraft:jungle_fence_gate"]=1,
  88. ["minecraft:dark_oak_fence_gate"]=1,
  89. ["minecraft:acacia_fence_gate"]=1,
  90. ["minecraft:spruce_fence"]=1,
  91. ["minecraft:birch_fence"]=1,
  92. ["minecraft:jungle_fence"]=1,
  93. ["minecraft:dark_oak_fence"]=1,
  94. ["minecraft:acacia_fence"]=1,
  95. ["minecraft:spruce_door"]=1,
  96. ["minecraft:birch_door"]=1,
  97. ["minecraft:jungle_door"]=1,
  98. ["minecraft:acacia_door"]=1,
  99. ["minecraft:dark_oak_door"]=1,
  100. },
  101. }
  102.  
  103. local function rsInput()
  104.     return rs.getInput("back")
  105.     or rs.getInput("front")
  106.     or rs.getInput("left")
  107.     or rs.getInput("right")
  108. end
  109.  
  110. local function suck()
  111.     local something = false
  112.     local good=false
  113.     local i,t1,t2,t3
  114.     turtle.select(flowerSlot)
  115.     while turtle.suck(64) do something = true sleep(.1) end
  116.     while turtle.suckUp(64) do something = true sleep(.1) end
  117.     while turtle.suckDown(64) do something = true sleep(.1) end
  118.     if something then
  119.         for i=3,16 do
  120.             if not flowerSlot and not wrenchSlot and turtle.getItemCount(i)>0 then
  121.                 turtle.select(i)
  122.                 local data = turtle.getItemDetail(i)
  123.                 if blacklist.unwanted[data.name]~=nil then
  124.                     turtle.drop(64)
  125.                 else
  126.                     turtle.dropDown(64)
  127.                     good=true
  128.                 end
  129.             end
  130.         end
  131.         if good then
  132.             turtle.select(flowerSlot)
  133.             turtle.drop(1)
  134.         end
  135.     end
  136. end
  137.  
  138. term.setCursorPos(1,2)
  139. term.clear()
  140. print("Press Ctrl+T to Stop")
  141. local refresh = os.startTimer(delay)
  142. while rsInput() do
  143.     os.pullEvent("timer")
  144.     local testF,dataF = turtle.inspect()
  145.     local testUp,dataUp = turtle.inspectUp()
  146.     if setup then
  147.         if dataUp.metadata%4==3 then
  148.             if testF then
  149.                 term.clearLine()
  150.                 print(dataF.name.."/"..dataUp.metadata)
  151.             end
  152.             turtle.turnRight()
  153.         end
  154.     else
  155.         --Reposynchronise
  156.         if dataF.name=="minecraft:flower_pot" then
  157.             if dataUp.metadata==pot_facing then
  158.                 turtle.turnRight()
  159.                 suck()
  160.             end
  161.         elseif dataUp.metadata%4==3 then
  162.             turtle.turnRight()
  163.             suck()
  164.         end
  165.     end
  166.     if dataUp.name=="minecraft:standing_sign" then
  167.         turtle.select(wrenchSlot)
  168.         test = turtle.placeUp()
  169.     end
  170.     refresh = os.startTimer(delay)
  171. end
  172. sleep(.5)
  173. os.shutdown()
Advertisement
Add Comment
Please, Sign In to add comment