diff --git a/apps/server/src/network/SocketManager.ts b/apps/server/src/network/SocketManager.ts index 725bf2f..552ed96 100644 --- a/apps/server/src/network/SocketManager.ts +++ b/apps/server/src/network/SocketManager.ts @@ -1,10 +1,9 @@ import { Server, Socket } from "socket.io"; import { GameManager } from "../managers/GameManager.js"; -import { Room, RoomStatus } from "@repo/shared/src/types/room"; +import { Room, RoomStatus, RoomMember, JoinRoomPayload } from "@repo/shared/src/types/room"; import { SocketEvents } from "@repo/shared/src/protocol/events"; import { GAME_CONFIG } from "@repo/shared/src/config/gameConfig"; - -type RoomPlayer = Room["players"][0]; +import type { MovePayload } from "@repo/shared/src/types/payloads"; export class SocketManager { private io: Server; @@ -24,18 +23,15 @@ // ロビー・ルーム関連イベント群 - socket.on(SocketEvents.JOIN_ROOM, (data: { roomId: string; playerName: string }) => { + socket.on(SocketEvents.JOIN_ROOM, (data: JoinRoomPayload) => { const { roomId, playerName } = data; - // Socket.io ルーム参加処理 socket.join(roomId); - // ルーム未作成時の新規作成分岐 let room = this.rooms.get(roomId); if (!room) { room = { roomId: roomId, - // 先着参加者のオーナー割り当て ownerId: socket.id, players: [], status: RoomStatus.WAITING, @@ -45,7 +41,7 @@ } // 参加プレイヤー情報ルーム追加 - const newPlayer: RoomPlayer = { + const newPlayer: RoomMember = { id: socket.id, name: playerName, isOwner: room.ownerId === socket.id, @@ -88,7 +84,7 @@ // ゲームプレイ中イベント群 - socket.on(SocketEvents.MOVE, (data: { x: number; y: number }) => { + socket.on(SocketEvents.MOVE, (data: MovePayload) => { // サーバー側プレイヤー座標更新 this.gameManager.movePlayer(socket.id, data.x, data.y); diff --git "a/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" "b/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" index 2af0301..2521b83 100644 --- "a/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" +++ "b/docs/01_Env/ENV_01_\347\222\260\345\242\203\346\247\213\347\257\211\343\203\273\346\212\200\350\241\223\343\202\271\343\202\277\343\203\203\343\202\257.txt" @@ -67,7 +67,7 @@ ├── src/ │ ├── config/ # 共通定数(gameConfig.ts) │ ├── protocol/ # 通信イベント定義(events.ts) - │ ├── types/ # 型定義(player.ts, room.ts) + │ ├── types/ # 型定義(payloads.ts, player.ts, room.ts) │ └── index.ts # エントリーポイント (tsupビルド対象) ├── tsup.config.ts # ビルド設定 └── package.json diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 14cb0f9..67ad2b4 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,4 +1,6 @@ // shared パッケージ公開 API export * from './config/gameConfig'; export * from './types/room'; +export * from './types/payloads'; +export * from './types/player'; export * from "./protocol/events"; \ No newline at end of file diff --git a/packages/shared/src/types/payloads.ts b/packages/shared/src/types/payloads.ts new file mode 100644 index 0000000..543ba44 --- /dev/null +++ b/packages/shared/src/types/payloads.ts @@ -0,0 +1,5 @@ +// 移動イベント送信ペイロード型 +export interface MovePayload { + x: number; + y: number; +} \ No newline at end of file