Advertisement
Guest User

msr1

a guest
Feb 21st, 2021
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.45 KB | None | 0 0
  1. -- Awake
  2. print("Mining server awake: Hello World!")
  3.  
  4. -- Setup wireless
  5. local modemSide = "right"
  6. local modem = peripheral.wrap(modemSide)
  7. -- 5 Server -> Client
  8. -- 6 Client -> Server
  9. modem.open(5)
  10. modem.open(6)
  11. print("Channel 5 and 6 are open")
  12.  
  13. -- Setup receiving wireless messages
  14. function WaitForMessage(messageCompare)
  15.     while true do
  16.         local  
  17.             event,
  18.             eventModemSide,
  19.             senderChannel,
  20.             replyChannel,
  21.             message,
  22.             senderDistance =
  23.                 os.pullEvent(
  24.                     "modem_message"
  25.                 )
  26.         print("Message received: " + message)
  27.         if(message == messageCompare) then
  28.             break
  29.         end
  30.     end
  31. end
  32.  
  33. -- Setup sending wireless messages
  34. function SendMessage(message)
  35.     modem.transmit(5, 6, message)
  36. end
  37.  
  38. -- Get turtle amount from users
  39. print("How many turtles are mining? >>")
  40. local desiredTurtleCount = read()
  41.  
  42. -- Get cycle amount from users
  43. print("How many cycles should they mine for? >>")
  44. local desiredCycleCount = read()
  45.  
  46. -- Send awake signal
  47. print("Sending awake signal to all turtles...")
  48. print(5)
  49. os.sleep(1)
  50. print(4)
  51. os.sleep(1)
  52. print(3)
  53. os.sleep(1)
  54. print(2)
  55. os.sleep(1)
  56. print(1)
  57. os.sleep(1)
  58. SendMessage("_ServerAwake")
  59.  
  60. -- Wait for all turtles to register
  61. -- Accept and continue from user
  62. print("Waiting for turtles to register...")
  63. local turtleCount = 0
  64. while true do
  65.     WaitForMessage("_TurtleRegistered")
  66.     turtleCount = turtleCount + 1
  67.     print("Turtle registered. Count is " + turtleCount)
  68.     if(turtleCount == desiredTurtleCount) then break end
  69. end
  70.  
  71. -- Begin when user is ready
  72. print("Press any key when ready to begin >>")
  73. read()
  74.  
  75. -- Begin managing mine operations
  76. print("Mining...")
  77. local readyCount = 0
  78. local cycleCount = 1
  79. while true do
  80.     print("Starting mine cycle #" + cycleCount)
  81.     SendMessage("_StartNextCycle")
  82.     print("Waiting for turtles to be ready for next cycle...")
  83.     readyCount = 0
  84.     while true do
  85.         WaitForMessage("_ReadyForNextCycle")
  86.         readyCount = readyCount + 1
  87.         print("A turtle is ready. Ready count is " + readyCount)
  88.         if(readyCount == turtleCount) then
  89.             print("All turtles ready")
  90.             break
  91.         end
  92.     end
  93.     cycleCount = cycleCount + 1
  94.     if(cycleCount == desiredCycleCount) then
  95.         print("All cycle complete")
  96.         break
  97.     end
  98.     print("")
  99. end
  100.  
  101. -- Done
  102. print("Goodbye >>")
  103. read()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement