From 58775a5ace33d6b8d87e3dc4a095cb8ea7827d83 Mon Sep 17 00:00:00 2001 From: jankuss Date: Sat, 23 Jan 2021 07:46:19 -0800 Subject: [PATCH] Fix bug in AnimatedFurnitureVisualization --- src/objects/furniture/BaseFurniture.tsx | 9 +++++++-- storybook/stories/Furniture.stories.ts | 10 ++++++++++ storybook/stories/Issues.stories.ts | 2 ++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/objects/furniture/BaseFurniture.tsx b/src/objects/furniture/BaseFurniture.tsx index bd336d38..8c4d8e3a 100644 --- a/src/objects/furniture/BaseFurniture.tsx +++ b/src/objects/furniture/BaseFurniture.tsx @@ -305,8 +305,11 @@ export class BaseFurniture implements IFurnitureEventHandlers { public set animation(value) { this._animation = value; - this.visualization.updateAnimation(this.animation); - this._handleAnimationChange(); + + if (this.mounted) { + this.visualization.updateAnimation(this.animation); + this._handleAnimationChange(); + } } public get maskId() { @@ -344,6 +347,8 @@ export class BaseFurniture implements IFurnitureEventHandlers { }; private _updateDirection() { + if (!this.mounted) return; + if (this._validDirections != null) { this.visualization.updateDirection( getDirectionForFurniture(this.direction, this._validDirections) diff --git a/storybook/stories/Furniture.stories.ts b/storybook/stories/Furniture.stories.ts index d38e3ae3..16b4a4d7 100644 --- a/storybook/stories/Furniture.stories.ts +++ b/storybook/stories/Furniture.stories.ts @@ -110,6 +110,16 @@ export function Animated() { } }; + if (i === 0) { + room.onActiveTileChange.subscribe((value) => { + if (value == null) return; + + furniture.roomX = value.roomX; + furniture.roomY = value.roomY; + furniture.roomZ = value.roomZ; + }); + } + room.addRoomObject(furniture); } diff --git a/storybook/stories/Issues.stories.ts b/storybook/stories/Issues.stories.ts index a09095f8..2a1aa9b6 100644 --- a/storybook/stories/Issues.stories.ts +++ b/storybook/stories/Issues.stories.ts @@ -207,6 +207,8 @@ export function IssueWithAvatarEventsNotHandled() { avatar.onDoubleClick = (event) => { event.stopPropagation(); + + action("Avatar Double Clicked")(event); }; furniture.onClick = (event) => {