Files
front/netcode.old/Lobby.ts
T
2024-05-22 09:22:32 +02:00

25 lines
782 B
TypeScript

import { type GameObjectRegister } from "."
import { type GameObjectNetcode } from "./GameObject"
import type { Game } from "./Game"
export interface LobbyNetcode extends GameObjectNetcode {
games: Array<string>
}
export type Lobby = Omit<LobbyNetcode, 'games'> & {
games: Array<Game>
}
export function create_lobby(input: LobbyNetcode, register: GameObjectRegister) {
return new Proxy<any>(input, {
get(target: LobbyNetcode, prop, reciever) {
if (prop == "games") {
return target.games.map(e => register.games.get(e))
}
return Reflect.get(target, prop, reciever);
},
set(target, prop, val, receiver) {
return Reflect.set(target, prop, val, receiver);
}
}) as Lobby
}