Advertisement
Chaos_Cash

Pixelart Builder Main

Jul 19th, 2024 (edited)
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.20 KB | None | 0 0
  1. function startup()
  2.  
  3. rednet.open("back")
  4. name = read()
  5. file = fs.open("pictures/"..name,"r")
  6.  
  7. stopReading = false
  8.  
  9. blocks = {}
  10. blockNames = {"minecraft:white_wool","minecraft:light_gray_wool","minecraft:gray_wool","minecraft:black_wool","minecraft:brown_wool","minecraft:red_wool","minecraft:orange_wool","minecraft:yellow_wool","minecraft:lime_wool","minecraft:green_wool","minecraft:cyan_wool","minecraft:light_blue_wool","minecraft:blue_wool","minecraft:purple_wool","minecraft:magenta_wool","minecraft:pink_wool","minecraft:white_concrete","minecraft:light_gray_concrete","minecraft:gray_concrete","minecraft:black_concrete","minecraft:brown_concrete","minecraft:red_concrete","minecraft:orange_concrete","minecraft:yellow_concrete","minecraft:lime_concrete","minecraft:green_concrete","minecraft:cyan_concrete","minecraft:light_blue_concrete","minecraft:blue_concrete","minecraft:purple_concrete","minecraft:magenta_concrete","minecraft:pink_concrete","minecraft:white_glazed_terracotta","minecraft:light_gray_glazed_terracotta","minecraft:gray_glazed_terracotta","minecraft:black_glazed_terracotta","minecraft:brown_glazed_terracotta","minecraft:red_glazed_terracotta","minecraft:orange_glazed_terracotta","minecraft:yellow_glazed_terracotta","minecraft:lime_glazed_terracotta","minecraft:green_glazed_terracotta","minecraft:cyan_glazed_terracotta","minecraft:light_blue_glazed_terracotta","minecraft:blue_glazed_terracotta","minecraft:purple_glazed_terracotta","minecraft:magenta_glazed_terracotta","minecraft:pink_glazed_terracotta","minecraft:terracotta","minecraft:white_terracotta","minecraft:light_gray_terracotta","minecraft:gray_terracotta","minecraft:black_terracotta","minecraft:brown_terracotta","minecraft:red_terracotta","minecraft:orange_terracotta","minecraft:yellow_terracotta","minecraft:lime_terracotta","minecraft:green_terracotta","minecraft:cyan_terracotta","minecraft:light_blue_terracotta","minecraft:blue_terracotta","minecraft:purple_terracotta","minecraft:magenta_terracotta","minecraft:pink_terracotta","minecraft:white_stained_glass","minecraft:light_gray_stained_glass","minecraft:gray_stained_glass","minecraft:black_stained_glass","minecraft:brown_stained_glass","minecraft:red_stained_glass","minecraft:orange_stained_glass","minecraft:yellow_stained_glass","minecraft:lime_stained_glass","minecraft:green_stained_glass","minecraft:cyan_stained_glass","minecraft:light_blue_stained_glass","minecraft:blue_stained_glass","minecraft:purple_stained_glass","minecraft:magenta_stained_glass","minecraft:pink_stained_glass","minecraft:oak_wood","minecraft:spruce_wood","minecraft:birch_wood","minecraft:jungle_wood","minecraft:acacia_wood","minecraft:dark_oak_wood","minecraft:oak_planks","minecraft:spruce_planks","minecraft:birch_planks","minecraft:jungle_planks","minecraft:acacia_planks","minecraft:dark_oak_planks","minecraft:dirt","minecraft:clay"}
  11. blockNumbers = {}
  12.  
  13. for i=1,128 do
  14. blocks[i] = {}
  15. end
  16.  
  17. computers = {7}
  18. subComputers = {8,9,10,11,12,13,14,15,16}
  19.  
  20.  
  21. computerAreas = {}
  22. computerAreas[1] = {["x1"]=72,["x2"]=128,["z1"]=72,["z2"]=128}
  23. computerAreas[2] = {["x1"]=72,["x2"]=128,["z1"]=15,["z2"]=72}
  24. computerAreas[3] = {["x1"]=72,["x2"]=128,["z1"]=-3,["z2"]=19}
  25. computerAreas[4] = {["x1"]=19,["x2"]=70,["z1"]=72,["z2"]=128}
  26. computerAreas[5] = {["x1"]=19,["x2"]=70,["z1"]=15,["z2"]=72}
  27. computerAreas[6] = {["x1"]=19,["x2"]=70,["z1"]=-3,["z2"]=19}
  28. computerAreas[7] = {["x1"]=-32,["x2"]=17,["z1"]=72,["z2"]=128}
  29. computerAreas[8] = {["x1"]=-32,["x2"]=17,["z1"]=15,["z2"]=72}
  30. computerAreas[9] = {["x1"]=-32,["x2"]=17,["z1"]=-3,["z2"]=19}
  31.  
  32.  
  33. areaData = {}
  34.  
  35. for k,v in pairs(blockNames) do
  36. blockNumbers[blockNames[k]] = k-1
  37. end
  38. blockNumbers["minecraft:air"] = 16
  39.  
  40.  
  41. end
  42.  
  43.  
  44.  
  45.  
  46. function readFile()
  47.  
  48. zStep = 0
  49. while zStep ~= 128 and not stopReading do
  50. zStep = zStep+1
  51. line = file.readLine()
  52.  
  53. if line == "" or line == nil then
  54. stopReading = true
  55. end
  56.  
  57. curTextPos = 1
  58.  
  59.  
  60. xStep = 0
  61. while xStep ~= 128 do
  62. xStep = xStep+1
  63.  
  64. blocks[xStep][zStep] = ""
  65. while string.byte(line,curTextPos) ~= string.byte(",") and string.byte(line,curTextPos) ~= nil do
  66. blocks[xStep][zStep] = blocks[xStep][zStep] .. string.char(string.byte(line,curTextPos))
  67.  
  68. curTextPos = curTextPos+1
  69. end
  70. curTextPos = curTextPos+1
  71.  
  72. end
  73.  
  74. end
  75. file.close()
  76.  
  77. for i1=1,128 do
  78. for i2=1,128 do
  79. if type(tonumber(blocks[i2][i1])) == "number" then
  80. blocks[i2][i1] = blockNames[blocks[i2][i1]+1]
  81. end
  82. end
  83. end
  84.  
  85. end
  86.  
  87.  
  88.  
  89. function clear()
  90.  
  91. resetRedstoneOutput()
  92.  
  93. for k,v in pairs(subComputers) do
  94. rednet.send(subComputers[k],{["action"]="changeRedstone",["bottom"]=1})
  95. end
  96.  
  97.  
  98. for i1=1,57 do
  99. xPos = i1-1
  100.  
  101. for i2=1,57 do
  102. zPos = i2
  103.  
  104. for k,v in pairs(computers) do
  105. rednet.send(computers[k],{["action"]="changeRedstone",["top"]=(xPos-math.floor(xPos/15)*15),["right"]=math.floor(xPos/15),["bottom"]=(zPos-math.floor(zPos/15)*15),["left"]=math.floor(zPos/15)})
  106. end
  107.  
  108. sleep(0.1)
  109. end
  110.  
  111. end
  112.  
  113. resetRedstoneOutput()
  114. end
  115.  
  116.  
  117.  
  118. function resetRedstoneOutput()
  119. for k,v in pairs(computers) do
  120. rednet.send(computers[k],{["action"]="changeRedstone",["top"]=0,["right"]=0,["bottom"]=0,["left"]=0})
  121. rednet.send(subComputers[k],{["action"]="changeRedstone",["bottom"]=0})
  122. end
  123. sleep(0.1)
  124. end
  125.  
  126.  
  127.  
  128. function printPixelArt()
  129. resetRedstoneOutput()
  130.  
  131.  
  132. for k,v in pairs(subComputers) do
  133. rednet.send(subComputers[k],{["action"]="changeRedstone",["bottom"]=2})
  134. end
  135.  
  136.  
  137. for i1=1,57 do
  138. xPos = i1-1
  139.  
  140. for i2=1,57 do
  141. zPos = i2
  142.  
  143. for k,v in pairs(subComputers) do
  144. rednet.send(subComputers[k],{["action"]="changeRedstone",["bottom"]=0})
  145. end
  146.  
  147. for k,v in pairs(subComputers) do
  148. if type(blocks[computerAreas[k]["x1"]+i1-1]) == "table" then
  149. if type(blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]) == "number" then
  150. rednet.send(subComputers[k],{["action"]="changeRedstone",["top"]=math.floor(blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]/15),["right"]=blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]-math.floor(blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]/15)*15})
  151. else
  152. rednet.send(subComputers[k],{["action"]="changeRedstone",["top"]=15,["right"]=15})
  153. end
  154. else
  155. rednet.send(subComputers[k],{["action"]="changeRedstone",["top"]=15,["right"]=15})
  156. end
  157. end
  158.  
  159. sleep(0.05)
  160.  
  161. for k,v in pairs(computers) do
  162. rednet.send(computers[k],{["action"]="changeRedstone",["top"]=(xPos-math.floor(xPos/15)*15),["right"]=math.floor(xPos/15),["bottom"]=(zPos-math.floor(zPos/15)*15),["left"]=math.floor(zPos/15)})
  163. end
  164.  
  165. for k,v in pairs(subComputers) do
  166. rednet.send(subComputers[k],{["action"]="changeRedstone",["bottom"]=2})
  167. end
  168.  
  169. sleep(0.05)
  170. end
  171.  
  172.  
  173. if i1 == 1 then
  174.  
  175. for i2=1,57 do
  176. zPos = i2
  177.  
  178. for k,v in pairs(subComputers) do
  179. if type(blocks[computerAreas[k]["x1"]+i1-1]) == "table" then
  180. if type(blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]) == "number" then
  181. rednet.send(subComputers[k],{["action"]="changeRedstone",["top"]=math.floor(blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]/15),["right"]=blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]-math.floor(blockNumbers[blocks[computerAreas[k]["x1"]+i1-1][computerAreas[k]["z1"]+i2-1]]/15)*15})
  182. else
  183. rednet.send(subComputers[k],{["action"]="changeRedstone",["top"]=15,["right"]=15})
  184. end
  185. end
  186. end
  187.  
  188. sleep(0.05)
  189.  
  190. for k,v in pairs(computers) do
  191. rednet.send(computers[k],{["action"]="changeRedstone",["top"]=(xPos-math.floor(xPos/15)*15),["right"]=math.floor(xPos/15),["bottom"]=(zPos-math.floor(zPos/15)*15),["left"]=math.floor(zPos/15)})
  192. end
  193.  
  194. sleep(0.05)
  195. end
  196.  
  197. end
  198.  
  199. end
  200.  
  201.  
  202. resetRedstoneOutput()
  203. end
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212. startup()
  213. readFile()
  214.  
  215. sleep(2)
  216.  
  217. resetRedstoneOutput()
  218. sleep(1)
  219. clear()
  220. resetRedstoneOutput()
  221. sleep(1)
  222. printPixelArt()
  223.  
  224.  
  225. -- for i1=1,128 do
  226.  
  227. -- for i2=1,128 do
  228. -- if not type(blockNumbers[blocks[i1][i2]]) == "number" then
  229. -- print(i1 .. " " .. i2)
  230. -- end
  231. -- end
  232.  
  233. -- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement