Muzze77

NuclearElmos_Reactor_Touch

Oct 27th, 2024 (edited)
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.08 KB | None | 0 0
  1. pcid = os.getComputerID()
  2. mon = peripheral.wrap("back")
  3. gx,gy = mon.getSize()
  4. dbcol = colors.black
  5. dtcol = colors.lime
  6.  
  7. machines = peripheral.getNames()
  8. com = ""
  9. for v, k in pairs(machines) do
  10.     if string.find(k,"drive") ~= nil then
  11.         drive = peripheral.wrap(k)
  12.         driveAPI = k
  13.         methods = peripheral.getMethods(k)
  14.         break
  15.     end
  16.    
  17. end
  18. function readDisk(state)
  19.     if state == nil then
  20.         diskR = fs.open("disk/akw.lua","r")
  21.         reading = diskR.readAll()
  22.         diskR.close()
  23.         return reading
  24.     else
  25.         diskR = fs.open("disk/"..state..".lua","r")
  26.         reading = diskR.readAll()
  27.         diskR.close()
  28.         return reading
  29.     end
  30. end
  31.  
  32. function saveDisk(text,state)
  33.     if state == nil then
  34.         disk = fs.open("disk/akw.lua","w")
  35.         disk.write(text)
  36.         disk.close()   
  37.     else
  38.         disk = fs.open("disk/"..state..".lua","w")
  39.         disk.write(text)
  40.         disk.close()           
  41.     end
  42. end
  43.  
  44.  
  45. function mbut(cx,cy,text,bcol,tcol)
  46.     if bcol == nil then
  47.         bcol = dbcol
  48.     end
  49.     if tcol == nil then
  50.         tcol = dtcol
  51.     end
  52.     mon.setCursorPos(cx,cy)
  53.     mon.setBackgroundColor(bcol)
  54.     mon.setTextColor(tcol)
  55.     mon.write(string.rep(" ",#text))
  56.     mon.setCursorPos(cx,cy)
  57.     mon.write(text)
  58.     mon.setBackgroundColor(dbcol)
  59.     mon.setTextColor(dtcol)
  60. end
  61.  
  62.  
  63. a = fs.exists("disk/ids.lua")
  64. if a == nil then
  65.     error("No IDs set")
  66. else
  67.     ids = readDisk("ids")
  68.     lines = {}
  69.     for s in ids:gmatch("[^\n]+") do
  70.     table.insert(lines, s)
  71.     ids = lines
  72. end
  73. end
  74.  
  75. while true do
  76.  
  77. evt = {os.pullEvent("monitor_touch")}
  78.  
  79.  
  80.  
  81. x = evt[3]
  82. y = evt[4]
  83.  
  84.  
  85. mbut(54,3,"X: " .. x .. " Y: " .. y)
  86. for v, k in pairs(ids) do
  87.     reactor_s = textutils.unserialize(readDisk(k))
  88.     reactor_name = reactor_s[1]
  89.     reactor_x = reactor_s[2]
  90.     reactor_y = reactor_s[3]
  91.     reactor_status = reactor_s[4]
  92.  
  93.  
  94.     if  y == reactor_y + 1 and x >= reactor_x + 8 and  x <= reactor_x + 12 then
  95.         print(x .. ": " .. reactor_x + 8)
  96.         print(x .. ": " .. reactor_x + 12)
  97.         print(y .. ": " .. reactor_y + 1)
  98.         reactor = peripheral.wrap(reactor_name)
  99.         reactorCore = reactor.getReactorCore()
  100.         data = reactorCore.getMetadata()
  101.         stats = data["reactor"]
  102.        
  103.                 if reactor_status == "false" then
  104.                     print("False")
  105.                     reactor_status = true
  106.  
  107.                     save = fs.open("disk/"..reactor_name .. ".lua","w")
  108.                     save.writeLine(reactor_name)
  109.                     save.writeLine(reactor_x)
  110.                     save.writeLine(reactor_y)
  111.                     save.writeLine(reactor_status)
  112.                     save.close()
  113.                 else
  114.                     print("True")
  115.                     reactor_status = false
  116.                     save = fs.open("disk/"..reactor_name .. ".lua","w")
  117.                     save.writeLine(reactor_name)
  118.                     save.writeLine(reactor_x)
  119.                     save.writeLine(reactor_y)
  120.                     save.writeLine(reactor_status)
  121.                     save.close()                   
  122.                 end    
  123.         reactor_status_r = stats.active
  124.                    
  125.     end
  126. end
  127.  
  128.  
  129.  
  130.     if x >= 18 and x <= 19 and y == 3 then
  131.        
  132.  
  133.         state = true
  134.         saveDisk(state)
  135.         mbut(29,35,"                        ")
  136.         mbut(29,35,"All Reactors Activated")
  137.     elseif x >= 21 and x <=23 and y == 3 then
  138.      
  139.         state = false
  140.         saveDisk(state)
  141.  
  142.             mbut(29,35,"All Reactors Deactivated")
  143.  
  144.     end
  145.            
  146.  
  147. end
  148.  
  149.  
Advertisement
Add Comment
Please, Sign In to add comment