summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-08-21 14:50:09 -0600
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-08-21 14:50:09 -0600
commitb786fe1e723b7cf905cdd7e525375dfe96241a21 (patch)
tree7f7b9da960c62b8e4667a173913f950ea0ec0758
parent8fce5a5f2530496e1390763364c01392a1a63640 (diff)
downloadjumpstorm-b786fe1e723b7cf905cdd7e525375dfe96241a21.tar.gz
jumpstorm-b786fe1e723b7cf905cdd7e525375dfe96241a21.zip
add default arguments to grid; add grid to server gl
-rw-r--r--client/src/JumpStorm.ts8
-rw-r--r--engine/config/constants.ts5
-rw-r--r--engine/structures/Grid.ts11
-rwxr-xr-xserver/bun.lockbbin1650 -> 1270 bytes
-rw-r--r--server/src/server.ts21
-rw-r--r--server/tsconfig.json14
6 files changed, 43 insertions, 16 deletions
diff --git a/client/src/JumpStorm.ts b/client/src/JumpStorm.ts
index 008ba13..e094a6f 100644
--- a/client/src/JumpStorm.ts
+++ b/client/src/JumpStorm.ts
@@ -64,12 +64,12 @@ export class JumpStorm {
const clientSocketMessageQueueProvider =
new ClientSocketMessageQueueProvider(socket);
const clientSocketMessagePublisher = new ClientSocketMessagePublisher(
- socket,
+ socket
);
const grid = new Grid(
{ width: Miscellaneous.WIDTH, height: Miscellaneous.HEIGHT },
- { width: 30, height: 30 },
+ { width: 30, height: 30 }
);
[
@@ -80,13 +80,13 @@ export class JumpStorm {
new WallBounds(ctx.canvas.width),
new NetworkUpdate(
clientSocketMessageQueueProvider,
- clientSocketMessagePublisher,
+ clientSocketMessagePublisher
),
new Render(ctx),
].forEach((system) => this.game.addSystem(system));
[new Floor(160), new Player()].forEach((entity) =>
- this.game.addEntity(entity),
+ this.game.addEntity(entity)
);
}
diff --git a/engine/config/constants.ts b/engine/config/constants.ts
index 3d536d3..b3c3f62 100644
--- a/engine/config/constants.ts
+++ b/engine/config/constants.ts
@@ -11,7 +11,7 @@ export namespace KeyConstants {
};
export const ActionKeys: Map<Action, string[]> = Object.keys(
- KeyActions,
+ KeyActions
).reduce((acc: Map<Action, string[]>, key) => {
const action = KeyActions[key];
@@ -36,4 +36,7 @@ export namespace PhysicsConstants {
export namespace Miscellaneous {
export const WIDTH = 600;
export const HEIGHT = 800;
+
+ export const DEFAULT_GRID_WIDTH = 40;
+ export const DEFAULT_GRID_HEIGHT = 40;
}
diff --git a/engine/structures/Grid.ts b/engine/structures/Grid.ts
index 836aaf4..6e8c0cb 100644
--- a/engine/structures/Grid.ts
+++ b/engine/structures/Grid.ts
@@ -1,5 +1,6 @@
import type { Coord2D, Dimension2D } from "../interfaces";
import type { BoxedEntry, RefreshingCollisionFinderBehavior } from ".";
+import { Miscellaneous } from "../config/constants";
export class Grid implements RefreshingCollisionFinderBehavior {
private cellEntities: Map<number, string[]>;
@@ -9,8 +10,14 @@ export class Grid implements RefreshingCollisionFinderBehavior {
private topLeft: Coord2D;
constructor(
- gridDimension: Dimension2D,
- cellDimension: Dimension2D,
+ gridDimension: Dimension2D = {
+ width: Miscellaneous.WIDTH,
+ height: Miscellaneous.HEIGHT,
+ },
+ cellDimension: Dimension2D = {
+ width: Miscellaneous.DEFAULT_GRID_WIDTH,
+ height: Miscellaneous.DEFAULT_GRID_HEIGHT,
+ },
topLeft = { x: 0, y: 0 }
) {
this.gridDimension = gridDimension;
diff --git a/server/bun.lockb b/server/bun.lockb
index 7f8b5ce..28b67ce 100755
--- a/server/bun.lockb
+++ b/server/bun.lockb
Binary files differ
diff --git a/server/src/server.ts b/server/src/server.ts
index d169f7d..18829e4 100644
--- a/server/src/server.ts
+++ b/server/src/server.ts
@@ -1,21 +1,24 @@
-import { Game } from "../../engine/Game";
-import { Floor, Player } from "../../engine/entities";
+import { Game } from "@engine/Game";
+import { Floor, Player } from "@engine/entities";
import {
WallBounds,
Physics,
Collision,
MessageQueueProvider,
MessagePublisher,
-} from "../../engine/systems";
-import { Miscellaneous } from "../../engine/config";
+} from "@engine/systems";
+import { Grid } from "@engine/structures";
+import { Miscellaneous } from "@engine/config";
const TICK_RATE = 60 / 1000;
const game = new Game();
-[new Physics(), new Collision(), new WallBounds(Miscellaneous.WIDTH)].forEach(
- (system) => game.addSystem(system),
-);
+[
+ new Physics(),
+ new Collision(new Grid()),
+ new WallBounds(Miscellaneous.WIDTH),
+].forEach((system) => game.addSystem(system));
[new Floor(160), new Player()].forEach((entity) => game.addEntity(entity));
@@ -27,7 +30,7 @@ setInterval(() => {
const server = Bun.serve({
port: 8080,
- fetch(req, server) {
+ fetch: async (req, server): Promise<string> => {
const sessionId = Math.floor(Math.random() * 1e10).toString();
server.upgrade(req, {
@@ -35,6 +38,8 @@ const server = Bun.serve({
"Set-Cookie": `SessionId=${sessionId}`,
},
});
+
+ return "200 OK";
},
websocket: {
open(ws) {},
diff --git a/server/tsconfig.json b/server/tsconfig.json
index e39b364..8cc9ad3 100644
--- a/server/tsconfig.json
+++ b/server/tsconfig.json
@@ -21,6 +21,18 @@
// best practices
"strict": true,
"forceConsistentCasingInFileNames": true,
- "skipLibCheck": true
+ "skipLibCheck": true,
+
+ // engine path
+ "paths": {
+ "@engine/*": ["../engine/*"],
+ "@engine/components": ["../engine/components"],
+ "@engine/config": ["../engine/config"],
+ "@engine/entities": ["../engine/entities"],
+ "@engine/interfaces": ["../engine/interfaces"],
+ "@engine/structures": ["../engine/structures"],
+ "@engine/systems": ["../engine/systems"],
+ "@engine/utils": ["../engine/utils"],
+ }
}
}