25 lines
776 B
TypeScript
25 lines
776 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 = LobbyNetcode & {
|
|
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
|
|
} |