Advertisement
MadScience2728

DiamondTunnelClient

Mar 21st, 2022 (edited)
1,168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --pastebin get 2mvkUaWL startup
  2.  
  3. -- Awake
  4. print("Tunnel Client Alive: Hello World!")
  5.  
  6. -- Setup wireless
  7. local modem = peripheral.wrap("right")
  8. -- 210 Server -> Client
  9. -- 220 Client -> Server
  10. modem.open(210)
  11. modem.open(220)
  12. print("Channel 210 and 220 are open")
  13.  
  14. -- Setup receiving wireless messages
  15. function WaitForMessage(messageCompare)
  16.     while true do
  17.         local a,b,c,d,e,f = os.pullEvent("modem_message")
  18.         print("Message received: ")
  19.         print(e)
  20.         if(e == messageCompare) then
  21.             print("Message accepted")
  22.             break
  23.         elseif (e == "_Empty") then
  24.             return true
  25.         end
  26.     end
  27.     return false
  28. end
  29.  
  30. -- Setup sending wireless messages
  31. function SendMessage(message)
  32.     modem.transmit(220, 210, message)
  33. end
  34.  
  35. -- Forward shorthand
  36. function Forward()
  37.     while not turtle.forward() do
  38.         if turtle.detect() then turtle.dig() end
  39.         turtle.attack()
  40.     end
  41. end
  42.  
  43. --Empty shorthand
  44. function Empty()
  45.     turtle.dig()
  46.     turtle.select(1)
  47.     while not turtle.place() do
  48.         turtle.dig()
  49.         turtle.attack()
  50.     end
  51.     for i = 16,1,-1 do
  52.         turtle.select(i)
  53.         turtle.drop()
  54.     end
  55.     turtle.dig()
  56. end
  57.  
  58. -- Server handshake
  59. print("Waiting for server awake")
  60. WaitForMessage("_ServerAwake")
  61. print("Replying to server...")
  62. SendMessage("_TurtleRegistered")
  63.  
  64. print("Ensuring ender chest is inside me...")
  65. turtle.select(1)
  66. turtle.dig()
  67.  
  68. print("Letting server know ready...")
  69. SendMessage("_TurtleReadyToMine")
  70.  
  71. print("Waiting to begin")
  72. WaitForMessage("_Begin")
  73.  
  74. -- Mine loop
  75. while true do
  76.     print("Waiting to start next cycle")
  77.     empty = WaitForMessage("_StartNextCycle")
  78.    
  79.     if empty then Empty() end
  80.    
  81.     print("Starting next cycle...")
  82.     Forward()
  83.     print("Letting server know ready for next cycle...")
  84.     SendMessage("_ReadyForNextCycle")
  85.     print(">>")
  86.     print(">>")
  87.     print(">>")
  88. end
  89.  
  90. print("Goodbye >>")
  91. read()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement