From 1d9616f9559605de7c5df4c63b5ddfe1c3c2b488 Mon Sep 17 00:00:00 2001 From: dengr1065 Date: Tue, 26 May 2020 19:22:45 +0300 Subject: [PATCH 1/2] Exit if Git LFS is not installed --- gulp/gulpfile.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/gulp/gulpfile.js b/gulp/gulpfile.js index eebc102f..d87ba792 100644 --- a/gulp/gulpfile.js +++ b/gulp/gulpfile.js @@ -2,7 +2,7 @@ const nodeVersion = process.versions.node.split(".")[0]; if (nodeVersion !== "10") { - console.error("This cli requires exactly Node 10. You are using node " + nodeVersion); + console.error("This cli requires exactly Node.js 10. You are using Node.js " + nodeVersion); process.exit(1); } @@ -14,6 +14,23 @@ const path = require("path"); const deleteEmpty = require("delete-empty"); const execSync = require("child_process").execSync; +const lfsOutput = execSync("git lfs install", { encoding: "utf-8" }); +if (!lfsOutput.toLowerCase().includes("git lfs initialized")) { + console.error(` + Git LFS is not installed, unable to build. + + To install Git LFS on Linux: + - Arch: + sudo pacman -S git-lfs + - Debian/Ubuntu: + sudo apt install git-lfs + + For other systems, see: + https://github.com/git-lfs/git-lfs/wiki/Installation + `); + process.exit(1); +} + // Load other plugins dynamically const $ = require("gulp-load-plugins")({ scope: ["devDependencies"], From 8e67a46a97e2584c75231d26190f28ee929bf207 Mon Sep 17 00:00:00 2001 From: dengr1065 Date: Tue, 26 May 2020 19:33:37 +0300 Subject: [PATCH 2/2] Readme fixes --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 6e902476..7104404d 100644 --- a/README.md +++ b/README.md @@ -2,28 +2,28 @@ shapez.io Logo -This is the source code for shapez.io, an open source base building game inspired by factorio. +This is the source code for shapez.io, an open source base building game inspired by Factorio. Your goal is to produce shapes by cutting, rotating, merging and painting parts of shapes. ## Playing -You can already play it on https://shapez.io +You can already play it [here](https://shapez.io). ## Building -- Make sure ffmpeg is on your path -- Install yarn and node 10 +- Make sure `ffmpeg` is on your path +- Install Yarn and Node.js 10 - Run `yarn` in the root folder, then run `yarn` in the `gulp/` folder -- Cd into `gulp` and run `yarn gulp`: It should now open in your browser +- Cd into `gulp` and run `yarn gulp` - it should now open in your browser -**Notice**: This will give you a debug build with several debugging flags enabled. If you want to disable them, check `config.js` +**Notice**: This will produce a debug build with several debugging flags enabled. If you want to disable them, modify `config.js`. ## Contributing Since this game is in the more or less early development, I will only accept pull requests which add an immediate benefit. Please understand that low quality PR's might be closed by me with a short comment explaining why. -If you want to add a new feature or in generally contribute I recommend to get in touch with me on discord: +If you want to add a new feature or in generally contribute I recommend to get in touch with me on Discord: discord logo @@ -34,10 +34,10 @@ If you want to add a new feature or in generally contribute I recommend to get i The game is based on a custom engine which itself is based on the YORG.io 3 game egine (Actually it shares almost the same core). The code within the engine is relatively clean with some code for the actual game on top being hacky. -This project is based on ES5. Some es6 features are used but most of them are too slow, especially when polyfilled. For example, `.forEach` is only used within non-critical loops since its slower than a plain for loop. +This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop. ### Assets -For most assets I use photoshop, you can find them in `assets/`. +For most assets I use Adobe Photoshop, you can find them in `assets/`. -You will need a texture packer license in order to regenerate the atlas. If you don't have one but you want to contribute assets, let me know and I might compile it for you. +You will need a Texture Packer license in order to regenerate the atlas. If you don't have one but want to contribute assets, let me know and I might compile it for you.