MadScience2728

TunnelClient

Mar 12th, 2021 (edited)
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Awake
  2. print("Mining client awake: Hello World!")
  3.  
  4. -- Setup wireless
  5. local modem = peripheral.wrap("right")
  6. -- 5 Server -> Client
  7. -- 6 Client -> Server
  8. modem.open(111)
  9. modem.open(112)
  10. print("Channel 111 and 112 are open")
  11.  
  12. -- Setup receiving wireless messages
  13. function WaitForMessage(messageCompare)
  14.     while true do
  15.         local a,b,c,d,e,f = os.pullEvent("modem_message")
  16.         print("Message received: ")
  17.         print(e)
  18.         if(e == messageCompare) then
  19.             print("Message accepted")
  20.             break
  21.         end
  22.     end
  23. end
  24.  
  25. -- Setup sending wireless messages
  26. function SendMessage(message)
  27.     modem.transmit(112, 111, message)
  28. end
  29.  
  30. -- Down shortdown
  31. function Down()
  32.     while not turtle.down() do
  33.         if turtle.detectDown() then turtle.digDown() end
  34.         turtle.attackDown()
  35.     end
  36.     turtle.dig()
  37. end
  38.  
  39. -- Up shorthand
  40. function Up()
  41.     while not turtle.up() do
  42.         if turtle.detectUp() then turtle.digUp() end
  43.         turtle.attackUp()
  44.     end
  45.     turtle.dig()
  46. end
  47.  
  48. -- Forward shorthand
  49. function Forward()
  50.     while not turtle.forward() do
  51.         if turtle.detect() then turtle.dig() end
  52.         turtle.attack()
  53.     end
  54. end
  55.  
  56. -- Bedrock shorthand
  57. function IsBedrock()
  58.     local success, data = turtle.inspectDown()
  59.     if success then
  60.         return data.name == "minecraft:bedrock"
  61.     else
  62.         return false
  63.     end
  64. end
  65.  
  66. -- Server handshake
  67. print("Waiting for server awake")
  68. WaitForMessage("_ServerAwake")
  69. print("Replying to server...")
  70. SendMessage("_TurtleRegistered")
  71.  
  72. -- Reset position
  73. print("Waiting for signal to reset Y")
  74. WaitForMessage("_ResetY")
  75. print("Picking up chest in case it's not in me")
  76. turtle.select(1)
  77. turtle.dig()
  78.  
  79. print("Letting server know ready...")
  80. SendMessage("_TurtleReadyToMine")
  81.  
  82. print("Waiting to begin")
  83. WaitForMessage("_Begin")
  84.  
  85. -- Mine Routine
  86. function Mine()
  87.     Forward()
  88. end
  89.  
  90. function Drop()
  91.     if turtle.getItemCount(16) > 0 then
  92.         turtle.select(1)
  93.         while not turtle.place() do
  94.             turtle.dig()
  95.             turtle.attack()
  96.         end
  97.         for i = 16,1,-1 do
  98.             turtle.select(i)
  99.             turtle.drop()
  100.         end
  101.         turtle.dig()
  102.     end
  103. end
  104.  
  105. -- Mine loop
  106. while true do
  107.     print("Waiting to start next cycle")
  108.     WaitForMessage("_StartNextCycle")
  109.     print("Starting next cycle (mine)...")
  110.     Mine()
  111.     print("Letting server know ready for next cycle...")
  112.     SendMessage("_ReadyForNextCycle")
  113.    
  114.     print(">>")
  115.     print(">>")
  116.     print(">>")
  117.    
  118.     print("Waiting to start next cycle")
  119.     WaitForMessage("_StartNextCycle")
  120.     print("Starting next cycle (drop)...")
  121.     Drop()
  122.     print("Letting server know ready for next cycle...")
  123.     SendMessage("_ReadyForNextCycle")
  124.    
  125.     print(">>")
  126.     print(">>")
  127.     print(">>")
  128. end
  129.  
  130. print("Goodbye >>")
  131. read()
Add Comment
Please, Sign In to add comment