From 5928655bc1d8c968d54a526ab1e329fd16ceaa48 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sat, 9 Mar 2024 14:54:25 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20Mongoose=EB=A5=BC=20GameEngine=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=A0=84=EB=8B=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- @sammo/gateway_server/src/connectDB.ts | 2 +- @sammo/gateway_server/src/schema/LoginToken.ts | 2 +- @sammo/server/src/GameEngine.ts | 10 +++++----- @sammo/server/src/ResourceController.ts | 7 +++++-- @sammo/server/src/connectDB.ts | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/@sammo/gateway_server/src/connectDB.ts b/@sammo/gateway_server/src/connectDB.ts index 499cbe2..2aaaa9b 100644 --- a/@sammo/gateway_server/src/connectDB.ts +++ b/@sammo/gateway_server/src/connectDB.ts @@ -1,5 +1,5 @@ import './dotenv.js'; -import { connect, Mongoose } from "mongoose"; +import { connect,type Mongoose } from "mongoose"; import { unwrap } from '@sammo/util'; const dbConfig = { diff --git a/@sammo/gateway_server/src/schema/LoginToken.ts b/@sammo/gateway_server/src/schema/LoginToken.ts index 27c5e46..d389acb 100644 --- a/@sammo/gateway_server/src/schema/LoginToken.ts +++ b/@sammo/gateway_server/src/schema/LoginToken.ts @@ -1,5 +1,5 @@ import { type UserIDType } from "./User.js"; -import { Mongoose, Schema, model } from "mongoose"; +import { type Mongoose, Schema, model } from "mongoose"; export interface ILoginToken { userID: UserIDType; diff --git a/@sammo/server/src/GameEngine.ts b/@sammo/server/src/GameEngine.ts index a5cb0c2..25e1787 100644 --- a/@sammo/server/src/GameEngine.ts +++ b/@sammo/server/src/GameEngine.ts @@ -2,7 +2,8 @@ import { Signal, delay, must, must_err } from "@sammo/util"; import Denque from "denque"; import { ResourceController } from "./ResourceController.js"; import { entriesWithType } from "@sammo/util/converter"; - +import db from "./connectDB.js"; +import type { Mongoose } from "mongoose"; export interface ActionRequest { } @@ -44,9 +45,8 @@ export class GameEngine { private rsc: ResourceController - private constructor() { - //TODO MongoDB를 넘겨줘야함 - this.rsc = new ResourceController(); + private constructor(db: Mongoose) { + this.rsc = new ResourceController(db); } private continueRun = true; @@ -177,7 +177,7 @@ export class GameEngine { throw new Error('GameEngine is already initialized'); } - GameEngine.instance = new GameEngine(); + GameEngine.instance = new GameEngine(await db); return GameEngine.instance; } diff --git a/@sammo/server/src/ResourceController.ts b/@sammo/server/src/ResourceController.ts index 244d929..280c21c 100644 --- a/@sammo/server/src/ResourceController.ts +++ b/@sammo/server/src/ResourceController.ts @@ -13,13 +13,15 @@ import type { Nation } from "@sammo/game_logic/src/Nation.js"; import type { Troop } from "@sammo/game_logic/src/Troop.js"; import { insertItemAtArrayLike, NotYetImplemented } from "@sammo/util"; import Denque from "denque"; - +import type { Mongoose } from "mongoose"; type ChangeType = "insert" | "update" | "delete"; //TODO: Implement! export class ResourceController implements IResourceController{ - constructor() { + constructor( + private readonly db: Mongoose + ) { } @@ -32,6 +34,7 @@ export class ResourceController implements IResourceController{ private _generalByTurntime = new Denque(); + private changes = { Nation: new Map(), City: new Map(), diff --git a/@sammo/server/src/connectDB.ts b/@sammo/server/src/connectDB.ts index 4f02492..00a931e 100644 --- a/@sammo/server/src/connectDB.ts +++ b/@sammo/server/src/connectDB.ts @@ -1,5 +1,5 @@ import './dotenv.js'; -import { connect, Mongoose } from "mongoose"; +import { connect, type Mongoose } from "mongoose"; import { unwrap } from '@sammo/util'; const dbConfig = {