board can now be loaded
This commit is contained in:
parent
fea05a3f01
commit
d227202cb9
|
@ -19,5 +19,5 @@ That's it!
|
||||||
|
|
||||||
1. Server settings are located in `./settings.json`, you need to change serverAddress in order to deploy
|
1. Server settings are located in `./settings.json`, you need to change serverAddress in order to deploy
|
||||||
|
|
||||||
2. When catches SIGUSR1, server will save a board with name read from settings file. SIGINT (CTRL + C) does the same but exit server when board is saved
|
2. When catches SIGUSR1, server will save a board with name read from settings file. SIGINT (CTRL + C) does the same but exit server when board is saved **KILL WITH SIGTERM WILL NOT SAVE THE BOARD!**
|
||||||
|
|
||||||
|
|
33
index.js
33
index.js
|
@ -4,6 +4,7 @@ const http = express();
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const pug = require('pug');
|
const pug = require('pug');
|
||||||
const Jimp = require('jimp');
|
const Jimp = require('jimp');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
http.use(express.static(path.join(__dirname, 'html')));
|
http.use(express.static(path.join(__dirname, 'html')));
|
||||||
http.set('view engine', 'pug');
|
http.set('view engine', 'pug');
|
||||||
|
@ -19,7 +20,30 @@ const boardHeight = config.boardHeight;
|
||||||
var toQuit = false;
|
var toQuit = false;
|
||||||
|
|
||||||
var board = new Array(boardWidth * boardHeight * 4);
|
var board = new Array(boardWidth * boardHeight * 4);
|
||||||
board.fill(255);
|
|
||||||
|
if (!fs.existsSync(saveFile)) {
|
||||||
|
console.log("No save file found, creating blank board.");
|
||||||
|
board.fill(255);
|
||||||
|
} else {
|
||||||
|
console.log("Save file found, loading")
|
||||||
|
let image = Jimp.read(`./${saveFile}`, (err, image) => {
|
||||||
|
for (let x = 0; x < boardWidth; x ++) {
|
||||||
|
for (let y = 0; y < boardHeight; y ++) {
|
||||||
|
pixelNumber = evaulatePixelNumber(x * 4, y * 4);
|
||||||
|
let pixel = Jimp.intToRGBA(image.getPixelColor(x, y))
|
||||||
|
board[pixelNumber + 0] = pixel.r
|
||||||
|
board[pixelNumber + 1] = pixel.g
|
||||||
|
board[pixelNumber + 2] = pixel.b
|
||||||
|
board[pixelNumber + 3] = 255;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
console.log("Loaded")
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const server = new WebSocket.Server({
|
const server = new WebSocket.Server({
|
||||||
port: appPort
|
port: appPort
|
||||||
|
@ -88,13 +112,6 @@ http.listen(httpPort, "0.0.0.0", () => {
|
||||||
console.log(`Starting pixelbattle http server on port ${httpPort}`);
|
console.log(`Starting pixelbattle http server on port ${httpPort}`);
|
||||||
})
|
})
|
||||||
|
|
||||||
const rgbToHex = (r, g, b) => '#' + [r, g, b].map(x => {
|
|
||||||
const hex = x.toString(16)
|
|
||||||
return hex.length === 1 ? '0' + hex : hex
|
|
||||||
}).join('')
|
|
||||||
|
|
||||||
function d2h(d) { return (+d).toString(16).toUpperCase(); }
|
|
||||||
|
|
||||||
const save = (err, image) => {
|
const save = (err, image) => {
|
||||||
if (err) throw err;
|
if (err) throw err;
|
||||||
console.log()
|
console.log()
|
||||||
|
|
Loading…
Reference in New Issue