pixelplanet/utils/redisMoveCanvas.js

34 lines
953 B
JavaScript
Raw Normal View History

// this script moves chunks of a canvas, i.e. to center it after changing size
import redis from 'redis';
//ATTENTION Make suer to set the rdis URLs right!!!
const url = "redis://localhost:6379";
const redisc = redis.createClient({ url, return_buffers: true });
const CANVAS_SIZE = 4096;
const TILE_SIZE = 256;
const offset = (16384 - 4096) / 2 / 256;
const CHUNKS_XY = CANVAS_SIZE / TILE_SIZE;
async function move() {
for (let x = CHUNKS_XY - 1; x >= 0; x--) {
for (let y = CHUNKS_XY - 1; y >= 0; y--) {
const key = `ch:1:${x}:${y}`;
2022-04-05 19:37:33 +00:00
const chunk = await redisc.get(key);
if (chunk) {
const buffer = new Uint8Array(chunk);
const newKey = `ch:1:${x + offset}:${y + offset}`
2022-04-05 19:37:33 +00:00
await redisc.set(newKey, Buffer.from(buffer.buffer));
await redisc.del(key);
console.log('Moved Chunk ', key, ' to ', newKey);
}
}
}
console.log("done");
}
redisc.connect()
.then(() => move());