Advertisement
Guest User

holo test

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