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)