LivioBrunner

ComputerCraft - Monitor

Oct 18th, 2013
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. page = 0
  2. os.loadAPI("button")
  3. function load(name)
  4. local file = fs.open(name,"r")
  5. local data = file.readAll()
  6. file.close()
  7. return textutils.unserialize(data)
  8. end
  9. function save(table,name)
  10. local file = fs.open(name,"w")
  11. file.write(textutils.serialize(table))
  12. file.close()
  13. end
  14. --save(0, "saves/recycler")
  15. --save(0, "saves/engine1")
  16. --save(0, "saves/engine2")
  17. --save(0, "saves/engine3")
  18. --save(0, "saves/steam")
  19. if fs.exists("saves") == false then
  20. fs.makeDir("saves")
  21. end
  22. m = peripheral.wrap("top")
  23. m.clear()
  24.  
  25. rednet.open("front")
  26. function fillTable(page)
  27. if page == 0 then
  28. term.clear()
  29. term.setCursorPos(1,1)
  30. button.setTable("Recycler", recycler, 10,20,3,5)
  31. button.setTable("Engine 1", engine1, 22,32,3,5)
  32. button.setTable("Engine 2", engine2, 10,20,8,10)
  33. button.setTable("Engine 3", engine3, 22,32,8,10)
  34. button.setTable("Steam", steam, 10, 20, 13, 15)
  35. button.setTable("Next Page", next, 22, 32, 13, 15)
  36. elseif page == 1 then
  37. term.clear()
  38. term.setCursorPos(1,1)
  39. button.setTable("Back", back, 22, 32, 13, 15)
  40. end
  41. button.screen()
  42. end
  43.  
  44. function getClick()
  45. event,side,x,y = os.pullEvent("monitor_touch")
  46. button.checkxy(x,y)
  47. end
  48. function setToggledButton(counter, name, computer, preposition)
  49. if counter == 1 then
  50. button.toggleButton(name)
  51. rednet.send(computer, preposition)
  52. end
  53. end
  54. function startup()
  55. recyclercounter = load("saves/recycler")
  56. engine1counter = load("saves/engine1")
  57. engine2counter = load("saves/engine2")
  58. engine3counter = load("saves/engine3")
  59. steamcounter = load("saves/steam")
  60. setToggledButton(recyclercounter, "Recycler", 80, "front")
  61. setToggledButton(engine1counter, "Engine 1", 80, "right")
  62. setToggledButton(engine2counter, "Engine 2", 80, "back")
  63. setToggledButton(engine3counter, "Engine 3", 80, "left")
  64. setToggledButton(steamcounter, "Steam", 85, "front")
  65. end
  66. function addAndCheck(counter1)
  67. counter1 = counter1 + 1
  68. if counter1 > 1 then
  69. counter1 = 0
  70. end
  71. return counter1
  72. end
  73. function recycler()
  74. recyclercounter = addAndCheck(recyclercounter)
  75. save(recyclercounter, "saves/recycler")
  76. button.toggleButton("Recycler")
  77. rednet.send(80, "front")
  78. print("Recycler")
  79. end
  80.  
  81. function engine1()
  82. engine1counter = addAndCheck(engine1counter)
  83. save(engine1counter, "saves/engine1")
  84. button.toggleButton("Engine 1")
  85. rednet.send(80,"right")
  86. print("Engine 1")
  87. end
  88.  
  89. function engine2()
  90. engine2counter = addAndCheck(engine2counter)
  91. save(engine2counter, "saves/engine2")
  92. button.toggleButton("Engine 2")
  93. rednet.send(80,"back")
  94. print("Engine 2")
  95. end
  96.  
  97. function engine3()
  98. engine3counter = addAndCheck(engine3counter)
  99. save(engine3counter, "saves/engine3")
  100. button.toggleButton("Engine 3")
  101. rednet.send(80,"left")
  102. print("Engine 3")
  103. end
  104. function steam()
  105. steam = addAndCheck(steamcounter)
  106. save(steamcounter, "saves/steam")
  107. button.toggleButton("Steam")
  108. rednet.send(85, "front")
  109. print("Steam Engine")
  110. end
  111. function next()
  112. button.toggleButton("Next Page")
  113. sleep(0.5)
  114. print("Next Page")
  115. page = page + 1
  116. term.clear()
  117. term.setCursorPos(1,1)
  118. fillTable(page)
  119. end
  120. function back()
  121. button.toggleButton("Back")
  122. sleep(0.5)
  123. print("Back Page")
  124. page = page - 1
  125. term.clear()
  126. term.setCursorPos(1,1)
  127. fillTable(page)
  128. end
  129. fillTable(page)
  130. startup()
  131. button.heading("Control System")
  132. while true do
  133. getClick()
  134. end
Advertisement
Add Comment
Please, Sign In to add comment