DrFair

SpawnerTurtle

May 12th, 2014
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.78 KB | None | 0 0
  1. spawnerName = "ThaumcraftSpawner"
  2. updateTime = 1
  3. rSide = "bottom"
  4. rednet.open("right")
  5.  
  6. local Args = {...}
  7. if Args[1] == "update" then
  8. programName = shell.getRunningProgram()
  9. print("Updating.")
  10. fs.delete( programName )
  11. shell.run( "pastebin","get", "u1w60x3y", programName )
  12. print("Finished updating.")
  13. error()
  14. end
  15.  
  16. print("Hosting as "..spawnerName)
  17. active = true
  18. print("Active: true")
  19. timer = os.startTimer( updateTime )
  20.  
  21. function update()
  22. rs.setOutput( rSide, active )
  23. end
  24.  
  25. function getPick()
  26. for i=1,16 do
  27. if turtle.getItemCount( i ) == 0 then
  28. return i
  29. end
  30. end
  31. return 0
  32. end
  33.  
  34. function setPick(n)
  35. turtle.select(1)
  36. turtle.suckDown()
  37. turtle.select(n)
  38. turtle.dropDown()
  39. end
  40.  
  41. update()
  42.  
  43. while true do
  44. event,pr1,pr2 = os.pullEvent()
  45. if event == "timer" and pr1 == timer then
  46. data = {}
  47. data["getActive"] = active
  48. data["getPick"] = getPick()
  49. txtData = textutils.serialize( { [1] = "spawner", [2] = spawnerName, [3] = textutils.serialize( data ) } )
  50. rednet.broadcast( txtData )
  51. timer = os.startTimer( updateTime - 0.05 )
  52. update()
  53. elseif event == "rednet_message" then
  54. if textutils.unserialize(pr2)[1] == spawnerName then
  55. data = textutils.unserialize(pr2)
  56. if data[2] == "setActive" then
  57. active = data[3]
  58. if active then
  59. print("Active: true")
  60. else
  61. print("Active: false")
  62. end
  63. update()
  64. timer = os.startTimer( updateTime - 0.05 )
  65. elseif data[2] == "toggle" then
  66. active = not active
  67. if active then
  68. print("Active: true")
  69. else
  70. print("Active: false")
  71. end
  72. update()
  73. timer = os.startTimer( updateTime - 0.05 )
  74. elseif data[2] == "setPick" then
  75. setPick( tonumber(data[3]) )
  76. timer = os.startTimer( updateTime - 0.05 )
  77. end
  78. end
  79. end
  80. end
Advertisement
Add Comment
Please, Sign In to add comment