add script to move moon chunks to center

This commit is contained in:
HF 2021-04-18 18:10:05 +02:00
parent 1706281977
commit 148eff81ff

38
utils/redisMoveCanvas.js Normal file
View File

@ -0,0 +1,38 @@
/* @flow */
// this script moves chunks of a canvas, i.e. to center it after changing size
import redis from 'redis';
import bluebird from 'bluebird';
bluebird.promisifyAll(redis.RedisClient.prototype);
bluebird.promisifyAll(redis.Multi.prototype);
//ATTENTION Make suer to set the rdis URLs right!!!
const url = "redis://localhost:6379";
const redis = 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}`;
const chunk = await redis.getAsync(key);
if (chunk) {
const buffer = new Uint8Array(chunk);
const newKey = `ch:1:${x + offset}:${y + offset}`
await redis.setAsync(newKey, Buffer.from(buffer.buffer));
await redis.delAsync(key);
console.log('Moved Chunk ', key, ' to ', newKey);
}
}
}
console.log("done");
}
move();