From: Carl Worth Date: Mon, 1 Jun 2020 21:29:53 +0000 (-0700) Subject: Store only the the .Game property when importing a game engine X-Git-Url: https://git.cworth.org/git?p=lmno-server;a=commitdiff_plain;h=0cc61b68f175ae13fe2390d8e5c6bf374153aecc Store only the the .Game property when importing a game engine Previously, we were referencing engine.Game separately from engine.router, etc. But now that engine.Game is the only property that's part of the interface, let's dereference that immediately at the time of require() so that later on we can just use "engine" in place of "engine.Game". --- diff --git a/lmno.js b/lmno.js index a22f958..60c0f44 100644 --- a/lmno.js +++ b/lmno.js @@ -78,8 +78,8 @@ nunjucks.configure("templates", { * add_move method. */ const engines = { - empires: require("./empires"), - tictactoe: require("./tictactoe") + empires: require("./empires").Game, + tictactoe: require("./tictactoe").Game }; class LMNO { @@ -98,7 +98,7 @@ class LMNO { const engine = engines[engine_name]; - const game = new engine.Game(id); + const game = new engine(id); this.games[id] = game; @@ -277,7 +277,7 @@ app.get('/admin/', auth_admin, (request, response) => { /* Mount sub apps. only _after_ we have done all the middleware we need. */ for (let key in engines) { const engine = engines[key]; - const router = engine.Game.router; + const router = engine.router; /* Add routes that are common to all games. */ router.get('/', (request, response) => { @@ -297,7 +297,7 @@ for (let key in engines) { /* Further, add some routes conditionally depending on whether the * engine provides specific, necessary methods for the routes. */ - if (engine.Game.prototype.add_move) { + if (engine.prototype.add_move) { router.post('/move', (request, response) => { const game = request.game; const move = request.body.move; @@ -316,7 +316,7 @@ for (let key in engines) { } /* And mount the whole router at the path for the game. */ - app.use(`/${engine.Game.meta.identifier}/[a-zA-Z0-9]{4}/`, router); + app.use(`/${engine.meta.identifier}/[a-zA-Z0-9]{4}/`, router); } app.listen(4000, function () {