Advertisement
Guest User

Untitled

a guest
Jun 20th, 2014
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.85 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.         hologram.set(x, y, z, value)
  60.         if keyboard.isKeyDown(keyboard.keys.w) and keyboard.isControlDown() then
  61.           os.exit()
  62.         end
  63.       end
  64.     end
  65.   end
  66. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement