Advertisement
Guest User

Stuff

a guest
Jun 20th, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. -- Generates a random heightmap and displays scrolling text above it.
  2.  
  3. local component = require("component")
  4. local text = require("text")
  5. local noise = require("noise")
  6. local keyboard = require("keyboard")
  7. local hologram = component.hologram
  8.  
  9. hologram.clear()
  10.  
  11. local seed = math.random(0xFFFFFFFF)
  12. for x = 1, 16 * 3 do
  13. for z = 1, 16 * 3 do
  14. hologram.fill(x, z, 15 + noise.fbm(x/(16*3) + seed, 1, z/(16*3) + seed) * 28,1)
  15. end
  16. end
  17.  
  18. local value = [[
  19. XXXXXX XXXXX XXXXX X X XXXXX XXXXX X X XXXXX X X XXXXX XXXXX XXXX XXXXX
  20. X X X X X XX X X X X XX XX X X X X X X X X X
  21. X X XXXXX XXXX X X X X X X XXXXX XXXXX X X X XXXX XXXX XXXXX
  22. X X X X X XX X X X X X X X X X X X X X X
  23. XXXXXX X XXXXX X X XXXXX XXXXX X X X XXXXX X XXXXX X X XXXXX
  24. ]]
  25.  
  26. -- local value = [[
  27. -- XXXXXX XXXXX
  28. -- X X X
  29. -- X X X
  30. -- X X X
  31. -- XXXXXX XXXXX
  32. -- ]]
  33.  
  34. local bm = {}
  35. for token in value:gmatch("([^\r\n]*)") do
  36. if token ~= "" then
  37. table.insert(bm, token)
  38. end
  39. end
  40. print("Press Ctrl+W to stop")
  41. local h,w = #bm,#bm[1]
  42. local sx, sy = math.max(0,(16*3-w)/2), 2*16-h-1
  43. local z = 16*3/2
  44.  
  45. for i = 1, math.huge do
  46. os.sleep(0.1)
  47. local function col(n)
  48. return (n - 1 + i) % w + 1
  49. end
  50. for i=1, math.min(16*3,w) do
  51. local x = sx + i
  52. local i = col(i)
  53. local value = hologram.get(x, 1, z)
  54. value = bit32.band(0xFFFFFF, value)
  55. for j=1, h do
  56. local y = sy + j-1
  57. if bm[1+h-j]:sub(i, i) ~= " " then
  58. value = bit32.bor(value, bit32.lshift(1, y))
  59. for l = 1, 32 do
  60. hologram.set(x, l, z, value)
  61. end
  62. if keyboard.isKeyDown(keyboard.keys.w) and keyboard.isControlDown() then
  63. os.exit()
  64. end
  65. end
  66. end
  67. end
  68. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement