feat: Mongoose를 GameEngine으로 전달
This commit is contained in:
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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<General>();
|
||||
|
||||
|
||||
|
||||
private changes = {
|
||||
Nation: new Map<number, [ChangeType, Nation]>(),
|
||||
City: new Map<number, [ChangeType, City]>(),
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user