Skip to content

Commit 07d7f60

Browse files
committed
fix: send metadata
1 parent edf9151 commit 07d7f60

File tree

1 file changed

+7
-20
lines changed

1 file changed

+7
-20
lines changed

fission/src/systems/multiplayer/MultiplayerSystem.ts

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class MultiplayerSystem {
158158
// Called by the host, initializes the world with some defined set of objects, robots can be spawned in later
159159
async initWorld(physicsSystem: PhysicsSystem) {
160160
const sceneObjects: InitObjectData[] = await Promise.all(
161-
World.sceneRenderer.mirabufSceneObjects.getAll().map(async sceneObject => ({
161+
World.sceneRenderer.mirabufSceneObjects.().map(async sceneObject => ({
162162
sceneObjectKey: sceneObject.id,
163163
assemblyHash: await MirabufCachingService.hashBuffer(
164164
mirabuf.Assembly.encode(sceneObject.mirabufInstance.parser.assembly).finish().buffer as ArrayBuffer
@@ -169,6 +169,7 @@ class MultiplayerSystem {
169169
}))
170170
)
171171

172+
172173
await this.broadcast({
173174
type: "init",
174175
data: { physicsSystem, objects: sceneObjects },
@@ -185,25 +186,11 @@ class MultiplayerSystem {
185186
this._connections.set(conn.peer, conn)
186187
MultiplayerStateEvent.dispatch(MultiplayerStateEventType.PEER_CHANGE)
187188
await this.send(conn.peer, { type: "info", data: this.info })
188-
// I don't think this is necessary if we just move the call to initWorld
189-
// for (const objectId of this.getOwnSceneObjectIDs()) {
190-
// const obj = World.sceneRenderer.sceneObjects.get(objectId)
191-
// if (!(obj instanceof MirabufSceneObject)) return
192-
// const hash = await MirabufCachingService.hashBuffer(
193-
// mirabuf.Assembly.encode(obj.mirabufInstance.parser.assembly).finish().buffer as ArrayBuffer
194-
// )
195-
// await this.send(conn.peer, {
196-
// type: "newObject",
197-
// data: {
198-
// sceneObjectKey: objectId,
199-
// assemblyHash: hash,
200-
// miraType: obj.miraType,
201-
// initialPreferences: obj.getPreferenceData(),
202-
// bodyIds: obj.getAllBodies(),
203-
// },
204-
// })
205-
// await this.send(conn.peer, { type: "metadataUpdate", data: obj.multiplayerInfo })
206-
// }
189+
190+
const ownSceneObjects = this.getOwnSceneObjectIDs();
191+
World.sceneRenderer.mirabufSceneObjects.getAll().filter(obj => ownSceneObjects.includes(obj.id)).forEach(async obj => {
192+
await this.send(conn.peer, { type: "metadataUpdate", data: obj.multiplayerInfo })
193+
})
207194
})
208195

209196
conn.on("data", async (data: unknown) => {

0 commit comments

Comments
 (0)