From 37f5bf6a10cbf2c76c2afe59cd617ca74c814faa Mon Sep 17 00:00:00 2001 From: Bill Date: Sun, 25 Jul 2021 03:40:03 -0400 Subject: [PATCH] Fix busted badge displays --- src/nitro/room/RoomContentLoader.ts | 4 ++-- src/nitro/room/RoomEngine.ts | 2 +- .../furniture/FurnitureBadgeDisplayVisualization.ts | 10 +++++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/nitro/room/RoomContentLoader.ts b/src/nitro/room/RoomContentLoader.ts index 38afc6fd..d282c7b6 100644 --- a/src/nitro/room/RoomContentLoader.ts +++ b/src/nitro/room/RoomContentLoader.ts @@ -316,13 +316,13 @@ export class RoomContentLoader implements IFurnitureDataListener return image; } - public addAssetToCollection(collectionName: string, assetName: string, texture: Texture): boolean + public addAssetToCollection(collectionName: string, assetName: string, texture: Texture, override: boolean = true): boolean { const collection = this.getCollection(collectionName); if(!collection) return false; - return collection.addAsset(assetName, texture, true, 0, 0, false, false); + return collection.addAsset(assetName, texture, override, 0, 0, false, false); } private createCollection(data: IAssetData, spritesheet: Spritesheet): GraphicAssetCollection diff --git a/src/nitro/room/RoomEngine.ts b/src/nitro/room/RoomEngine.ts index ebed6c9c..06e05fde 100644 --- a/src/nitro/room/RoomEngine.ts +++ b/src/nitro/room/RoomEngine.ts @@ -2438,7 +2438,7 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato const badgeName = (groupBadge) ? this._sessionDataManager.loadGroupBadgeImage(badgeId) : this._sessionDataManager.loadBadgeImage(badgeId); const badgeImage = (groupBadge) ? this._sessionDataManager.getGroupBadgeImage(badgeId) : this._sessionDataManager.getBadgeImage(badgeId); - if(badgeImage) this._roomContentLoader.addAssetToCollection(object.type, badgeName, badgeImage); + if(badgeImage) this._roomContentLoader.addAssetToCollection(object.type, badgeName, badgeImage, false); } public dispatchMouseEvent(canvasId: number, x: number, y: number, type: string, altKey: boolean, ctrlKey: boolean, shiftKey: boolean, buttonDown: boolean): void diff --git a/src/nitro/room/object/visualization/furniture/FurnitureBadgeDisplayVisualization.ts b/src/nitro/room/object/visualization/furniture/FurnitureBadgeDisplayVisualization.ts index 0e6d81a1..617e4f0c 100644 --- a/src/nitro/room/object/visualization/furniture/FurnitureBadgeDisplayVisualization.ts +++ b/src/nitro/room/object/visualization/furniture/FurnitureBadgeDisplayVisualization.ts @@ -5,6 +5,7 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali { private static BADGE: string = 'BADGE'; + private _badgeId: string; private _badgeAssetNameNormalScale: string; private _badgeAssetNameSmallScale: string; private _badgeVisibleInState: number; @@ -13,6 +14,7 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali { super(); + this._badgeId = ''; this._badgeAssetNameNormalScale = ''; this._badgeAssetNameSmallScale = ''; this._badgeVisibleInState = -1; @@ -22,7 +24,8 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali { let updateModel = super.updateModel(scale); - const badgeStatus = this.object.model.getValue(RoomObjectVariable.FURNITURE_BADGE_IMAGE_STATUS); + const badgeStatus = this.object.model.getValue(RoomObjectVariable.FURNITURE_BADGE_IMAGE_STATUS); + const badgeId = this.object.model.getValue(RoomObjectVariable.FURNITURE_BADGE_ASSET_NAME); if(badgeStatus === -1) { @@ -30,9 +33,10 @@ export class FurnitureBadgeDisplayVisualization extends FurnitureAnimatedVisuali this._badgeAssetNameSmallScale = ''; } - else if(badgeStatus === 1 && (this._badgeAssetNameNormalScale === '')) + else if((badgeStatus === 1) && (badgeId !== this._badgeId)) { - this._badgeAssetNameNormalScale = this.object.model.getValue(RoomObjectVariable.FURNITURE_BADGE_ASSET_NAME); + this._badgeId = badgeId; + this._badgeAssetNameNormalScale = this._badgeId; if(this._badgeAssetNameSmallScale === '') this._badgeAssetNameSmallScale = this._badgeAssetNameNormalScale + '_32';