Advertisement
kaibochan

Setup.lua

Mar 10th, 2025 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.29 KB | None | 0 0
  1. local gui = require("/apis/gui")
  2.  
  3. function attachDisplays()
  4.     -- attach monitors for displaying status
  5.     local monitors = {
  6.         "monitor_27",
  7.         "monitor_26",
  8.         "monitor_25",
  9.     }
  10.  
  11.     local function prepareMonitor(monitor)
  12.         monitor.setCursorPos(1, 1)
  13.         monitor.setTextScale(0.5)
  14.         monitor.clear()
  15.     end
  16.  
  17.     local displays = {}
  18.     for _, monitor in ipairs(monitors) do
  19.         local device = peripheral.wrap(monitor)
  20.         prepareMonitor(device)
  21.         table.insert(displays, gui.initializeDisplay(device))
  22.     end
  23.  
  24.     return displays
  25. end
  26.  
  27. function mainDisplay(display, reactor_dataset)
  28.     local reactor_graph = gui.Graph:new {
  29.         width = display.width,
  30.         height = display.height,
  31.  
  32.         draw_axes = true,
  33.         type = gui.Graph.type.line,
  34.  
  35.         u_min = -4,
  36.         u_max = 4,
  37.         v_min = -1,
  38.         v_max = 1,
  39.     }
  40.     reactor_graph:attachDataSet(sineDataSet())
  41.     reactor_graph:attachDataSet(reactor_dataset)
  42.     reactor_graph:pollDataSets()
  43.  
  44.     display.window:addElement(reactor_graph)
  45.  
  46.     return display
  47. end
  48.  
  49. function sineDataSet()
  50.     local data_set = gui.DataSet:new()
  51.     for u = -5, 5, 0.1 do
  52.         table.insert(data_set.data, {u = u, v = math.sin(u)})
  53.     end
  54.  
  55.     return data_set
  56. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement