]> git.cworth.org Git - empires-server/commitdiff
Store only the the .Game property when importing a game engine
authorCarl Worth <cworth@cworth.org>
Mon, 1 Jun 2020 21:29:53 +0000 (14:29 -0700)
committerCarl Worth <cworth@cworth.org>
Mon, 1 Jun 2020 21:29:53 +0000 (14:29 -0700)
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".

lmno.js

diff --git a/lmno.js b/lmno.js
index a22f9588537b2cae1e75adbbeb94a88e68420e0a..60c0f44000dfa702ec04c4b9cddbbb6d9600a40f 100644 (file)
--- 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 () {