diff --git a/packages/frontend/src/world/room/controller.ts b/packages/frontend/src/world/room/controller.ts index e8b02286c0..cb24c217d6 100644 --- a/packages/frontend/src/world/room/controller.ts +++ b/packages/frontend/src/world/room/controller.ts @@ -73,6 +73,10 @@ export class RoomController extends EngineControllerBase { this.isEditMode.value = isEditMode; }); + engineEvents.on('changeSittingState', ({ isSitting }) => { + this.isSitting.value = isSitting; + }); + engineEvents.on('changeGridSnapping', ({ gridSnapping }) => { this.gridSnapping.value = gridSnapping; }); @@ -203,4 +207,8 @@ export class RoomController extends EngineControllerBase { public interact(id: string) { this.call('interact', [this.selected.value!.objectId, id]); } + + public standUp() { + this.call('standUp'); + } } diff --git a/packages/frontend/src/world/room/engine.ts b/packages/frontend/src/world/room/engine.ts index 5ff0ecc815..7f9d576469 100644 --- a/packages/frontend/src/world/room/engine.ts +++ b/packages/frontend/src/world/room/engine.ts @@ -126,6 +126,7 @@ export class RoomEngine extends EngineBase<{ }) => void; 'changeGrabbingState': (ctx: { grabbing: { forInstall: boolean } | null }) => void; 'changeEditMode': (ctx: { isEditMode: boolean }) => void; + 'changeSittingState': (ctx: { isSitting: boolean }) => void; 'changeGridSnapping': (ctx: { gridSnapping: { enabled: boolean; scale: number } }) => void; 'changeRoomState': (ctx: { roomState: RoomState }) => void; 'playSfxUrl': (ctx: { @@ -234,7 +235,15 @@ export class RoomEngine extends EngineBase<{ this.ev('changeEditMode', { isEditMode: v }); } - public isSitting = false; + private _isSitting = false; + get isSitting() { + return this._isSitting; + } + set isSitting(v) { + this._isSitting = v; + this.ev('changeSittingState', { isSitting: v }); + } + private inited = false; constructor(roomState: RoomState, roomAttachments: RoomAttachments, options: {