PaleoCrafter

Untitled

Jan 16th, 2021 (edited)
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.94 KB | None | 0 0
  1. TRACKS = {
  2.   Links = {
  3.     left = true,
  4.     right = false
  5.   },
  6.   Mitte = {
  7.     left = false,
  8.     right = true
  9.   },
  10.   Rechts = {
  11.     left = false,
  12.     right = false
  13.   }
  14. }
  15.  
  16. TRACK_KEYS = {}
  17. TRACK_COUNT = 0
  18.  
  19. for k, v in pairs(TRACKS) do
  20.   TRACK_COUNT = TRACK_COUNT + 1
  21.   TRACK_KEYS[TRACK_COUNT] = k
  22. end
  23.  
  24. monitor = peripheral.wrap('monitor_0')
  25.  
  26. function updateMonitor()
  27.   monitor.setCursorPos(1, 1)
  28.   monitor.clearLine()
  29.   monitor.write('Strecken:')
  30.   for i = 1, TRACK_COUNT do
  31.     monitor.setCursorPos(1, i + 1)
  32.     monitor.clearLine()
  33.     active = true
  34.     for side, expectedValue in pairs(TRACKS[TRACK_KEYS[i]]) do
  35.       active = active and (rs.getOutput(side) == expectedValue)
  36.     end
  37.     line = tostring(i)
  38.     if active then
  39.       line = line .. ')'
  40.     else
  41.       line = line .. '.'
  42.     end
  43.  
  44.     line = line .. ' ' .. TRACK_KEYS[i]
  45.     monitor.write(line)
  46.   end
  47. end
  48.  
  49. function chooseTrack(digit)
  50.   if digit > TRACK_COUNT then
  51.     print('Unknown track')
  52.   end
  53.  
  54.   print('Activating track #' .. tostring(digit))
  55.  
  56.   for side, value in pairs(TRACKS[TRACK_KEYS[digit]]) do
  57.     rs.setOutput(side, value)
  58.   end
  59.  
  60.   updateMonitor()
  61. end
  62.  
  63. updateMonitor()
  64.  
  65. while true do
  66.   local event, key, is_held = os.pullEvent('key_up')
  67.  
  68.   digit = -1
  69.   if key == keys.one or key == keys.numPad1 then
  70.     digit = 1
  71.   elseif key == keys.two or key == keys.numPad2 then
  72.     digit = 2
  73.   elseif key == keys.three or key == keys.numPad3 then
  74.     digit = 3
  75.   elseif key == keys.four or key == keys.numPad4 then
  76.     digit = 4
  77.   elseif key == keys.five or key == keys.numPad5 then
  78.     digit = 5
  79.   elseif key == keys.six or key == keys.numPad6 then
  80.     digit = 6
  81.   elseif key == keys.seven or key == keys.numPad7 then
  82.     digit = 7
  83.   elseif key == keys.eight or key == keys.numPad8 then
  84.     digit = 8
  85.   elseif key == keys.nine or key == keys.numPad9 then
  86.     digit = 9
  87.   end
  88.  
  89.   if digit > -1 then
  90.     chooseTrack(digit)
  91.   end
  92. end
Add Comment
Please, Sign In to add comment