-- Generates a random heightmap and displays scrolling text above it. local component = require("component") local noise = require("noise") local keyboard = require("keyboard") local hologram = component.hologram hologram.clear() local seed = math.random(0xFFFFFFFF) for x = 1, 16 * 3 do for z = 1, 16 * 3 do hologram.fill(x, z, 15 + noise.fbm(x/(16*3) + seed, 1, z/(16*3) + seed) * 28,1) end end local value = [[ XXXXXX XXXXX XXXXX X X XXXXX XXXXX X X XXXXX X X XXXXX XXXXX XXXX XXXXX X X X X X XX X X X X XX XX X X X X X X X X X X X XXXXX XXXX X X X X X X XXXXX XXXXX X X X XXXX XXXX XXXXX X X X X X XX X X X X X X X X X X X X X X XXXXXX X XXXXX X X XXXXX XXXXX X X X XXXXX X XXXXX X X XXXXX ]] -- local value = [[ -- XXXXXX XXXXX -- X X X -- X X X -- X X X -- XXXXXX XXXXX -- ]] local bm = {} for token in value:gmatch("([^\r\n]*)") do if token ~= "" then table.insert(bm, token) end end print("Press Ctrl+W to stop") local h,w = #bm,#bm[1] local sx, sy = math.max(0,(16*3-w)/2), 2*16-h-1 local z = 16*3/2 for i = 1, math.huge do os.sleep(0.1) local function col(n) return (n - 1 + i) % w + 1 end for i=1, math.min(16*3,w) do local x = sx + i local i = col(i) for j=1, h do local y = sy + j-1 if bm[1+h-j]:sub(i, i) ~= " " then hologram.set(x, y, z, 1) else hologram.set(x, y, z, 0) end if keyboard.isKeyDown(keyboard.keys.w) and keyboard.isControlDown() then hologram.clear() os.exit() end end end end