Advertisement
hbar

imgshow

Nov 15th, 2013
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.81 KB | None | 0 0
  1. local m = peripheral.wrap("back")
  2.  
  3. illuminators = {}
  4. for i = 0,255 do
  5.   local l = peripheral.wrap("glowstone_illuminator_"..tostring(i))
  6.   table.insert(illuminators,l)
  7. end
  8.  
  9. local index = function(x,y)
  10.   if x%2 == 1 then
  11.     return 16*(x-1)+(16-y)+1
  12.   else
  13.     return 16*(x-1)+y
  14.   end
  15. end
  16.  
  17. local display = function(image)
  18.   for r = 1,16 do
  19.     for c = 1,16 do
  20.       illuminators[index(c,r)].setColor(tonumber(image[r]:sub(1+8*(c-1),8+8*(c-1)),16))
  21.     end
  22.   end
  23. end
  24.  
  25. -- Returns HEX representation of num
  26. -- posted in snipplr.com by ukpyr
  27. function num2hex(num)
  28.     local hexstr = '0123456789abcdef'
  29.     local s = ''
  30.     while num > 0 do
  31.         local mod = math.fmod(num, 16)
  32.         s = string.sub(hexstr, mod+1, mod+1) .. s
  33.         num = math.floor(num / 16)
  34.     end
  35.     if s == '' then s = '00' end
  36.     if #s < 2 then s = '0'..s end
  37.     return s
  38. end
  39.  
  40.  
  41. local loadimg = function(name)
  42.   img = {}
  43.  
  44.   local f = fs.open(name..".txt","r")
  45.  
  46.   line = f.readLine()
  47.   while line ~= nil do
  48.     table.insert(img,line)
  49.     line = f.readLine()
  50.   end
  51.   f.close()
  52.   return img
  53. end
  54.  
  55. fader = {}
  56.  
  57. local run = function(self,steps,dt)
  58.  
  59.   for i = 1,steps do
  60.     local current = {}
  61.     for r = 1,16 do
  62.       line = ""
  63.       for c = 1,16 do
  64.         local s_px = self.start[r]:sub(1+8*(c-1),8+8*(c-1))
  65.         local e_px = self.final[r]:sub(1+8*(c-1),8+8*(c-1))
  66.         local s_r, s_g, s_b = tonumber(s_px:sub(3,4),16), tonumber(s_px:sub(5,6),16), tonumber(s_px:sub(7,8),16)
  67.         local e_r, e_g, e_b = tonumber(e_px:sub(3,4),16), tonumber(e_px:sub(5,6),16), tonumber(e_px:sub(7,8),16)
  68.         local d_r = ((e_r-s_r)/(steps-1))*(i-1)
  69.         local d_g = ((e_g-s_g)/(steps-1))*(i-1)
  70.         local d_b = ((e_b-s_b)/(steps-1))*(i-1)
  71.         local c_r, c_g, c_b = s_r + d_r, s_g + d_g, s_b + d_b
  72.         line = line.."0x"..num2hex(c_r)..num2hex(c_g)..num2hex(c_b)
  73.       end
  74.       table.insert(current,line)
  75.     end
  76.     display(current)
  77.     sleep(dt)
  78.   end
  79. end
  80.  
  81. fader.run = run
  82.  
  83. images = {}
  84.  
  85. table.insert(images,loadimg("sFTBlogo"))
  86. table.insert(images,loadimg("pickaxe_diamond"))
  87. table.insert(images,loadimg("compcraft"))
  88. table.insert(images,loadimg("mobcreeper"))
  89. table.insert(images,loadimg("mobskeleton"))
  90. table.insert(images,loadimg("mobpigman"))
  91. table.insert(images,loadimg("mobzombie"))
  92. table.insert(images,loadimg("endereye"))
  93. table.insert(images,loadimg("furnace"))
  94.  
  95. banner = {}
  96.  
  97. for i=1,29 do
  98.   table.insert(banner,loadimg("banner"..tostring(i)))
  99. end
  100.  
  101.  
  102. display(banner[29])
  103.  
  104. os.pullEvent("redstone")
  105. sleep(0.7)
  106. display(images[1])
  107. sleep(2)
  108.  
  109. for i = 1,#images-1 do
  110.   fader.start = images[i]
  111.   fader.final = images[i+1]
  112.   fader:run(12,0.1)
  113.   sleep(1)
  114. end
  115. fader.start = fader.final
  116. fader.final = banner[1]
  117. fader:run(12,0.1)
  118.  
  119. for i = 2,29 do
  120.   display(banner[i])
  121.   sleep(0.15)
  122. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement