Advertisement
MadScience2728

MINESERVER_2.0

Mar 2nd, 2021 (edited)
955
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Awake
  2. print("Mining server awake: Hello World!")
  3.  
  4. -- Setup wireless
  5. local modemSide = "left"
  6. local modem = peripheral.wrap(modemSide)
  7. -- 5 Server -> Client
  8. -- 6 Client -> Server
  9. -- 7 Server -> Pocket Computer
  10. modem.open(11)
  11. modem.open(12)
  12. modem.open(13)
  13. modem.open(14)
  14. print("Channel 11 and 12 are open, as well as 13 and 14")
  15.  
  16. -- Setup sending wireless messages
  17. function SendMessage(message)
  18.     modem.transmit(11, 12, message)
  19. end
  20. function SendMessageToPocketComputer(message)
  21.     modem.transmit(13, 13, message)
  22. end
  23.  
  24. --Pocket computer helper
  25. function printf(m)
  26.     print(m)
  27.     SendMessageToPocketComputer(m)
  28. end
  29. printf("Link to pocket computer established. Hello")
  30.  
  31. -- Setup receiving wireless messages
  32. function WaitForMessage(messageCompare)
  33.     while true do
  34.         local  
  35.             a,b,c,d,e,f = os.pullEvent("modem_message")
  36.         printf("Message received: " .. tostring(e))
  37.         if(e == messageCompare) then
  38.             break
  39.         end
  40.     end
  41. end
  42.  
  43. -- Get turtle amount from users
  44. printf("How many turtles are mining? >>")
  45. local desiredTurtleCount = tonumber(read())
  46.  
  47. -- Get cycle amount from users
  48. printf("How many cycles should they mine for? >>")
  49. local desiredCycleCount = tonumber(read())
  50.  
  51. -- Send awake signal
  52. printf("Sending awake signal to all turtles...")
  53. SendMessage("_ServerAwake")
  54.  
  55. -- Wait for all turtles to register
  56. -- Accept and continue from user
  57. printf("Waiting for turtles to register...")
  58. local turtleCount = 0
  59. while true do
  60.     WaitForMessage("_TurtleRegistered")
  61.     turtleCount = turtleCount + 1
  62.     printf("Turtle registered. Count is " .. tostring(turtleCount))
  63.     if(turtleCount == desiredTurtleCount) then break end
  64. end
  65. printf("All turtles registered")
  66.  
  67. printf("Sending reset Y signal")
  68. SendMessage("_ResetY")
  69.  
  70. -- Wait for all turtles to reset their y pos
  71. printf("Waiting for turtles to be ready to mine...")
  72. local turtleCount = 0
  73. while true do
  74.     WaitForMessage("_TurtleReadyToMine")
  75.     turtleCount = turtleCount + 1
  76.     printf("Turtle ready to mine. Count is " .. tostring(turtleCount))
  77.     if(turtleCount == desiredTurtleCount) then break end
  78. end
  79. printf("All turtles ready to mine")
  80.  
  81. -- Begin managing mine operations
  82. printf("Mining...")
  83. SendMessage("_Begin")
  84. local readyCount = 0
  85. local cycleCount = 1
  86. while true do
  87.     printf("Starting mine cycle #" .. tostring(cycleCount))
  88.     modem.transmit(8, 8, "Starting mine cycle #" .. tostring(cycleCount))
  89.     SendMessage("_StartNextCycle")
  90.     printf("Waiting for turtles to be ready for next cycle...")
  91.     readyCount = 0
  92.     while true do
  93.         WaitForMessage("_ReadyForNextCycle")
  94.         readyCount = readyCount + 1
  95.         printf("A turtle is ready. Ready count is " .. tostring(readyCount))
  96.         if(readyCount == turtleCount) then
  97.             printf("All turtles ready")
  98.             break
  99.         end
  100.     end
  101.     if(cycleCount == desiredCycleCount) then
  102.         printf("All cycle complete")
  103.         break
  104.     end
  105.     cycleCount = cycleCount + 1
  106.     printf(">>")
  107.     printf(">>")
  108.     printf(">>")
  109. end
  110.  
  111. -- Done
  112. printf("Goodbye >>")
  113. read()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement