Advertisement
duncan9322

Redstone Level Emitter

Nov 13th, 2021
903
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.92 KB | None | 0 0
  1. --if #args == 0 then   --If no arguments, give a text prompt instead
  2. local lvl = 0
  3. function getnumber(num)
  4.     lvl = tonumber(num)
  5.     assert(lvl ~= nil, "not a number")
  6.     assert(lvl <= 30, "number too large")
  7.     return lvl
  8. end
  9.  
  10. while true do
  11.     print()
  12.     print('What redstone level [0-30]?')
  13.     write('Enter a number (negative exits): ')
  14.     num = read()
  15.     status, lvl = pcall(getnumber, num)
  16.     --print(status, lvl)
  17.     if status then
  18.         if lvl < 0 then
  19.             rs.setAnalogOutput('right', 0)
  20.             rs.setAnalogOutput('top', 0)
  21.             break
  22.         else
  23.             lvls = math.floor(lvl / 16)
  24.             lvlr = lvl % 16
  25.             --print(tostring(lvls), tostring(lvlr))
  26.             if lvls > 0 then
  27.                 level_right = lvlr+1
  28.                 level_top = 15
  29.             else
  30.                 level_right = lvlr
  31.                 level_top = 0
  32.             end
  33.             print("Right:", level_right)
  34.             print("Top:", level_top)
  35.             rs.setAnalogOutput('right', level_right)
  36.             rs.setAnalogOutput('top', level_top)
  37.         end
  38.     else
  39.         print(lvl)
  40.     end
  41. end
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement