351 lines
5.3 KiB
Plaintext
351 lines
5.3 KiB
Plaintext
term.setGraphicsMode(2)
|
|
local w,h = term.getSize(2)
|
|
local fb={}
|
|
for i=1, h do
|
|
fb[i]={}
|
|
for x=1, w do
|
|
fb[i][x]=0
|
|
end
|
|
end
|
|
|
|
local function setPixel(x,y,c)
|
|
--local old=fb[y]
|
|
--fb[y]=string.sub(old,1,x-1)..string.char(c)..string.sub(old,x+1)
|
|
fb[y][x]=c
|
|
end
|
|
|
|
local function setPixels(x,y,frame)
|
|
local w,h = #fb[1], #fb
|
|
for i=1, #frame do
|
|
for j=1, #frame[i] do
|
|
fb[y+i-1][x+j-1]=frame[i][j]
|
|
end
|
|
end
|
|
end
|
|
|
|
local function getPixel(x,y)
|
|
return fb[y][x]
|
|
end
|
|
|
|
local function getPixels(x,y,w,h)
|
|
local ret={}
|
|
for i=y, y+h do
|
|
ret[#ret+1] = {table.unpack(fb[i], x, x+w)}
|
|
end
|
|
return ret
|
|
end
|
|
|
|
local colors = {
|
|
[0]=0x000000,
|
|
0x0b0b0b,
|
|
0x222222,
|
|
0x444444,
|
|
0x555555,
|
|
0x777777,
|
|
0x888888,
|
|
0xaaaaaa,
|
|
0xbbbbbb,
|
|
0xdddddd,
|
|
0xeeeeee,
|
|
0x00000b,
|
|
0x000022,
|
|
0x000044,
|
|
0x000055,
|
|
0x000077,
|
|
0x000088,
|
|
0x0000aa,
|
|
0x0000bb,
|
|
0x0000dd,
|
|
0x0000ee,
|
|
0x000b00,
|
|
0x002200,
|
|
0x004400,
|
|
0x005500,
|
|
0x007700,
|
|
0x008800,
|
|
0x00aa00,
|
|
0x00bb00,
|
|
0x00dd00,
|
|
0x00ee00,
|
|
0x0b0000,
|
|
0x220000,
|
|
0x440000,
|
|
0x550000,
|
|
0x770000,
|
|
0x880000,
|
|
0xaa0000,
|
|
0xbb0000,
|
|
0xdd0000,
|
|
0xee0000,
|
|
0x000033,
|
|
0x000066,
|
|
0x000099,
|
|
0x0000cc,
|
|
0x0000ff,
|
|
0x003300,
|
|
0x003333,
|
|
0x003366,
|
|
0x003399,
|
|
0x0033cc,
|
|
0x0033ff,
|
|
0x006600,
|
|
0x006633,
|
|
0x006666,
|
|
0x006699,
|
|
0x0066cc,
|
|
0x0066ff,
|
|
0x009900,
|
|
0x009933,
|
|
0x009966,
|
|
0x009999,
|
|
0x0099cc,
|
|
0x0099ff,
|
|
0x00cc00,
|
|
0x00cc33,
|
|
0x00cc66,
|
|
0x00cc99,
|
|
0x00cccc,
|
|
0x00ccff,
|
|
0x00ff00,
|
|
0x00ff33,
|
|
0x00ff66,
|
|
0x00ff99,
|
|
0x00ffcc,
|
|
0x00ffff,
|
|
0x330000,
|
|
0x330033,
|
|
0x330066,
|
|
0x330099,
|
|
0x3300cc,
|
|
0x3300ff,
|
|
0x333300,
|
|
0x333333,
|
|
0x333366,
|
|
0x333399,
|
|
0x3333cc,
|
|
0x3333ff,
|
|
0x336600,
|
|
0x336633,
|
|
0x336666,
|
|
0x336699,
|
|
0x3366cc,
|
|
0x3366ff,
|
|
0x339900,
|
|
0x339933,
|
|
0x339966,
|
|
0x339999,
|
|
0x3399cc,
|
|
0x3399ff,
|
|
0x33cc00,
|
|
0x33cc33,
|
|
0x33cc66,
|
|
0x33cc99,
|
|
0x33cccc,
|
|
0x33ccff,
|
|
0x33ff00,
|
|
0x33ff33,
|
|
0x33ff66,
|
|
0x33ff99,
|
|
0x33ffcc,
|
|
0x33ffff,
|
|
0x660000,
|
|
0x660033,
|
|
0x660066,
|
|
0x660099,
|
|
0x6600cc,
|
|
0x6600ff,
|
|
0x663300,
|
|
0x663333,
|
|
0x663366,
|
|
0x663399,
|
|
0x6633cc,
|
|
0x6633ff,
|
|
0x666600,
|
|
0x666633,
|
|
0x666666,
|
|
0x666699,
|
|
0x6666cc,
|
|
0x6666ff,
|
|
0x669900,
|
|
0x669933,
|
|
0x669966,
|
|
0x669999,
|
|
0x6699cc,
|
|
0x6699ff,
|
|
0x66cc00,
|
|
0x66cc33,
|
|
0x66cc66,
|
|
0x66cc99,
|
|
0x66cccc,
|
|
0x66ccff,
|
|
0x66ff00,
|
|
0x66ff33,
|
|
0x66ff66,
|
|
0x66ff99,
|
|
0x66ffcc,
|
|
0x66ffff,
|
|
0x990000,
|
|
0x990033,
|
|
0x990066,
|
|
0x990099,
|
|
0x9900cc,
|
|
0x9900ff,
|
|
0x993300,
|
|
0x993333,
|
|
0x993366,
|
|
0x993399,
|
|
0x9933cc,
|
|
0x9933ff,
|
|
0x996600,
|
|
0x996633,
|
|
0x996666,
|
|
0x996699,
|
|
0x9966cc,
|
|
0x9966ff,
|
|
0x999900,
|
|
0x999933,
|
|
0x999966,
|
|
0x999999,
|
|
0x9999cc,
|
|
0x9999ff,
|
|
0x99cc00,
|
|
0x99cc33,
|
|
0x99cc66,
|
|
0x99cc99,
|
|
0x99cccc,
|
|
0x99ccff,
|
|
0x99ff00,
|
|
0x99ff33,
|
|
0x99ff66,
|
|
0x99ff99,
|
|
0x99ffcc,
|
|
0x99ffff,
|
|
0xcc0000,
|
|
0xcc0033,
|
|
0xcc0066,
|
|
0xcc0099,
|
|
0xcc00cc,
|
|
0xcc00ff,
|
|
0xcc3300,
|
|
0xcc3333,
|
|
0xcc3366,
|
|
0xcc3399,
|
|
0xcc33cc,
|
|
0xcc33ff,
|
|
0xcc6600,
|
|
0xcc6633,
|
|
0xcc6666,
|
|
0xcc6699,
|
|
0xcc66cc,
|
|
0xcc66ff,
|
|
0xcc9900,
|
|
0xcc9933,
|
|
0xcc9966,
|
|
0xcc9999,
|
|
0xcc99cc,
|
|
0xcc99ff,
|
|
0xcccc00,
|
|
0xcccc33,
|
|
0xcccc66,
|
|
0xcccc99,
|
|
0xcccccc,
|
|
0xccccff,
|
|
0xccff00,
|
|
0xccff33,
|
|
0xccff66,
|
|
0xccff99,
|
|
0xccffcc,
|
|
0xccffff,
|
|
0xff0000,
|
|
0xff0033,
|
|
0xff0066,
|
|
0xff0099,
|
|
0xff00cc,
|
|
0xff00ff,
|
|
0xff3300,
|
|
0xff3333,
|
|
0xff3366,
|
|
0xff3399,
|
|
0xff33cc,
|
|
0xff33ff,
|
|
0xff6600,
|
|
0xff6633,
|
|
0xff6666,
|
|
0xff6699,
|
|
0xff66cc,
|
|
0xff66ff,
|
|
0xff9900,
|
|
0xff9933,
|
|
0xff9966,
|
|
0xff9999,
|
|
0xff99cc,
|
|
0xff99ff,
|
|
0xffcc00,
|
|
0xffcc33,
|
|
0xffcc66,
|
|
0xffcc99,
|
|
0xffcccc,
|
|
0xffccff,
|
|
0xffff00,
|
|
0xffff33,
|
|
0xffff66,
|
|
0xffff99,
|
|
0xffffcc,
|
|
0xffffff,
|
|
}
|
|
|
|
for i=0,255 do
|
|
term.setPaletteColor(i,colors[i])
|
|
end
|
|
term.drawPixels(0,0,fb)
|
|
|
|
for i=0,255 do
|
|
for y=1+i, h-i do
|
|
for x=1+i, w-i do
|
|
setPixel(x,y,i)
|
|
end
|
|
end
|
|
term.drawPixels(1,1,fb)
|
|
os.queueEvent("nosleep")
|
|
os.pullEvent()
|
|
end
|
|
|
|
for i=1, 1000 do
|
|
pcall(function()
|
|
setPixels(math.random(1,w),math.random(1,h),getPixels(math.random(1,w),math.random(1,h),math.random(1,w),math.random(1,h)))
|
|
end)
|
|
term.drawPixels(1,1,fb)
|
|
os.queueEvent("nosleep")
|
|
os.pullEvent()
|
|
end
|
|
setPixels(1,1,getPixels(w-50,h-50,50,50))
|
|
term.drawPixels(0,0,fb)
|
|
|
|
local i=0
|
|
for x=1, 16*4, 4 do
|
|
for y=1, 16*4, 4 do
|
|
setPixel(x,y,i)
|
|
setPixel(x+1,y,i)
|
|
setPixel(x+2,y,i)
|
|
setPixel(x+3,y,i)
|
|
setPixel(x,y+1,i)
|
|
setPixel(x+1,y+1,i)
|
|
setPixel(x+2,y+1,i)
|
|
setPixel(x+3,y+1,i)
|
|
setPixel(x,y+2,i)
|
|
setPixel(x+1,y+2,i)
|
|
setPixel(x+2,y+2,i)
|
|
setPixel(x+3,y+2,i)
|
|
setPixel(x,y+3,i)
|
|
setPixel(x+1,y+3,i)
|
|
setPixel(x+2,y+3,i)
|
|
setPixel(x+3,y+3,i)
|
|
i=i+1
|
|
end
|
|
end
|
|
term.drawPixels(0,0,fb)
|
|
|
|
sleep(5)
|
|
term.setGraphicsMode(false)
|
|
|