Compare commits

...

1 Commits

Author SHA1 Message Date
252fde9be6 demo zoom not working 2024-10-02 08:34:56 +10:00
2 changed files with 17 additions and 2 deletions

View File

@ -306,9 +306,19 @@ export class CameraControls {
event: 'camera_drag_end', event: 'camera_drag_end',
callback: cb, callback: cb,
}) })
this.engineCommandManager.subscribeToUnreliable({
event: 'default_camera_zoom',
callback: (a) => {
console.log('zoom', a)
cb(a)
},
})
this.engineCommandManager.subscribeTo({ this.engineCommandManager.subscribeTo({
event: 'default_camera_zoom', event: 'default_camera_zoom',
callback: cb, callback: (a) => {
console.log('zoom', a)
cb(a)
},
}) })
this.engineCommandManager.subscribeTo({ this.engineCommandManager.subscribeTo({
event: 'default_camera_get_settings', event: 'default_camera_get_settings',

View File

@ -1230,7 +1230,7 @@ type ModelTypes = Models['OkModelingCmdResponse_type']['type']
type UnreliableResponses = Extract< type UnreliableResponses = Extract<
Models['OkModelingCmdResponse_type'], Models['OkModelingCmdResponse_type'],
{ type: 'highlight_set_entity' | 'camera_drag_move' } { type: 'highlight_set_entity' | 'camera_drag_move' | 'default_camera_zoom' }
> >
export interface UnreliableSubscription<T extends UnreliableResponses['type']> { export interface UnreliableSubscription<T extends UnreliableResponses['type']> {
event: T event: T
@ -1572,9 +1572,11 @@ export class EngineCommandManager extends EventTarget {
'message', 'message',
(event: MessageEvent) => { (event: MessageEvent) => {
const result: UnreliableResponses = JSON.parse(event.data) const result: UnreliableResponses = JSON.parse(event.data)
console.log('result', result)
Object.values( Object.values(
this.unreliableSubscriptions[result.type] || {} this.unreliableSubscriptions[result.type] || {}
).forEach( ).forEach(
// TODO: There is only one response that uses the unreliable channel atm, // TODO: There is only one response that uses the unreliable channel atm,
// highlight_set_entity, if there are more it's likely they will all have the same // highlight_set_entity, if there are more it's likely they will all have the same
// sequence logic, but I'm not sure if we use a single global sequence or a sequence // sequence logic, but I'm not sure if we use a single global sequence or a sequence
@ -1933,6 +1935,9 @@ export class EngineCommandManager extends EventTarget {
) { ) {
;(cmd as any).sequence = this.outSequence ;(cmd as any).sequence = this.outSequence
this.outSequence++ this.outSequence++
if(cmd.type === 'default_camera_zoom') {
console.log('sending zoom', cmd)
}
this.engineConnection?.unreliableSend(command) this.engineConnection?.unreliableSend(command)
return Promise.resolve(null) return Promise.resolve(null)
} else if ( } else if (