From be6e765d76228b4283257d7a9e524805e169c482 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Tue, 5 Mar 2024 15:45:41 +0000 Subject: [PATCH] denque --- @sammo/server/package.json | 1 + @sammo/server/src/GameEngine.ts | 30 ++++++++++++++++++++++++++++++ pnpm-lock.yaml | 8 ++++++++ 3 files changed, 39 insertions(+) create mode 100644 @sammo/server/src/GameEngine.ts diff --git a/@sammo/server/package.json b/@sammo/server/package.json index 68f5280..ee47a80 100644 --- a/@sammo/server/package.json +++ b/@sammo/server/package.json @@ -18,6 +18,7 @@ "@sammo/util": "workspace:^", "@strpc/express": "workspace:^", "date-fns": "^3.3.1", + "denque": "^2.1.0", "dotenv": "^16.4.5", "eventemitter3": "^5.0.1", "express": "^4.18.3", diff --git a/@sammo/server/src/GameEngine.ts b/@sammo/server/src/GameEngine.ts new file mode 100644 index 0000000..f545e6f --- /dev/null +++ b/@sammo/server/src/GameEngine.ts @@ -0,0 +1,30 @@ +import Denque from "denque"; + +export class GameEngine { + + private static instance: GameEngine | null = null; + + private npcActionQueue = new Denque(); + private apiActionQueue = new Denque(); + + private constructor() { + + } + + public static getInstance() { + if (!GameEngine.instance) { + GameEngine.instance = new GameEngine(); + } + return GameEngine.instance; + } + + public async start() { + + console.log('GameEngine started'); + } + + public async stop() { + console.log('GameEngine stopped'); + } + +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f02e329..5b95da7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -414,6 +414,9 @@ importers: date-fns: specifier: ^3.3.1 version: 3.3.1 + denque: + specifier: ^2.1.0 + version: 2.1.0 dotenv: specifier: ^16.4.5 version: 16.4.5 @@ -2900,6 +2903,11 @@ packages: object-keys: 1.1.1 dev: true + /denque@2.1.0: + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} + dev: false + /depd@2.0.0: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'}