添加横板
BIN
H-HB-IMG/1.png
Normal file
|
After Width: | Height: | Size: 240 B |
BIN
H-HB-IMG/10.png
Normal file
|
After Width: | Height: | Size: 456 B |
BIN
H-HB-IMG/11.png
Normal file
|
After Width: | Height: | Size: 505 B |
BIN
H-HB-IMG/12.png
Normal file
|
After Width: | Height: | Size: 536 B |
BIN
H-HB-IMG/13.png
Normal file
|
After Width: | Height: | Size: 561 B |
BIN
H-HB-IMG/14.png
Normal file
|
After Width: | Height: | Size: 575 B |
BIN
H-HB-IMG/15.png
Normal file
|
After Width: | Height: | Size: 586 B |
BIN
H-HB-IMG/16.png
Normal file
|
After Width: | Height: | Size: 598 B |
BIN
H-HB-IMG/2.png
Normal file
|
After Width: | Height: | Size: 240 B |
BIN
H-HB-IMG/3.png
Normal file
|
After Width: | Height: | Size: 284 B |
BIN
H-HB-IMG/4.png
Normal file
|
After Width: | Height: | Size: 287 B |
BIN
H-HB-IMG/5.png
Normal file
|
After Width: | Height: | Size: 360 B |
BIN
H-HB-IMG/6.png
Normal file
|
After Width: | Height: | Size: 386 B |
BIN
H-HB-IMG/7.png
Normal file
|
After Width: | Height: | Size: 426 B |
BIN
H-HB-IMG/8.png
Normal file
|
After Width: | Height: | Size: 442 B |
BIN
H-HB-IMG/9.png
Normal file
|
After Width: | Height: | Size: 439 B |
BIN
H-HB-IMG/out.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
H-QC-IMG/1.png
Normal file
|
After Width: | Height: | Size: 247 B |
BIN
H-QC-IMG/10.png
Normal file
|
After Width: | Height: | Size: 479 B |
BIN
H-QC-IMG/11.png
Normal file
|
After Width: | Height: | Size: 527 B |
BIN
H-QC-IMG/12.png
Normal file
|
After Width: | Height: | Size: 556 B |
BIN
H-QC-IMG/13.png
Normal file
|
After Width: | Height: | Size: 581 B |
BIN
H-QC-IMG/14.png
Normal file
|
After Width: | Height: | Size: 594 B |
BIN
H-QC-IMG/15.png
Normal file
|
After Width: | Height: | Size: 603 B |
BIN
H-QC-IMG/16.png
Normal file
|
After Width: | Height: | Size: 620 B |
BIN
H-QC-IMG/2.png
Normal file
|
After Width: | Height: | Size: 247 B |
BIN
H-QC-IMG/3.png
Normal file
|
After Width: | Height: | Size: 294 B |
BIN
H-QC-IMG/4.png
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
H-QC-IMG/5.png
Normal file
|
After Width: | Height: | Size: 379 B |
BIN
H-QC-IMG/6.png
Normal file
|
After Width: | Height: | Size: 407 B |
BIN
H-QC-IMG/7.png
Normal file
|
After Width: | Height: | Size: 448 B |
BIN
H-QC-IMG/8.png
Normal file
|
After Width: | Height: | Size: 466 B |
BIN
H-QC-IMG/9.png
Normal file
|
After Width: | Height: | Size: 462 B |
BIN
H-QC-IMG/out.gif
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
41
player-h-hb.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
local b64str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||
|
||||
local logostr = [[
|
||||
32Vid 1.1
|
||||
13
|
||||
!CPC007CAAAAABsACgAAAAAAAAAAACBfigGLASAaggGPAYQBIJAAXwIBIAEAGgIDAJAAAADb29vX19cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=c06bb958
|
||||
!CPC0088AAAAABsACgAAAAAAAAAAACBflQGLASAZlQEgAY8BhAEgF4IBIHgAXyACABkgAgICABcCAQB4AAAA29vb19fXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA39b1ef7b
|
||||
!CPC00B4AAAAABsACgAAAAAAAAAAACBflQGLASAZlQEgAY8BlAEgF4UBIAKVASAVnwGBASACnwEgGYMBIEEAXzACABkwAhMBAwEAFxADAQEAFRAEAQEAGQEBAEEAAACysrLb29vX19cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=b39387d2
|
||||
!CPC00E0AAAAABsACgAAAAAAAAAAACBflQGLASAZlQEgAY8BlAEgF4UBIAKVASAVnwGBASACnwEgFYcBIAOHASAVgQEgAp8BgQEgFo8ChwEgDgBfMAIAGTACEwEDAQAXEAMBAQAVEAQBAQAVEAQBAQAVEAMBAgAWAQMADgAAALKystvb29fX1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==b119b8fc
|
||||
!CPC011CAAAAABsACgAAAAAAAAAAACBZlQGCAYsBIAOVAYsBIBOVASACggGPASABlQEgAY8BlAEgEYIBkAEgBIUBIAKVASATggGLAZ8BgQEgAp8BIBWHASADhwEgFYEBIAKfAYEBIBaPAocBIA4AWUADAAMwAgATQAUAATACEwEDAQARBAFABRQBEAIBAQATBAIUAhACAQEAFRAEAQEAFRADAQIAFgEDAA4AAACysrLb29vX19d2dnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=7ef73bf3
|
||||
!CPC0158AAAAABsACgAAAAAAAAAAACALnwGQASAXjwGDASABlQEgFJ8BhwGBASADlQEgFJUBIAOPAYMBlQGLASATlQEgAoIBjwEgAZUBIAGPAZQBIBGCAZABIASFASAClQEgE4IBiwGfAYEBIAKfASAVhwEgA4cBIBWBASACnwGBASAWjwKHASAQAAtAAQQBABdAAwQBABRABgQBABRABAQCMAIAE0AFAAEwAhMBAwEAEQQBQAUUARACAQEAEwQCFAIQAgEBABUQBAEBABUQAwECABYBAwAQAAAAsrKy29vb19fXdnZ2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA86003966
|
||||
!CPC0174AAAAABsACgAAAAAAAAAAACAJnwGQAYIBjwEgFY8BgwEgAZUBIAGfAYEBIBGfAYcBgQEgA5UBgwEgE5UBIAOPAYMBlQGLASATlQEgAoIBjwEgAZUBIAGPAZQBIBGCAZABIASFASAClQEgE4IBiwGfAYEBIAKfASAVhwEgA4cBIBWBASACnwGBASAWjwKHASASAAlAAQQBUAIAFUADBAFQAQUCABFABgQBBQEAE0AEBAIwAgATQAUAATACEwEDAQARBAFABRQBEAIBAQATBAIUAhACAQEAFRAEAQEAFRADAQIAFgEDABIAAACysrLb29vX19d2dnbq6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=e5890268
|
||||
!CPC0190AAAAABsACgAAAAAAAAAAACAHnwGQAYIBjwEgFY8BgwEgAZUBIAGfAYEBkAEgEJ8BhwGBASADlQGDAYgBgQGVASAQlQEgA48BgwGVAYsBIAKBASAQlQEgAoIBjwEgAZUBIAGPAZQBIBGCAZABIASFASAClQEgE4IBiwGfAYEBIAKfASAVhwEgA4cBIBWBASACnwGBASAWjwKHASAUAAdAAQQBUAIAFUADBAFQAQUDABBABgQBBQJQAQUBABBABAQCMAIAAgUBABBABQABMAITAQMBABEEAUAFFAEQAgEBABMEAhQCEAIBAQAVEAQBAQAVEAMBAgAWAQMAFAAAALKystvb29fX13Z2durq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==95aff79d
|
||||
!CPC0178AAAAABsACgAAAAAAAAAAACAGjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgFIsBkAEgAp8BggEgEosBIASfAYEBIBaDAZABhwEgA4UBIBSfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAVAAZAAVACBQEAFEAEUAIFAVABABFABgUCUAIAEUADBAMwAQMBAAEFAQARQAQEAQABMAETARABABIEAUAEFAETARACABQEAUABFAEQAwEBABQQBAECABQQBAEBABYBBAAVAAAAsrKy29vb19fXdnZ26urqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6c012511
|
||||
!CPC0190AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAp8BIBGLAZABIAKfAYIBIASBASANiwEgBJ8BgQEgFoMBkAGHASADhQEgFJ8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAIgAQAOUAQFAQABQAEUARABAAQCAQANBQFQBBUBFAEQAgAUBQFQARUBEAMBAQAUEAQBAgAUEAQBAQAWAQQAFgAAALKysv///9vb29fX13Z2durq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==332a7222
|
||||
!CPC01D8AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAqfAZABIAOLAZABIAKfAYIBIAKBASABgQEgCYEBIAKCAYsBIASfAYEBIAyfASAJgwGQAYcBIAOFASAKggEgCZ8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAEgAgABIAEACiABAgFQBAUBAAFAARQBEAEAAgIBAAECAQAJAgEAAgIBBQFQBBUBFAEQAgAKIAEACQUBUAEVARADAQEACgIBAAkQBAECABQQBAEBABYBBAAWAAAAsrKy////29vb19fXdnZ26urqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA75fa70dc
|
||||
!CPC0228AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAafAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGCASACnwEgAZ8BIAGaASABgQGKAZABggGLASAEnwGBASAElQEgBZUBIAGVASAJgwGQAYcBIAOFASAIggEgAYIBIAmfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAWAAVQAWACBgEAFFAEYAIGAWABABFQBgYCYAIAEVADBQNAAQQBAAEGAQABIAIAASABAAYgAgACIAECAVAEBQEAAUABFAEQAQACAgEAAQICAAIgAQABIAEAASABAAECBAUBUAQVARQBEAIAAgIBAAUgAQABIAEACQUBUAEVARADAQEACAIBAAECAQAJEAQBAgAUEAQBAQAWAQQAFgAAALKysv///9vb29fX13Z2durq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==38043dd2
|
||||
!CPC0258AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAafAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGKASAClwEgAZcBIAGaAZABgQGKAY8BggGLASAEnwGBASAElQEgBZUBIAGVASACggEgA4EBIAKDAZABhwEgA4UBIAKCAYEBIAGCASACggEgAYIBIAmfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAWAAVQAWACBgEAFFAEYAIGAWABABFQBgYCYAIAEVADBQNAAQQBAAEGAQABIAIAASABAAYgAgACIAECAVAEBQEAAUABFAEQAQACAgEAAQICAAIgAQABIAEAASABAgMgAQIBBQFQBBUBFAEQAgACAgEABSABAAEgAQACAgEAAwIBAAIFAVABFQEQAwEBAAICAgABAgEAAgIBAAECAQAJEAQBAgAUEAQBAQAWAQQAFgAAALKysv///9vb29fX13Z2durq6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==408d5691
|
||||
!CPC0274AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAOQASACnwGPASACjwGQASADiwGQASACnwGCASAClQEgAYEBlQEgApUBIAGVASABmgGQAYEBigGPAYIBiwEgBJ8BgQEgBJUBIAGQASADlQEgAZUBIAKCAZQBIAKWASACgwGQAYcBIAOFASACggGDASABggGBASABggEgAYIBIAmfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAWAAVQAWACBgEAFFAEYAIGAWABABFQBgYCYAIAEVADBQNAAQQBAAEGAQABIAIAASABAAMCAQACIAIAAiABAgFQBAUBAAFAARQBEAEAAgIBAAECASABAAIgAQABIAEAASABAgMgAQIBBQFQBBUBFAEQAgACAgEAAQIBAAMgAQABIAEAAgICAAIgAQACBQFQARUBEAMBAQACAgIAAQICAAECAQABAgEACRAEAQIAFBAEAQEAFgEEABYAAACysrL////b29vX19d2dnbq6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=2b7c88cc
|
||||
!CPC028CAAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAOPAZABIAGfAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGVASAClQEgAZUBIAGaAZABgQGKAY8BggGLASAEnwGBASAElQGCAZUBigEgApUBgQGVASACggGUASAClgEgAoMBkAGHASADhQEgAoIBgwEgAYIBgwEgAYIBIAGCASACggEgA4EBIAKfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAWAAVQAWACBgEAFFAEYAIGAWABABFQBgYCYAIAEVADBQNAAQQBAAEGAQABIAIAASABAAMgAQIBAAEgAgACIAECAVAEBQEAAUABFAEQAQACAgEAAQIBIAEAAiABAAEgAQABIAECAyABAgEFAVAEFQEUARACAAICBAACIAECASABAAICAgACIAEAAgUBUAEVARADAQEAAgICAAECAgABAgEAAQIBAAICAQADAgEAAhAEAQIAFBAEAQEAFgEEABYAAACysrL////b29vX19d2dnbq6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=ede2c710
|
||||
!CPC0294AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAOPAZABIAGfAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGVASAClQEgAZUBIAGaAZABgQGKAY8BggGLASAEnwGBASAElQGCAZUBigEgApUBgwGUASABkAGCAZQBnwEgAZYBIAKDAZABhwEgA4UBIAKCAYMBIAGCAYMBgQGCASABggEgAYIBgwEgAoMBgQEgAp8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAEgAgABIAEAAyABAgEAASACAAIgAQIBUAQFAQABQAEUARABAAICAQABAgEgAQACIAEAASABAAEgAQIDIAECAQUBUAQVARQBEAIAAgIEAAIgAQIBIAEAAQIDIAEAASABAAIFAVABFQEQAwEBAAICAgABAgQAAQIBAAECAgACAgIAAhAEAQIAFBAEAQEAFgEEABYAAACysrL////b29vX19d2dnbq6uoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=5b88363d
|
||||
|
||||
]]
|
||||
|
||||
local lines, lineIndex = {}, 1; for line in logostr:gmatch("[^\r\n]+") do table.insert(lines, line) end; local readLine = function() local line = lines[lineIndex]; lineIndex = lineIndex + 1; return line end; if readLine() ~= "32Vid 1.1" then error("Unsupported file") end; local fps = tonumber(readLine()); local first, second = readLine(), readLine(); if second == "" or second == nil then fps = 0 end
|
||||
|
||||
term.clear()
|
||||
|
||||
while true do
|
||||
local f;if first then f,first=first,nil elseif second then f,second=second,nil else f=readLine()end;if f==""or f==nil then break end;local m=f:match("^!CP([CD])");if not m then error("Invalid file")end;local d;if m=="C"then local l=tonumber(f:sub(5,8),16);d=f:sub(9,l+8)else local l=tonumber(f:sub(5,16),16);d=f:sub(17,l+16)end;local function b64dec(s)local r="";for c in s:gmatch"...."do if c:sub(3,4)=="=="then r=r..string.char(bit32.bor(bit32.lshift(b64str:find(c:sub(1,1))-1,2),bit32.rshift(b64str:find(c:sub(2,2))-1,4)))elseif c:sub(4,4)=="="then local n=(b64str:find(c:sub(1,1))-1)*4096+(b64str:find(c:sub(2,2))-1)*64+(b64str:find(c:sub(3,3))-1);r=r..string.char(bit32.extract(n,10,8))..string.char(bit32.extract(n,2,8))else local n=(b64str:find(c:sub(1,1))-1)*262144+(b64str:find(c:sub(2,2))-1)*4096+(b64str:find(c:sub(3,3))-1)*64+(b64str:find(c:sub(4,4))-1);r=r..string.char(bit32.extract(n,16,8))..string.char(bit32.extract(n,8,8))..string.char(bit32.extract(n,0,8))end end;return r end;local dt=b64dec(d);assert(dt:sub(1,4)=="\0\0\0\0"and dt:sub(9,16)=="\0\0\0\0\0\0\0\0","Invalid file");local w,h=("HH"):unpack(dt,5);if w<=0 or h<=0 then break end;local c,n,p=string.unpack("c1B",dt,17);local tl={};local ch=c:byte();for y=1,h do local l="";for x=1,w do l=l..string.char(ch);n=n-1;if n==0 then c,n,p=string.unpack("c1B",dt,p);ch=c:byte()end end;tl[y]=l end;local fl,bl={},{};
|
||||
for y=1,h do local fg,bg="","";for x=1,w do fg=fg..("%x"):format(bit32.band(ch,0x0F));bg=bg..("%x"):format(bit32.rshift(ch,4));n=n-1;if n==0 then ch,n,p=string.unpack("BB",dt,p)end end;fl[y]=fg;bl[y]=bg end;local tw,th=term.getSize();local sx=math.max(1,math.floor((tw-w)/2)+1);local sy=math.max(1,math.floor((th-h)/2)+1);local dh=math.min(h,th-sy+1);local dw=math.min(w,tw-sx+1);if dh>0 and dw>0 then for y=1,dh do local tx=string.sub(tl[y],1,dw);local fg=string.sub(fl[y],1,dw);local bg=string.sub(bl[y],1,dw);term.setCursorPos(sx,sy+y-1);term.blit(tx,fg,bg)end end;p=p-2;for i=0,15 do local r,g,b;r,g,b,p=string.unpack("BBB",dt,p);term.setPaletteColor(2^i,r/255,g/255,b/255)end;if fps==0 then read();break else sleep(1/fps)end
|
||||
|
||||
end
|
||||
|
||||
sleep(1.7)
|
||||
-- Restore default palette
|
||||
for i = 0, 15 do term.setPaletteColor(2^i, term.nativePaletteColor(2^i)) end
|
||||
term.setBackgroundColor(colors.black)
|
||||
term.setTextColor(colors.white)
|
||||
term.clear()
|
||||
term.setCursorPos(1, 1)
|
||||
41
player-h-qc.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
local b64str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||
|
||||
local logostr = [[
|
||||
32Vid 1.1
|
||||
13
|
||||
!CPC007CAAAAABsACgAAAAAAAAAAACBfigGLASAaggGPAYQBIJAAXwIBIAEAGgIDAJAAAAAN16gJ1KcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=80c0308d
|
||||
!CPC0088AAAAABsACgAAAAAAAAAAACBflQGLASAZlQEgAY8BhAEgF4IBIHgAXyACABkgAgICABcCAQB4AAAADdeoCdSnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA791a66ae
|
||||
!CPC00B4AAAAABsACgAAAAAAAAAAACBflQGLASAZlQEgAY8BlAEgF4UBIAKVASAVnwGBASACnwEgGYMBIEEAXzACABkwAhMBAwEAFxADAQEAFRAEAQEAGQEBAEEAAAAJpZ8N16gJ1KcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=ee3876c3
|
||||
!CPC00E0AAAAABsACgAAAAAAAAAAACBflQGLASAZlQEgAY8BlAEgF4UBIAKVASAVnwGBASACnwEgFYcBIAOHASAVgQEgAp8BgQEgFo8ChwEgDgBfMAIAGTACEwEDAQAXEAMBAQAVEAQBAQAVEAQBAQAVEAMBAgAWAQMADgAAAAmlnw3XqAnUpwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==ecb249ed
|
||||
!CPC011CAAAAABsACgAAAAAAAAAAACBZlQGCAYsBIAOVAYsBIBOVASACggGPASABlQEgAY8BlAEgEYIBkAEgBIUBIAKVASATggGLAZ8BgQEgAp8BIBWHASADhwEgFYEBIAKfAYEBIBaPAocBIA4AWUADAAMwAgATQAUAATACEwEDAQARBAFABRQBEAIBAQATBAIUAhACAQEAFRAEAQEAFRADAQIAFgEDAA4AAAAJpZ8N16gJ1KckAIMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=4063b13a
|
||||
!CPC0158AAAAABsACgAAAAAAAAAAACALnwGQASAXjwGDASABlQEgFJ8BhwGBASADlQEgFJUBIAOPAYMBlQGLASATlQEgAoIBjwEgAZUBIAGPAZQBIBGCAZABIASFASAClQEgE4IBiwGfAYEBIAKfASAVhwEgA4cBIBWBASACnwGBASAWjwKHASAQAAtAAQQBABdAAwQBABRABgQBABRABAQCMAIAE0AFAAEwAhMBAwEAEQQBQAUUARACAQEAEwQCFAIQAgEBABUQBAEBABUQAwECABYBAwAQAAAACaWfDdeoCdSnJACDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb894b3af
|
||||
!CPC0174AAAAABsACgAAAAAAAAAAACAJnwGQAYIBjwEgFY8BgwEgAZUBIAGfAYEBIBGfAYcBgQEgA5UBgwEgE5UBIAOPAYMBlQGLASATlQEgAoIBjwEgAZUBIAGPAZQBIBGCAZABIASFASAClQEgE4IBiwGfAYEBIAKfASAVhwEgA4cBIBWBASACnwGBASAWjwKHASASAAlAAQQBUAIAFUADBAFQAQUCABFABgQBBQEAE0AEBAIwAgATQAUAATACEwEDAQARBAFABRQBEAIBAQATBAIUAhACAQEAFRAEAQEAFRADAQIAFgEDABIAAAAJpZ8N16gJ1KckAIMK/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=4c6a8e8f
|
||||
!CPC0190AAAAABsACgAAAAAAAAAAACAHnwGQAYIBjwEgFY8BgwEgAZUBIAGfAYEBkAEgEJ8BhwGBASADlQGDAYgBgQGVASAQlQEgA48BgwGVAYsBIAKBASAQlQEgAoIBjwEgAZUBIAGPAZQBIBGCAZABIASFASAClQEgE4IBiwGfAYEBIAKfASAVhwEgA4cBIBWBASACnwGBASAWjwKHASAUAAdAAQQBUAIAFUADBAFQAQUDABBABgQBBQJQAQUBABBABAQCMAIAAgUBABBABQABMAITAQMBABEEAUAFFAEQAgEBABMEAhQCEAIBAQAVEAQBAQAVEAMBAgAWAQMAFAAAAAmlnw3XqAnUpyQAgwr+rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==3c4c7b7a
|
||||
!CPC0178AAAAABsACgAAAAAAAAAAACAGjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgFIsBkAEgAp8BggEgEosBIASfAYEBIBaDAZABhwEgA4UBIBSfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAVAAZAAVACBQEAFEAEUAIFAVABABFABgUCUAIAEUADBAMwAQMBAAEFAQARQAQEAQABMAETARABABIEAUAEFAETARACABQEAUABFAEQAwEBABQQBAECABQQBAEBABYBBAAVAAAACaWfDdeoCdSnJACDCv6vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc5e2a9f6
|
||||
!CPC0190AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAp8BIBGLAZABIAKfAYIBIASBASANiwEgBJ8BgQEgFoMBkAGHASADhQEgFJ8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAIgAQAOUAQFAQABQAEUARABAAQCAQANBQFQBBUBFAEQAgAUBQFQARUBEAMBAQAUEAQBAgAUEAQBAQAWAQQAFgAAAAmln////w3XqAnUpyQAgwr+rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==370da94f
|
||||
!CPC01D8AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAqfAZABIAOLAZABIAKfAYIBIAKBASABgQEgCYEBIAKCAYsBIASfAYEBIAyfASAJgwGQAYcBIAOFASAKggEgCZ8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAEgAgABIAEACiABAgFQBAUBAAFAARQBEAEAAgIBAAECAQAJAgEAAgIBBQFQBBUBFAEQAgAKIAEACQUBUAEVARADAQEACgIBAAkQBAECABQQBAEBABYBBAAWAAAACaWf////DdeoCdSnJACDCv6vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA71ddabb1
|
||||
!CPC0230AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAafAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGCASACnwEgAZ8BIAGaASABgQGKAZABggGLASAEnwGBASAElQEgBZUBIAGVASAJgwGQAYcBIAOFASAFggEgAoIBIAGCASAJnwGBASACnwGBASAUlwEgA4cBIBaKAY8CgQEgFgAFUAFgAgYBABRQBGACBgFgAQARUAYGAmACABFQAwUDQAEEAQABBgEAASACAAEgAQAGIAIAAiABAgFQBAUBAAFAARQBEAEAAgIBAAECAgACIAEAASABAAEgAQABAgQFAVAEFQEUARACAAICAQAFIAEAASABAAkFAVABFQEQAwEBAAUCAQACAgEAAQIBAAkQBAECABQQBAEBABYBBAAWAAAACaWf////DdeoCdSnJACDCv6vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6800244d
|
||||
!CPC0258AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAafAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGKASAClwEgAZcBIAGaAZABgQGKAY8BggGLASAEnwGBASAElQEgBZUBIAGVASACggEgA4EBIAKDAZABhwEgA4UBIAKCAYEBIAGCAYEBIAGCASABggEgCZ8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAEgAgABIAEABiACAAIgAQIBUAQFAQABQAEUARABAAICAQABAgIAAiABAAEgAQABIAECAyABAgEFAVAEFQEUARACAAICAQAFIAEAASABAAICAQADAgEAAgUBUAEVARADAQEAAgICAAECAgABAgEAAQIBAAkQBAECABQQBAEBABYBBAAWAAAACaWf////DdeoCdSnJACDCv6vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa94bd6e3
|
||||
!CPC0270AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAOQASACnwGPASACjwGQASADiwGQASACnwGCASAClQEgAYEBlQEgApUBIAGVASABmgGQAYEBigGPAYIBiwEgBJ8BgQEgBJUBIAGQASADlQEgAZUBIAKCAZQBIAKWASACgwGQAYcBIAOFASACggGDASABggGDAYEBggEgAYIBIAmfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAWAAVQAWACBgEAFFAEYAIGAWABABFQBgYCYAIAEVADBQNAAQQBAAEGAQABIAIAASABAAMCAQACIAIAAiABAgFQBAUBAAFAARQBEAEAAgIBAAECASABAAIgAQABIAEAASABAgMgAQIBBQFQBBUBFAEQAgACAgEAAQIBAAMgAQABIAEAAgICAAIgAQACBQFQARUBEAMBAQACAgIAAQIEAAECAQAJEAQBAgAUEAQBAQAWAQQAFgAAAAmln////w3XqAnUpyQAgwr+rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==70723291
|
||||
!CPC028CAAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAOPAZABIAGfAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGVASAClQEgAZUBIAGaAZABgQGKAY8BggGLASAEnwGBASAElQGCAZUBigEgApUBgQGVASACggGUASAClgEgAoMBkAGHASADhQEgAoIBgwEgAYIBgwEgAYIBIAGCASACggEgA4EBIAKfAYEBIAKfAYEBIBSXASADhwEgFooBjwKBASAWAAVQAWACBgEAFFAEYAIGAWABABFQBgYCYAIAEVADBQNAAQQBAAEGAQABIAIAASABAAMgAQIBAAEgAgACIAECAVAEBQEAAUABFAEQAQACAgEAAQIBIAEAAiABAAEgAQABIAECAyABAgEFAVAEFQEUARACAAICBAACIAECASABAAICAgACIAEAAgUBUAEVARADAQEAAgICAAECAgABAgEAAQIBAAICAQADAgEAAhAEAQIAFBAEAQEAFgEEABYAAAAJpZ////8N16gJ1KckAIMK/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=e9c51c7d
|
||||
!CPC0294AAAAABsACgAAAAAAAAAAACAFjwGVAYsBkAEgFJ8BhwGBASABlQEgAYcBnwEgEY8BgwEgBIIBgQGTASAVnwGHAYEBggGQASABggEgAZ8BjwEgAZ8BIAOPAZABIAGfAY8BIAKPAZABIAOLAZABIAKfAYIBIAKVASABgQGVASAClQEgAZUBIAGaAZABgQGKAY8BggGLASAEnwGBASAElQGCAZUBigEgApUBgwGUASABkAGCAZQBnwEgAZYBIAKDAZABhwEgA4UBIAKCAYMBIAGCAYMBgQGCASABggEgAYIBgwEgAoMBgQEgAp8BgQEgAp8BgQEgFJcBIAOHASAWigGPAoEBIBYABVABYAIGAQAUUARgAgYBYAEAEVAGBgJgAgARUAMFA0ABBAEAAQYBAAEgAgABIAEAAyABAgEAASACAAIgAQIBUAQFAQABQAEUARABAAICAQABAgEgAQACIAEAASABAAEgAQIDIAECAQUBUAQVARQBEAIAAgIEAAIgAQIBIAEAAQIDIAEAASABAAIFAVABFQEQAwEBAAICAgABAgQAAQIBAAECAgACAgIAAhAEAQIAFBAEAQEAFgEEABYAAAAJpZ////8N16gJ1KckAIMK/q8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=5fafed50
|
||||
|
||||
]]
|
||||
|
||||
local lines, lineIndex = {}, 1; for line in logostr:gmatch("[^\r\n]+") do table.insert(lines, line) end; local readLine = function() local line = lines[lineIndex]; lineIndex = lineIndex + 1; return line end; if readLine() ~= "32Vid 1.1" then error("Unsupported file") end; local fps = tonumber(readLine()); local first, second = readLine(), readLine(); if second == "" or second == nil then fps = 0 end
|
||||
|
||||
term.clear()
|
||||
|
||||
while true do
|
||||
local f;if first then f,first=first,nil elseif second then f,second=second,nil else f=readLine()end;if f==""or f==nil then break end;local m=f:match("^!CP([CD])");if not m then error("Invalid file")end;local d;if m=="C"then local l=tonumber(f:sub(5,8),16);d=f:sub(9,l+8)else local l=tonumber(f:sub(5,16),16);d=f:sub(17,l+16)end;local function b64dec(s)local r="";for c in s:gmatch"...."do if c:sub(3,4)=="=="then r=r..string.char(bit32.bor(bit32.lshift(b64str:find(c:sub(1,1))-1,2),bit32.rshift(b64str:find(c:sub(2,2))-1,4)))elseif c:sub(4,4)=="="then local n=(b64str:find(c:sub(1,1))-1)*4096+(b64str:find(c:sub(2,2))-1)*64+(b64str:find(c:sub(3,3))-1);r=r..string.char(bit32.extract(n,10,8))..string.char(bit32.extract(n,2,8))else local n=(b64str:find(c:sub(1,1))-1)*262144+(b64str:find(c:sub(2,2))-1)*4096+(b64str:find(c:sub(3,3))-1)*64+(b64str:find(c:sub(4,4))-1);r=r..string.char(bit32.extract(n,16,8))..string.char(bit32.extract(n,8,8))..string.char(bit32.extract(n,0,8))end end;return r end;local dt=b64dec(d);assert(dt:sub(1,4)=="\0\0\0\0"and dt:sub(9,16)=="\0\0\0\0\0\0\0\0","Invalid file");local w,h=("HH"):unpack(dt,5);if w<=0 or h<=0 then break end;local c,n,p=string.unpack("c1B",dt,17);local tl={};local ch=c:byte();for y=1,h do local l="";for x=1,w do l=l..string.char(ch);n=n-1;if n==0 then c,n,p=string.unpack("c1B",dt,p);ch=c:byte()end end;tl[y]=l end;local fl,bl={},{};
|
||||
for y=1,h do local fg,bg="","";for x=1,w do fg=fg..("%x"):format(bit32.band(ch,0x0F));bg=bg..("%x"):format(bit32.rshift(ch,4));n=n-1;if n==0 then ch,n,p=string.unpack("BB",dt,p)end end;fl[y]=fg;bl[y]=bg end;local tw,th=term.getSize();local sx=math.max(1,math.floor((tw-w)/2)+1);local sy=math.max(1,math.floor((th-h)/2)+1);local dh=math.min(h,th-sy+1);local dw=math.min(w,tw-sx+1);if dh>0 and dw>0 then for y=1,dh do local tx=string.sub(tl[y],1,dw);local fg=string.sub(fl[y],1,dw);local bg=string.sub(bl[y],1,dw);term.setCursorPos(sx,sy+y-1);term.blit(tx,fg,bg)end end;p=p-2;for i=0,15 do local r,g,b;r,g,b,p=string.unpack("BBB",dt,p);term.setPaletteColor(2^i,r/255,g/255,b/255)end;if fps==0 then read();break else sleep(1/fps)end
|
||||
|
||||
end
|
||||
|
||||
sleep(1.7)
|
||||
-- Restore default palette
|
||||
for i = 0, 15 do term.setPaletteColor(2^i, term.nativePaletteColor(2^i)) end
|
||||
term.setBackgroundColor(colors.black)
|
||||
term.setTextColor(colors.white)
|
||||
term.clear()
|
||||
term.setCursorPos(1, 1)
|
||||