Fix reactive with new system
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { type GameObjectRegister } from "."
|
||||
import type { GameObjectNetcode } from "./GameObject"
|
||||
import { type Player } from "./Player"
|
||||
|
||||
export interface TeamNetcode extends GameObjectNetcode {
|
||||
health: number
|
||||
color: string
|
||||
name: string
|
||||
}
|
||||
|
||||
export type Team = TeamNetcode & {
|
||||
players: Array<Player>
|
||||
}
|
||||
|
||||
export function create_team(input: TeamNetcode, register: GameObjectRegister) {
|
||||
const team = new Proxy<any>(input, {
|
||||
get(target: TeamNetcode, prop, reciever) {
|
||||
if (prop == "players") {
|
||||
return Object.values(register.players).filter((p) => p.team == team)
|
||||
}
|
||||
return Reflect.get(target, prop, reciever);
|
||||
},
|
||||
set(target, prop, val, receiver) {
|
||||
return Reflect.set(target, prop, val, receiver);
|
||||
}
|
||||
}) as Team
|
||||
|
||||
return team
|
||||
}
|
||||
Reference in New Issue
Block a user