Advertisement
Guest User

Untitled

a guest
Apr 26th, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. local component = require("component")
  2. local shell = require("shell")
  3.  
  4. local printer = component.printer3d
  5.  
  6. local args = shell.parse(...)
  7. if #args < 1 then
  8. io.write("Usage: print3d FILE [count]\n")
  9. os.exit(0)
  10. end
  11. local count = 1
  12. if #args > 1 then
  13. count = tonumber(args[2])
  14. end
  15.  
  16. local file, reason = io.open(args[1], "r")
  17. if not file then
  18. io.stderr:write("Failed opening file: " .. reason .. "\n")
  19. os.exit(1)
  20. end
  21.  
  22. local rawdata = file:read("*all")
  23. file:close()
  24. local data, reason = load("return " .. rawdata)
  25. if not data then
  26. io.stderr:write("Failed loading model: " .. reason .. "\n")
  27. os.exit(2)
  28. end
  29. data = data()
  30.  
  31. io.write("Configuring...\n")
  32.  
  33. printer.reset()
  34. if data.label then
  35. printer.setLabel(data.label)
  36. end
  37. if data.tooltip then
  38. printer.setTooltip(data.tooltip)
  39. end
  40. if data.lightLevel and printer.setLightLevel then -- as of OC 1.5.7
  41. printer.setLightLevel(data.lightLevel)
  42. end
  43. if data.emitRedstone then
  44. printer.setRedstoneEmitter(data.emitRedstone)
  45. end
  46. if data.buttonMode then
  47. printer.setButtonMode(data.buttonMode)
  48. end
  49. for i, shape in ipairs(data.shapes or {}) do
  50. local result, reason = printer.addShape(shape[1], shape[2], shape[3], shape[4], shape[5], shape[6], shape.texture, shape.state, shape.tint)
  51. if not result then
  52. io.write("Failed adding shape: " .. tostring(reason) .. "\n")
  53. end
  54. end
  55.  
  56. io.write("Label: '" .. (printer.getLabel() or "not set") .. "'\n")
  57. io.write("Tooltip: '" .. (printer.getTooltip() or "not set") .. "'\n")
  58. if printer.getLightLevel then -- as of OC 1.5.7
  59. io.write("Light level: " .. printer.getLightLevel() .. "\n")
  60. end
  61. io.write("Redstone level: " .. select(2, printer.isRedstoneEmitter()) .. "\n")
  62. io.write("Button mode: " .. tostring(printer.isButtonMode()) .. "\n")
  63. io.write("Shapes: " .. printer.getShapeCount() .. " inactive, " .. select(2, printer.getShapeCount()) .. " active\n")
  64.  
  65. local result, reason = printer.commit(count)
  66. if result then
  67. io.write("Job successfully committed!\n")
  68. else
  69. io.stderr:write("Failed committing job: " .. tostring(reason) .. "\n")
  70. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement