TwiXon4ik

Untitled

Oct 5th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.37 KB | None | 0 0
  1. local component = require("component")
  2. local noise = require("noise")
  3. local keyboard = require("keyboard")
  4. local shell = require("shell")
  5. local hologram = component.hologram
  6.  
  7. hologram.clear()
  8.  
  9. local seed = math.random(0xFFFFFFFF)
  10. for x = 1, 16 * 3 do
  11. for z = 1, 16 * 3 do
  12. hologram.fill(x, z, 15 + noise.fbm(x/(16*3) + seed, 1, z/(16*3) + seed) * 28,1)
  13. end
  14. end
  15.  
  16. local glyphs = {
  17. ["a"]=[[
  18. XXXXX
  19. X X
  20. XXXXX
  21. X X
  22. X X
  23. ]],
  24. ["b"]=[[
  25. XXXX
  26. X X
  27. XXXX
  28. X X
  29. XXXX
  30. ]],
  31. ["c"]=[[
  32. XXXXX
  33. X
  34. X
  35. X
  36. XXXXX
  37. ]],
  38. ["d"]=[[
  39. XXXX
  40. X X
  41. X X
  42. X X
  43. XXXX
  44. ]],
  45. ["e"]=[[
  46. XXXXX
  47. X
  48. XXXX
  49. X
  50. XXXXX
  51. ]],
  52. ["f"]=[[
  53. XXXXX
  54. X
  55. XXXX
  56. X
  57. X
  58. ]],
  59. ["g"]=[[
  60. XXXXX
  61. X
  62. X XXX
  63. X X
  64. XXXXX
  65. ]],
  66. ["h"]=[[
  67. X X
  68. X X
  69. XXXXX
  70. X X
  71. X X
  72. ]],
  73. ["i"]=[[
  74. XXX
  75. X
  76. X
  77. X
  78. XXX
  79. ]],
  80. ["j"]=[[
  81. X
  82. X
  83. X
  84. X X
  85. XXXXX
  86. ]],
  87. ["k"]=[[
  88. X X
  89. X X
  90. XXX
  91. X X
  92. X X
  93. ]],
  94. ["l"]=[[
  95. X
  96. X
  97. X
  98. X
  99. XXXXX
  100. ]],
  101. ["m"]=[[
  102. X X
  103. XX XX
  104. X X X
  105. X X
  106. X X
  107. ]],
  108. ["n"]=[[
  109. X X
  110. XX X
  111. X X X
  112. X XX
  113. X X
  114. ]],
  115. ["o"]=[[
  116. XXXXX
  117. X X
  118. X X
  119. X X
  120. XXXXX
  121. ]],
  122. ["p"]=[[
  123. XXXXX
  124. X X
  125. XXXXX
  126. X
  127. X
  128. ]],
  129. ["q"]=[[
  130. XXXXX
  131. X X
  132. X X
  133. X X
  134. XXX X
  135. ]],
  136. ["r"]=[[
  137. XXXXX
  138. X X
  139. XXXX
  140. X X
  141. X X
  142. ]],
  143. ["s"]=[[
  144. XXXXX
  145. X
  146. XXXXX
  147. X
  148. XXXXX
  149. ]],
  150. ["t"]=[[
  151. XXXXX
  152. X
  153. X
  154. X
  155. X
  156. ]],
  157. ["u"]=[[
  158. X X
  159. X X
  160. X X
  161. X X
  162. XXXXX
  163. ]],
  164. ["v"]=[[
  165. X X
  166. X X
  167. X X
  168. X X
  169. X
  170. ]],
  171. ["w"]=[[
  172. X X
  173. X X
  174. X X X
  175. X X X
  176. X X
  177. ]],
  178. ["x"]=[[
  179. X X
  180. X X
  181. X
  182. X X
  183. X X
  184. ]],
  185. ["y"]=[[
  186. X X
  187. X X
  188. XXX
  189. X
  190. X
  191. ]],
  192. ["z"]=[[
  193. XXXXX
  194. X
  195. XXX
  196. X
  197. XXXXX
  198. ]],
  199. ["0"]=[[
  200. XXX
  201. X X
  202. X X X
  203. X X
  204. XXX
  205. ]],
  206. ["1"]=[[
  207. XX
  208. X X
  209. X
  210. X
  211. X
  212. ]],
  213. ["2"]=[[
  214. XXXX
  215. X
  216. X
  217. X
  218. XXXXX
  219. ]],
  220. ["3"]=[[
  221. XXXX
  222. X
  223. XXX
  224. X
  225. XXXX
  226. ]],
  227. ["4"]=[[
  228. X X
  229. X X
  230. XXXXX
  231. X
  232. X
  233. ]],
  234. ["5"]=[[
  235. XXXXX
  236. X
  237. XXXX
  238. X
  239. XXXX
  240. ]],
  241. ["6"]=[[
  242. XXX
  243. X
  244. XXXX
  245. X X
  246. XXX
  247. ]],
  248. ["7"]=[[
  249. XXXXX
  250. X
  251. XXX
  252. X
  253. X
  254. ]],
  255. ["8"]=[[
  256. XXX
  257. X X
  258. XXX
  259. X X
  260. XXX
  261. ]],
  262. ["9"]=[[
  263. XXX
  264. X X
  265. XXXX
  266. X
  267. XXX
  268. ]],
  269. [" "]=[[
  270.  
  271.  
  272.  
  273.  
  274.  
  275. ]],
  276. ["."]=[[
  277.  
  278.  
  279.  
  280.  
  281. X
  282. ]],
  283. [","]=[[
  284.  
  285.  
  286.  
  287. X
  288. X
  289. ]],
  290. [";"]=[[
  291.  
  292. X
  293.  
  294. X
  295. X
  296. ]],
  297. ["-"]=[[
  298.  
  299.  
  300. XXX
  301.  
  302.  
  303. ]],
  304. ["+"]=[[
  305.  
  306. X
  307. XXX
  308. X
  309.  
  310. ]],
  311. ["*"]=[[
  312.  
  313. X X
  314. X
  315. X X
  316.  
  317. ]],
  318. ["/"]=[[
  319. X
  320. X
  321. X
  322. X
  323. X
  324. ]],
  325. ["\\"]=[[
  326. X
  327. X
  328. X
  329. X
  330. X
  331. ]],
  332. ["_"]=[[
  333.  
  334.  
  335.  
  336.  
  337. XXXXX
  338. ]],
  339. ["!"]=[[
  340. X
  341. X
  342. X
  343.  
  344. X
  345. ]],
  346. ["?"]=[[
  347. XXX
  348. X
  349. XX
  350.  
  351. X
  352. ]],
  353. ["("]=[[
  354. X
  355. X
  356. X
  357. X
  358. X
  359. ]],
  360. [")"]=[[
  361. X
  362. X
  363. X
  364. X
  365. X
  366. ]],
  367. }
  368.  
  369. local args = shell.parse(...)
  370. local text = "Open Computers"
  371. if args[1] then
  372. text = tostring(args[1])
  373. else
  374. print("No text specified, using default value 'Open Computers'.")
  375. end
  376. local text = text .. " "
  377.  
  378. -- Generate one big string that represents the concatenated glyphs for the provided text.
  379. local value = ""
  380. for row = 1, 5 do
  381. for col = 1, #text do
  382. local char = string.sub(text:lower(), col, col)
  383. local glyph = glyphs[char]
  384. if glyph then
  385. local s = 0
  386. for _ = 2, row do
  387. s = string.find(glyph, "\n", s + 1, true)
  388. if not s then
  389. break
  390. end
  391. end
  392. if s then
  393. local line = string.sub(glyph, s + 1, (string.find(glyph, "\n", s + 1, true) or 0) - 1)
  394. value = value .. line .. " "
  395. end
  396. end
  397. end
  398. value = value .. "\n"
  399. end
  400.  
  401. local bm = {}
  402. for token in value:gmatch("([^\r\n]*)") do
  403. if token ~= "" then
  404. table.insert(bm, token)
  405. end
  406. end
  407. local h,w = #bm,#bm[1]
  408. local sx, sy = math.max(0,(16*3-w)/2), 2*16-h-1
  409. local z = 16*3/2
  410.  
  411. print("Press Ctrl+W to stop.")
  412. for i = 1, math.huge do
  413. os.sleep(0.1)
  414. local function col(n)
  415. return (n - 1 + i) % w + 1
  416. end
  417. for i=1, math.min(16*3,w) do
  418. local x = sx + i
  419. local i = col(i)
  420. for j=1, h do
  421. local y = sy + j-1
  422. if bm[1+h-j]:sub(i, i) ~= " " then
  423. hologram.set(x, y, z, 1)
  424. else
  425. hologram.set(x, y, z, 0)
  426. end
  427. if keyboard.isKeyDown(keyboard.keys.w) and keyboard.isControlDown() then
  428. hologram.clear()
  429. os.exit()
  430. end
  431. end
  432. end
  433. end
Add Comment
Please, Sign In to add comment