Advertisement
wxyzsupermod

Mob Spawner v2

Jan 19th, 2021 (edited)
443
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.76 KB | None | 0 0
  1. args = {...}
  2. arg = args[1]
  3. print("Waiting For Start....")
  4.  
  5.     local signal = true
  6.     local x = 1
  7.     local xStop = 24
  8.     local timeBetweenStops = 20
  9. if arg == "test" then
  10.     timeBetweenStops = 0
  11.     print("Testing Will Use Fuel Inefficiently")
  12. end
  13.  
  14. local modem = peripheral.wrap("left")
  15. modem.open(42)
  16. local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
  17.  
  18.  
  19. function refuelTurtle(a)
  20.     if turtle.getFuelLevel() > 1000 then
  21.         return
  22.     end
  23.     if a == true then
  24.         turtle.turnRight()
  25.         turtle.turnRight()
  26.         print("Starting Program")
  27.     end
  28.  
  29.     local success, data = turtle.inspect()
  30.  
  31.     if data.name == "minecraft:chest" then
  32.         print("Chest in Front")
  33.         turtle.suck(64)
  34.         if turtle.refuel(64) then
  35.                 print("Refueled")
  36.                 print(turtle.getFuelLevel())
  37.         else
  38.             while not turtle.refuel(64) do
  39.                 print("waiting for fuel")
  40.                 turtle.suck(64)
  41.             end
  42.         end
  43.     else
  44.         print("Chest isUp")
  45.         turtle.suckUp(64)
  46.         if turtle.refuel(64) then
  47.                 print("Refueled")
  48.                 print(turtle.getFuelLevel())
  49.         else
  50.             while not turtle.refuel(64) do
  51.                 print("waiting for fuel")
  52.                 turtle.suck(64)
  53.             end
  54.         end
  55.     end
  56.     if a == true then
  57.         turtle.turnRight()
  58.         turtle.turnRight()
  59.     end
  60. end
  61. function main()
  62.     local directionFromHome = "AWAY"
  63.     while signal do
  64.         directionFromHome = "AWAY"
  65.         while x <= xStop do
  66.             if turtle.forward() == true then
  67.                 x = x + 1
  68.             end
  69.         end
  70.  
  71.         turtle.turnRight()
  72.         turtle.turnRight()
  73.         directionFromHome = "TOWARDS"
  74.  
  75.         while x > 1 do
  76.             if turtle.forward() == true then
  77.                 x = x - 1
  78.             end
  79.         end
  80.         if turtle.getFuelLevel() <= 500 then
  81.             refuelTurtle(false)
  82.         end
  83.        
  84.         os.sleep(timeBetweenStops)
  85.         turtle.turnRight()
  86.         turtle.turnRight()
  87.         directionFromHome = "AWAY"
  88.         print("FUEL REMAINING: ", turtle.getFuelLevel())
  89.     end
  90.     if directionFromHome == "AWAY" and x > 1 then
  91.         turtle.turnRight()
  92.         turtle.turnRight()
  93.         while x > 1 do
  94.             if turtle.forward() == true then
  95.                 x = x - 1
  96.             end
  97.         end
  98.     else
  99.         while x > 1 do
  100.             if turtle.forward() == true then
  101.                 x = x - 1
  102.             end
  103.         end
  104.     end
  105. end
  106.  
  107. if message == "start" then
  108.     refuelTurtle(true)
  109.     print("Recieved Start Command")
  110.     function receive()
  111.         local event, modemSide, senderChannel, replyChannel, message, senderDistance = os.pullEvent("modem_message")
  112.         if message == "stop" then
  113.             print("Recieved Stop command")
  114.             signal = false
  115.         end
  116.     end
  117.     parallel.waitForAll(receive, main)
  118. end
  119.  
  120.  
  121.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement