Advertisement
Wardes

enderfarm_main

Apr 20th, 2021 (edited)
299
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.17 KB | None | 0 0
  1. --By Wardes
  2. shell.run("label set EnderFarm")
  3. os.loadAPI("button")
  4. shell.run("clear")
  5. print("Start enderfarm_main")
  6.  
  7. playerSensorSide = "left"
  8. endermiteSensorSide = "right"
  9. mPort = 1
  10. mMonitor = peripheral.find("monitor")
  11. mModem = peripheral.find("modem")
  12. mRefined = peripheral.find("refinedstorage")
  13.  
  14.  
  15. vPlayer = 0
  16. vEndermite = 0
  17.  
  18. vSpawner = false
  19.  
  20. mModem.transmit(1,1, "turnOffSpawner")
  21. mModem.transmit(1,1, "turnOffGrinder")
  22.  
  23. button.setMonitor(mMonitor)
  24.  
  25. spawnerButton = button.create("Spawner")
  26. spawnerButton.setSize(9, 3)
  27. spawnerButton.setPos(40, 4)
  28. spawnerButton.onClick(function(ret) turnStateViaModem("Spawner",ret) end)
  29.  
  30. grinderButton = button.create("Grinder")
  31. grinderButton.setSize(9, 3)
  32. grinderButton.setPos(40, 9)
  33. grinderButton.onClick(function(ret) turnStateViaModem("Grinder",ret) end)
  34.  
  35. autoButton = button.create("Auto")
  36. autoButton.setSize(9, 3)
  37. autoButton.setPos(40, 14)
  38. autoButton.setDisable(true)
  39. autoButton.onClick(function(val) print(val) end)
  40.  
  41. buttonTable = {spawnerButton, grinderButton, autoButton}
  42.  
  43. function turnStateViaModem(machine, state)
  44.   if state then
  45.     mModem.transmit(mPort,mPort, "turnOn"..machine)
  46.   else
  47.     mModem.transmit(mPort,mPort, "turnOff"..machine)
  48.   end
  49. end
  50.  
  51. function checkRedstone(side, editVar, x, y, name)
  52.   mMonitor.setCursorPos(x,y)
  53.   if redstone.getInput(side) then
  54.     editVar = 1
  55.     mMonitor.setTextColor(colors.green)
  56.     mMonitor.write(name.." OK")
  57.   else
  58.     editVar = 0
  59.     mMonitor.setTextColor(colors.red)
  60.     mMonitor.write(name.." ERR")
  61.   end
  62. end
  63.  
  64. function updateScreen()
  65.   mMonitor.clear()
  66.   checkRedstone(playerSensorSide, vPlayer, 8, 1, "Player")
  67.   checkRedstone(endermiteSensorSide, vEndermite, 31, 1, "Endermite")
  68. end
  69.  
  70. function eventRedstone()
  71.   os.pullEvent("redstone")
  72. end
  73.  
  74. function eventModem()
  75.   event, side, channel, replyChannel, message, distance = os.pullEvent("modem_message")
  76. end
  77.  
  78. function eventButton()
  79.   button.await(buttonTable)
  80. end
  81.  
  82. while true do
  83.   if mModem.isOpen(mPort) then
  84.     mMonitor.clear()
  85.     updateScreen()
  86.     parallel.waitForAny(eventRedstone, eventModem, eventButton)
  87.     print("y")
  88.   else
  89.     mModem.open(mPort)
  90.   end
  91.   os.sleep(1)
  92. end
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement