From 6c0bb8576a9e943bb57b1aa7892a8f9b91735a47 Mon Sep 17 00:00:00 2001 From: Bill Date: Fri, 30 Jul 2021 19:59:15 -0400 Subject: [PATCH] Add thumbnail --- .../camera/RenderRoomThumbnailMessageComposer.ts | 2 +- src/nitro/room/IRoomEngine.ts | 2 +- src/nitro/room/RoomEngine.ts | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/nitro/communication/messages/outgoing/camera/RenderRoomThumbnailMessageComposer.ts b/src/nitro/communication/messages/outgoing/camera/RenderRoomThumbnailMessageComposer.ts index a115da8f..7f31b80b 100644 --- a/src/nitro/communication/messages/outgoing/camera/RenderRoomThumbnailMessageComposer.ts +++ b/src/nitro/communication/messages/outgoing/camera/RenderRoomThumbnailMessageComposer.ts @@ -2,7 +2,7 @@ import { RenderRoomMessageComposer } from './RenderRoomMessageComposer'; export class RenderRoomThumbnailMessageComposer extends RenderRoomMessageComposer { - constructor(k:any, _arg_2:string, _arg_3:string, _arg_4:number, _arg_5:number) + constructor(k:any = '', _arg_2:string = '', _arg_3:string = '', _arg_4:number = -1, _arg_5:number = -1) { super(k, _arg_2, _arg_3, _arg_4, _arg_5); } diff --git a/src/nitro/room/IRoomEngine.ts b/src/nitro/room/IRoomEngine.ts index ae2e3acd..9057c203 100644 --- a/src/nitro/room/IRoomEngine.ts +++ b/src/nitro/room/IRoomEngine.ts @@ -90,7 +90,7 @@ export interface IRoomEngine extends INitroManager processRoomObjectOperation(objectId: number, category: number, operation: string): boolean; processRoomObjectPlacement(placementSource: string, id: number, category: number, typeId: number, legacyString?: string, stuffData?: IObjectData, state?: number, frameNumber?: number, posture?: string): boolean; dispatchMouseEvent(canvasId: number, x: number, y: number, type: string, altKey: boolean, ctrlKey: boolean, shiftKey: boolean, buttonDown: boolean): void; - createRoomScreenshot(roomId: number, canvasId?: number, bounds?: Rectangle, sendToServer?: boolean): HTMLImageElement; + createRoomScreenshot(roomId: number, canvasId?: number, bounds?: Rectangle, sendToServer?: boolean, asThumbnail?: boolean): HTMLImageElement; modifyRoomObjectData(objectId: number, objectCategory: number, colorHex: string, text: string): boolean; deleteRoomObject(objectId: number, objectCategory: number): boolean; sessionDataManager: ISessionDataManager; diff --git a/src/nitro/room/RoomEngine.ts b/src/nitro/room/RoomEngine.ts index 19729ada..6b0996b2 100644 --- a/src/nitro/room/RoomEngine.ts +++ b/src/nitro/room/RoomEngine.ts @@ -30,7 +30,7 @@ import { RoomGeometry } from '../../room/utils/RoomGeometry'; import { Vector3d } from '../../room/utils/Vector3d'; import { PetCustomPart } from '../avatar/pets/PetCustomPart'; import { PetFigureData } from '../avatar/pets/PetFigureData'; -import { RenderRoomMessageComposer } from '../communication'; +import { RenderRoomMessageComposer, RenderRoomThumbnailMessageComposer } from '../communication'; import { INitroCommunicationManager } from '../communication/INitroCommunicationManager'; import { ToolbarIconEnum } from '../enums/ToolbarIconEnum'; import { NitroToolbarAnimateIconEvent } from '../events/NitroToolbarAnimateIconEvent'; @@ -3448,7 +3448,7 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato return null; } - public createRoomScreenshot(roomId: number, canvasId: number = -1, bounds: Rectangle = null, sendToServer: boolean = false): HTMLImageElement + public createRoomScreenshot(roomId: number, canvasId: number = -1, bounds: Rectangle = null, sendToServer: boolean = false, asThumbnail: boolean = false): HTMLImageElement { let canvas: IRoomRenderingCanvas = null; @@ -3474,7 +3474,10 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato if(sendToServer) { - const composer = new RenderRoomMessageComposer(); + let composer: RenderRoomMessageComposer = null; + + if(asThumbnail) composer = new RenderRoomThumbnailMessageComposer(); + else composer = new RenderRoomMessageComposer(); composer.assignBitmap(texture);