Alyssa

Converter

Jun 1st, 2015
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.06 KB | None | 0 0
  1. args = {...}
  2. if args[1] == "-p" then
  3.     mode = "paint"
  4. elseif args[1] == "-nfp" then
  5.     mode = "paint"
  6. elseif args[1] == "-nfa" then
  7.     mode = "nfa"
  8. else
  9.     error("Usage: "..shell.getRunningProgram().." <mode> <file or folder> <output folder>")
  10. end
  11.  
  12. file = args[2]
  13. if file and fs.exists(file) then
  14. else
  15.     error("File either was not given or does not exist")
  16. end
  17.  
  18. output = args[3]
  19. if not output then
  20.     error("Usage: "..shell.getRunningProgram().." <mode> <file or folder> <output folder>")
  21. end
  22. scrx,scry = term.getSize()
  23. resX,resY = 0,0
  24. numFrames = 0
  25. if mode == "paint" then
  26.     if not fs.isDir("/"..file) then
  27.         error(file.." is a file.")
  28.     end
  29.     fs.makeDir("/"..output)
  30.     for k,v in pairs(fs.list("/"..file)) do
  31.         f = fs.open("/"..file.."/"..v,"r")
  32.         numFrames = numFrames+1
  33.         cLine = true
  34.         numLines = 0
  35.         while cLine do
  36.             cLine = f.readLine()
  37.             os.queueEvent("Yield_")
  38.             os.pullEvent("Yield_")
  39.             if cLine then
  40.                 numLines = numLines+1
  41.                 if #cLine > resX then
  42.                     resX = #cLine
  43.                 end
  44.             end
  45.         end
  46.         f.close()
  47.         if numLines > resY then
  48.             resY = numLines
  49.         end
  50.     end
  51.     print("Found stats.")
  52.     res = fs.open("/"..output.."/resolution","w")
  53.     res.write(tostring(resX).."\n"..tostring(resY))
  54.     res.close()
  55.     bgFile = fs.open("/"..output.."/bg","w")
  56.     colorFile = fs.open("/"..output.."/color","w")
  57.     textFile = fs.open("/"..output.."/text","w")
  58.     for i = 1, numFrames-1 do
  59.         for a = 1, resY do
  60.             textFile.write(string.rep(" ",resX).."\n")
  61.             colorFile.write(string.rep("0",resX).."\n")
  62.         end
  63.         os.queueEvent("Yield_")
  64.         os.pullEvent("Yield_")
  65.     end
  66.     textFile.write(string.rep(" ",resX))
  67.     colorFile.write(string.rep("0",resX))
  68.     textFile.close()
  69.     colorFile.close()
  70.     print("Wrote text.")
  71.     print("Wrote text color.")
  72.     frameNumber = 0
  73.     for k,v in pairs(fs.list("/"..file)) do
  74.         frameNumber = frameNumber+1
  75.         f = fs.open("/"..file.."/"..v,"r")
  76.         curFrame = ""
  77.         curLine = true
  78.         lineNumber = 0
  79.         while curLine do
  80.             lineNumber = lineNumber +1
  81.             curLine = f.readLine()
  82.             if curLine then
  83.                 if lineNumber ~= 1 then
  84.                     curFrame = curFrame.."\n"
  85.                 end
  86.                 curLine = curLine:gsub(" ","f")
  87.                 curLine = curLine..string.rep("f",resX-#curLine)
  88.                 curFrame = curFrame..curLine
  89.             end
  90.         end
  91.         for a = lineNumber,resY do
  92.             curLine = string.rep("f",resX)
  93.             curFrame = curFrame.."\n"..curLine
  94.         end
  95.         if frameNumber ~= 1 then
  96.             bgFile.write("\n")
  97.         end
  98.         bgFile.write(curFrame)
  99.         os.queueEvent("Yield_")
  100.         os.pullEvent("Yield_")
  101.     end
  102.     print("Wrote background color.")
  103.     bgFile.close()
  104. elseif mode == "nfa" then
  105.     fs.makeDir("/"..output)
  106.     f = fs.open("/"..file,"r")
  107.     curLine = true
  108.     numLines = 0
  109.     numFrames = 1
  110.     while curLine do
  111.         curLine = f.readLine()
  112.         if curLine then
  113.             if #curLine > resX then
  114.                 resX = #curLine
  115.             end
  116.         end
  117.         if curLine == "~" and resY == 0 then
  118.             resY = numLines
  119.         end
  120.         if curLine == "~" then
  121.             numFrames = numFrames+1
  122.         end
  123.         numLines = numLines+1
  124.     end
  125.     f.close()
  126.     f = fs.open("/"..output.."/resolution","w")
  127.     f.write(tostring(resX).."\n"..tostring(resY))
  128.     f.close()
  129.     bgFile = fs.open("/"..output.."/bg","w")
  130.     colorFile = fs.open("/"..output.."/color","w")
  131.     textFile = fs.open("/"..output.."/text","w")
  132.     for i = 1, numFrames-1 do
  133.         for a = 1, resY do
  134.             textFile.write(string.rep(" ",resX).."\n")
  135.             colorFile.write(string.rep("0",resX).."\n")
  136.         end
  137.         os.queueEvent("Yield_")
  138.         os.pullEvent("Yield_")
  139.     end
  140.     textFile.write(string.rep(" ",resX))
  141.     colorFile.write(string.rep("0",resX))
  142.     textFile.close()
  143.     colorFile.close()
  144.     print("Wrote text.")
  145.     print("Wrote text color.")
  146.     f = fs.open("/"..file,"r")
  147.     curLine = true
  148.     lineNumber = 0
  149.     frames = ""
  150.     while curLine do
  151.         curLine = f.readLine()
  152.         lineNumber = lineNumber+1
  153.         if curLine and curLine ~= "~" then
  154.             if lineNumber > 1 then
  155.                 frames = frames.."\n"
  156.                 --12f
  157.                 --2ff
  158.                 --fff
  159.                 --<\n>
  160.                 --123
  161.                 --23f
  162.                 --3ff
  163.             end
  164.             curLine = curLine:gsub(" ","f")
  165.             curLine = curLine..string.rep("f",resX-#curLine)
  166.             frames = frames..curLine
  167.         end
  168.     end
  169.     bgFile.write(frames)
  170.     print("Wrote background color.")
  171.     bgFile.close()
  172. end
Advertisement
Add Comment
Please, Sign In to add comment