📦 2.0.0-rc.3
This commit is contained in:
@@ -4,7 +4,7 @@ author: "platane"
|
|||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: docker
|
using: docker
|
||||||
image: docker://platane/snk@sha256:339ea30dd50fc9566cd9b7244729b5ea12f14afea44585770212b96d3389748b
|
image: docker://platane/snk@sha256:e40bb02de6ed0f164eca8586b3f6c32109b2bcb426cd57c6882764825b40fe0d
|
||||||
|
|
||||||
inputs:
|
inputs:
|
||||||
github_user_name:
|
github_user_name:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "snk",
|
"name": "snk",
|
||||||
"description": "Generates a snake game from a github user contributions grid",
|
"description": "Generates a snake game from a github user contributions grid",
|
||||||
"version": "2.0.0-rc.2",
|
"version": "2.0.0-rc.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"repository": "github:platane/snk",
|
"repository": "github:platane/snk",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
72
svg-only/dist/index.js
vendored
72
svg-only/dist/index.js
vendored
@@ -32796,13 +32796,13 @@ var generateContributionSnake = function (userName, outputs) { return __awaiter(
|
|||||||
chain = (0, getBestRoute_1.getBestRoute)(grid, snake);
|
chain = (0, getBestRoute_1.getBestRoute)(grid, snake);
|
||||||
chain.push.apply(chain, (0, getPathToPose_1.getPathToPose)(chain.slice(-1)[0], snake));
|
chain.push.apply(chain, (0, getPathToPose_1.getPathToPose)(chain.slice(-1)[0], snake));
|
||||||
return [2 /*return*/, Promise.all(outputs.map(function (out, i) { return __awaiter(void 0, void 0, void 0, function () {
|
return [2 /*return*/, Promise.all(outputs.map(function (out, i) { return __awaiter(void 0, void 0, void 0, function () {
|
||||||
var format, drawOptions, gifOptions, _a, createSvg, createGif;
|
var format, drawOptions, animationOptions, _a, createSvg, createGif;
|
||||||
return __generator(this, function (_b) {
|
return __generator(this, function (_b) {
|
||||||
switch (_b.label) {
|
switch (_b.label) {
|
||||||
case 0:
|
case 0:
|
||||||
if (!out)
|
if (!out)
|
||||||
return [2 /*return*/];
|
return [2 /*return*/];
|
||||||
format = out.format, drawOptions = out.drawOptions, gifOptions = out.gifOptions;
|
format = out.format, drawOptions = out.drawOptions, animationOptions = out.animationOptions;
|
||||||
_a = format;
|
_a = format;
|
||||||
switch (_a) {
|
switch (_a) {
|
||||||
case "svg": return [3 /*break*/, 1];
|
case "svg": return [3 /*break*/, 1];
|
||||||
@@ -32814,13 +32814,13 @@ var generateContributionSnake = function (userName, outputs) { return __awaiter(
|
|||||||
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(7415)); })];
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(7415)); })];
|
||||||
case 2:
|
case 2:
|
||||||
createSvg = (_b.sent()).createSvg;
|
createSvg = (_b.sent()).createSvg;
|
||||||
return [2 /*return*/, createSvg(grid, chain, drawOptions, gifOptions)];
|
return [2 /*return*/, createSvg(grid, cells, chain, drawOptions, animationOptions)];
|
||||||
case 3:
|
case 3:
|
||||||
console.log("\uD83D\uDCF9 creating gif (outputs[".concat(i, "])"));
|
console.log("\uD83D\uDCF9 creating gif (outputs[".concat(i, "])"));
|
||||||
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(340)); })];
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(__webpack_require__(340)); })];
|
||||||
case 4:
|
case 4:
|
||||||
createGif = (_b.sent()).createGif;
|
createGif = (_b.sent()).createGif;
|
||||||
return [4 /*yield*/, createGif(grid, chain, drawOptions, gifOptions)];
|
return [4 /*yield*/, createGif(grid, cells, chain, drawOptions, animationOptions)];
|
||||||
case 5: return [2 /*return*/, _b.sent()];
|
case 5: return [2 /*return*/, _b.sent()];
|
||||||
case 6: return [2 /*return*/];
|
case 6: return [2 /*return*/];
|
||||||
}
|
}
|
||||||
@@ -32962,13 +32962,25 @@ var palettes_1 = __webpack_require__(3848);
|
|||||||
var parseOutputsOption = function (lines) { return lines.map(exports.parseEntry); };
|
var parseOutputsOption = function (lines) { return lines.map(exports.parseEntry); };
|
||||||
exports.parseOutputsOption = parseOutputsOption;
|
exports.parseOutputsOption = parseOutputsOption;
|
||||||
var parseEntry = function (entry) {
|
var parseEntry = function (entry) {
|
||||||
var m = entry.trim().match(/^(.+\.(svg|gif))(\?.*)?$/);
|
var m = entry.trim().match(/^(.+\.(svg|gif))(\?(.*))?$/);
|
||||||
if (!m)
|
if (!m)
|
||||||
return null;
|
return null;
|
||||||
var _ = m[0], filename = m[1], format = m[2], query = m[3];
|
var filename = m[1], format = m[2], query = m[4];
|
||||||
var sp = new URLSearchParams(query || "");
|
var sp = new URLSearchParams(query || "");
|
||||||
|
try {
|
||||||
|
var o = JSON.parse(query);
|
||||||
|
if (Array.isArray(o.color_dots))
|
||||||
|
o.color_dots = o.color_dots.join(",");
|
||||||
|
if (Array.isArray(o.dark_color_dots))
|
||||||
|
o.dark_color_dots = o.dark_color_dots.join(",");
|
||||||
|
sp = new URLSearchParams(o);
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
if (!(err instanceof SyntaxError))
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
var drawOptions = __assign({ sizeDotBorderRadius: 2, sizeCell: 16, sizeDot: 12 }, palettes_1.palettes["default"]);
|
var drawOptions = __assign({ sizeDotBorderRadius: 2, sizeCell: 16, sizeDot: 12 }, palettes_1.palettes["default"]);
|
||||||
var gifOptions = { step: 1, frameDuration: 100 };
|
var animationOptions = { step: 1, frameDuration: 100 };
|
||||||
{
|
{
|
||||||
var palette = palettes_1.palettes[sp.get("palette")];
|
var palette = palettes_1.palettes[sp.get("palette")];
|
||||||
if (palette) {
|
if (palette) {
|
||||||
@@ -32994,7 +33006,12 @@ var parseEntry = function (entry) {
|
|||||||
drawOptions.dark.colorDotBorder = sp.get("color_dot_border");
|
drawOptions.dark.colorDotBorder = sp.get("color_dot_border");
|
||||||
if (sp.has("dark_color_snake") && drawOptions.dark)
|
if (sp.has("dark_color_snake") && drawOptions.dark)
|
||||||
drawOptions.dark.colorSnake = sp.get("color_snake");
|
drawOptions.dark.colorSnake = sp.get("color_snake");
|
||||||
return { filename: filename, format: format, drawOptions: drawOptions, gifOptions: gifOptions };
|
return {
|
||||||
|
filename: filename,
|
||||||
|
format: format,
|
||||||
|
drawOptions: drawOptions,
|
||||||
|
animationOptions: animationOptions
|
||||||
|
};
|
||||||
};
|
};
|
||||||
exports.parseEntry = parseEntry;
|
exports.parseEntry = parseEntry;
|
||||||
|
|
||||||
@@ -33085,10 +33102,10 @@ exports.__esModule = true;
|
|||||||
exports.drawGrid = void 0;
|
exports.drawGrid = void 0;
|
||||||
var grid_1 = __webpack_require__(2881);
|
var grid_1 = __webpack_require__(2881);
|
||||||
var pathRoundedRect_1 = __webpack_require__(2356);
|
var pathRoundedRect_1 = __webpack_require__(2356);
|
||||||
var drawGrid = function (ctx, grid, o) {
|
var drawGrid = function (ctx, grid, cells, o) {
|
||||||
var _loop_1 = function (x) {
|
var _loop_1 = function (x) {
|
||||||
var _loop_2 = function (y) {
|
var _loop_2 = function (y) {
|
||||||
if (!o.cells || o.cells.some(function (c) { return c.x === x && c.y === y; })) {
|
if (!cells || cells.some(function (c) { return c.x === x && c.y === y; })) {
|
||||||
var c = (0, grid_1.getColor)(grid, x, y);
|
var c = (0, grid_1.getColor)(grid, x, y);
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
var color = !c ? o.colorEmpty : o.colorDots[c];
|
var color = !c ? o.colorEmpty : o.colorDots[c];
|
||||||
@@ -33186,10 +33203,10 @@ var drawStack = function (ctx, stack, max, width, o) {
|
|||||||
ctx.restore();
|
ctx.restore();
|
||||||
};
|
};
|
||||||
exports.drawStack = drawStack;
|
exports.drawStack = drawStack;
|
||||||
var drawWorld = function (ctx, grid, snake, stack, o) {
|
var drawWorld = function (ctx, grid, cells, snake, stack, o) {
|
||||||
ctx.save();
|
ctx.save();
|
||||||
ctx.translate(1 * o.sizeCell, 2 * o.sizeCell);
|
ctx.translate(1 * o.sizeCell, 2 * o.sizeCell);
|
||||||
(0, drawGrid_1.drawGrid)(ctx, grid, o);
|
(0, drawGrid_1.drawGrid)(ctx, grid, cells, o);
|
||||||
(0, drawSnake_1.drawSnake)(ctx, snake, o);
|
(0, drawSnake_1.drawSnake)(ctx, snake, o);
|
||||||
ctx.restore();
|
ctx.restore();
|
||||||
ctx.save();
|
ctx.save();
|
||||||
@@ -33204,10 +33221,10 @@ var drawWorld = function (ctx, grid, snake, stack, o) {
|
|||||||
// ctx.restore();
|
// ctx.restore();
|
||||||
};
|
};
|
||||||
exports.drawWorld = drawWorld;
|
exports.drawWorld = drawWorld;
|
||||||
var drawLerpWorld = function (ctx, grid, snake0, snake1, stack, k, o) {
|
var drawLerpWorld = function (ctx, grid, cells, snake0, snake1, stack, k, o) {
|
||||||
ctx.save();
|
ctx.save();
|
||||||
ctx.translate(1 * o.sizeCell, 2 * o.sizeCell);
|
ctx.translate(1 * o.sizeCell, 2 * o.sizeCell);
|
||||||
(0, drawGrid_1.drawGrid)(ctx, grid, o);
|
(0, drawGrid_1.drawGrid)(ctx, grid, cells, o);
|
||||||
(0, drawSnake_1.drawSnakeLerp)(ctx, snake0, snake1, k, o);
|
(0, drawSnake_1.drawSnakeLerp)(ctx, snake0, snake1, k, o);
|
||||||
ctx.translate(0, (grid.height + 2) * o.sizeCell);
|
ctx.translate(0, (grid.height + 2) * o.sizeCell);
|
||||||
var max = grid.data.reduce(function (sum, x) { return sum + +!!x; }, stack.length);
|
var max = grid.data.reduce(function (sum, x) { return sum + +!!x; }, stack.length);
|
||||||
@@ -33321,7 +33338,7 @@ var withTmpDir = function (handler) { return __awaiter(void 0, void 0, void 0, f
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}); };
|
}); };
|
||||||
var createGif = function (grid0, chain, drawOptions, gifOptions) { return __awaiter(void 0, void 0, void 0, function () {
|
var createGif = function (grid0, cells, chain, drawOptions, animationOptions) { return __awaiter(void 0, void 0, void 0, function () {
|
||||||
return __generator(this, function (_a) {
|
return __generator(this, function (_a) {
|
||||||
return [2 /*return*/, withTmpDir(function (dir) { return __awaiter(void 0, void 0, void 0, function () {
|
return [2 /*return*/, withTmpDir(function (dir) { return __awaiter(void 0, void 0, void 0, function () {
|
||||||
var _a, width, height, canvas, ctx, grid, stack, encoder, i, snake0, snake1, k, outFileName, optimizedFileName;
|
var _a, width, height, canvas, ctx, grid, stack, encoder, i, snake0, snake1, k, outFileName, optimizedFileName;
|
||||||
@@ -33333,17 +33350,17 @@ var createGif = function (grid0, chain, drawOptions, gifOptions) { return __awai
|
|||||||
stack = [];
|
stack = [];
|
||||||
encoder = new gif_encoder_2_1["default"](width, height, "neuquant", true);
|
encoder = new gif_encoder_2_1["default"](width, height, "neuquant", true);
|
||||||
encoder.setRepeat(0);
|
encoder.setRepeat(0);
|
||||||
encoder.setDelay(gifOptions.frameDuration);
|
encoder.setDelay(animationOptions.frameDuration);
|
||||||
encoder.start();
|
encoder.start();
|
||||||
for (i = 0; i < chain.length; i += 1) {
|
for (i = 0; i < chain.length; i += 1) {
|
||||||
snake0 = chain[i];
|
snake0 = chain[i];
|
||||||
snake1 = chain[Math.min(chain.length - 1, i + 1)];
|
snake1 = chain[Math.min(chain.length - 1, i + 1)];
|
||||||
(0, step_1.step)(grid, stack, snake0);
|
(0, step_1.step)(grid, stack, snake0);
|
||||||
for (k = 0; k < gifOptions.step; k++) {
|
for (k = 0; k < animationOptions.step; k++) {
|
||||||
ctx.clearRect(0, 0, width, height);
|
ctx.clearRect(0, 0, width, height);
|
||||||
ctx.fillStyle = "#fff";
|
ctx.fillStyle = "#fff";
|
||||||
ctx.fillRect(0, 0, width, height);
|
ctx.fillRect(0, 0, width, height);
|
||||||
(0, drawWorld_1.drawLerpWorld)(ctx, grid, snake0, snake1, stack, k / gifOptions.step, drawOptions);
|
(0, drawWorld_1.drawLerpWorld)(ctx, grid, cells, snake0, snake1, stack, k / animationOptions.step, drawOptions);
|
||||||
encoder.addFrame(ctx);
|
encoder.addFrame(ctx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -34468,9 +34485,8 @@ var getCellsFromGrid = function (_a) {
|
|||||||
return Array.from({ length: height }, function (_, y) { return ({ x: x, y: y }); });
|
return Array.from({ length: height }, function (_, y) { return ({ x: x, y: y }); });
|
||||||
}).flat();
|
}).flat();
|
||||||
};
|
};
|
||||||
var createLivingCells = function (grid0, chain, drawOptions) {
|
var createLivingCells = function (grid0, chain, cells) {
|
||||||
var _a;
|
var livingCells = (cells !== null && cells !== void 0 ? cells : getCellsFromGrid(grid0)).map(function (_a) {
|
||||||
var cells = ((_a = drawOptions.cells) !== null && _a !== void 0 ? _a : getCellsFromGrid(grid0)).map(function (_a) {
|
|
||||||
var x = _a.x, y = _a.y;
|
var x = _a.x, y = _a.y;
|
||||||
return ({
|
return ({
|
||||||
x: x,
|
x: x,
|
||||||
@@ -34486,23 +34502,23 @@ var createLivingCells = function (grid0, chain, drawOptions) {
|
|||||||
var y = (0, snake_1.getHeadY)(snake);
|
var y = (0, snake_1.getHeadY)(snake);
|
||||||
if ((0, grid_1.isInside)(grid, x, y) && !(0, grid_1.isEmpty)((0, grid_1.getColor)(grid, x, y))) {
|
if ((0, grid_1.isInside)(grid, x, y) && !(0, grid_1.isEmpty)((0, grid_1.getColor)(grid, x, y))) {
|
||||||
(0, grid_1.setColorEmpty)(grid, x, y);
|
(0, grid_1.setColorEmpty)(grid, x, y);
|
||||||
var cell = cells.find(function (c) { return c.x === x && c.y === y; });
|
var cell = livingCells.find(function (c) { return c.x === x && c.y === y; });
|
||||||
cell.t = i / chain.length;
|
cell.t = i / chain.length;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
for (var i = 0; i < chain.length; i++) {
|
for (var i = 0; i < chain.length; i++) {
|
||||||
_loop_1(i);
|
_loop_1(i);
|
||||||
}
|
}
|
||||||
return cells;
|
return livingCells;
|
||||||
};
|
};
|
||||||
var createSvg = function (grid, chain, drawOptions, gifOptions) {
|
var createSvg = function (grid, cells, chain, drawOptions, animationOptions) {
|
||||||
var width = (grid.width + 2) * drawOptions.sizeCell;
|
var width = (grid.width + 2) * drawOptions.sizeCell;
|
||||||
var height = (grid.height + 5) * drawOptions.sizeCell;
|
var height = (grid.height + 5) * drawOptions.sizeCell;
|
||||||
var duration = gifOptions.frameDuration * chain.length;
|
var duration = animationOptions.frameDuration * chain.length;
|
||||||
var cells = createLivingCells(grid, chain, drawOptions);
|
var livingCells = createLivingCells(grid, chain, cells);
|
||||||
var elements = [
|
var elements = [
|
||||||
(0, grid_2.createGrid)(cells, drawOptions, duration),
|
(0, grid_2.createGrid)(livingCells, drawOptions, duration),
|
||||||
(0, stack_1.createStack)(cells, drawOptions, grid.width * drawOptions.sizeCell, (grid.height + 2) * drawOptions.sizeCell, duration),
|
(0, stack_1.createStack)(livingCells, drawOptions, grid.width * drawOptions.sizeCell, (grid.height + 2) * drawOptions.sizeCell, duration),
|
||||||
(0, snake_2.createSnake)(chain, drawOptions, duration),
|
(0, snake_2.createSnake)(chain, drawOptions, duration),
|
||||||
];
|
];
|
||||||
var viewBox = [
|
var viewBox = [
|
||||||
|
|||||||
Reference in New Issue
Block a user