Advertisement
koki2000

Printer program

May 13th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.41 KB | None | 0 0
  1. local printer = peripheral.find("printer")
  2. local maxwidth, maxheight = 0
  3.  
  4. function checkInk()
  5.  print("Ink needed")
  6.  while printer.getInkLevel() == 0 do
  7.   sleep(1)
  8.  end
  9. end
  10.  
  11. function checkPaper()
  12. print("Wanna paper")
  13.  while printer.getPaperLevel() == 0 do
  14.   sleep(1)
  15.  end
  16. end
  17.  
  18. function writeLine(line, text)
  19.  if text == nil then
  20.   return line
  21.  end
  22.  if text:sub(1, 1) == "#" then
  23.   text = text:sub(2)
  24.   printer.setPageTitle(text)
  25.   return line
  26.  end
  27.  printer.setCursorPos(1, line)
  28.  if text:len() > maxwidth then
  29.   printer.write(text:sub(1, maxwidth))
  30.   line = writeLine(line + 1, text:sub(maxwidth + 1))
  31.  else
  32.   printer.write(text)
  33.   line = line + 1
  34.  end
  35.  return line
  36. end
  37.  
  38. function writePage(filename)
  39.  if not fs.exists(filename) then
  40.   print("There is no "..filename.." file")
  41.   printer = false
  42.   return
  43.  end
  44.  local file = fs.open(filename, "r")
  45.  if not file then
  46.   print("There is no "..filename.." file")
  47.   printer = false
  48.   return
  49.  end
  50.  
  51.  
  52.  checkInk()
  53.  checkPaper()
  54.  printer.newPage()
  55.  printer.setPageTitle(filename)
  56.  maxwidth, maxheight = printer.getPageSize()
  57.  
  58.  local ln = 1
  59.  local line = file.readLine()
  60.  print("Printing "..filename.." file")
  61.  repeat
  62.   ln = writeLine(ln, line)
  63.   if ln > maxheight then
  64.    return
  65.   end
  66.   line = file.readLine()
  67.  until line == nil
  68.  sleep(1)
  69. end
  70.  
  71. while printer do
  72.  local event, p1, p2 = os.pullEvent("redstone")
  73.  writePage("greetings")
  74. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement