2022-03-31 18:16:58 +02:00
|
|
|
import { RoomEngineEvent, RoomEngineObjectEvent, RoomEngineRoomAdEvent, RoomEngineTriggerWidgetEvent, RoomEngineUseProductEvent, RoomId, RoomObjectCategory, RoomObjectOperationType, RoomObjectVariable, RoomSessionChatEvent, RoomSessionDanceEvent, RoomSessionDimmerPresetsEvent, RoomSessionDoorbellEvent, RoomSessionErrorMessageEvent, RoomSessionEvent, RoomSessionFavoriteGroupUpdateEvent, RoomSessionPetInfoUpdateEvent, RoomSessionPetStatusUpdateEvent, RoomSessionPollEvent, RoomSessionPresentEvent, RoomSessionUserBadgesEvent, RoomSessionUserFigureUpdateEvent, RoomSessionWordQuizEvent, RoomZoomEvent } from '@nitrots/nitro-renderer';
|
2021-06-17 19:23:34 +02:00
|
|
|
import { FC, useCallback } from 'react';
|
2022-03-12 06:23:57 +01:00
|
|
|
import { CanManipulateFurniture, GetRoomEngine, GetSessionDataManager, IsFurnitureSelectionDisabled, LocalizeText, NotificationAlertType, NotificationUtilities, ProcessRoomObjectOperation, RoomWidgetFurniToWidgetMessage, RoomWidgetUpdateRoomEngineEvent, RoomWidgetUpdateRoomObjectEvent } from '../../../api';
|
2022-03-31 18:16:58 +02:00
|
|
|
import { UseRoomEngineEvent, UseRoomSessionManagerEvent } from '../../../hooks';
|
2022-03-04 06:31:13 +01:00
|
|
|
import { useRoomContext } from '../RoomContext';
|
2021-06-17 19:23:34 +02:00
|
|
|
import { AvatarInfoWidgetView } from './avatar-info/AvatarInfoWidgetView';
|
|
|
|
import { ChatInputView } from './chat-input/ChatInputView';
|
|
|
|
import { ChatWidgetView } from './chat/ChatWidgetView';
|
2021-08-11 02:47:16 +02:00
|
|
|
import { FurniChooserWidgetView } from './choosers/FurniChooserWidgetView';
|
|
|
|
import { UserChooserWidgetView } from './choosers/UserChooserWidgetView';
|
2021-08-13 10:05:46 +02:00
|
|
|
import { DoorbellWidgetView } from './doorbell/DoorbellWidgetView';
|
2021-11-19 18:31:43 +01:00
|
|
|
import { FriendRequestWidgetView } from './friend-request/FriendRequestWidgetView';
|
2021-06-17 19:23:34 +02:00
|
|
|
import { FurnitureWidgetsView } from './furniture/FurnitureWidgetsView';
|
|
|
|
import { InfoStandWidgetView } from './infostand/InfoStandWidgetView';
|
2021-07-03 22:08:05 +02:00
|
|
|
import { RoomThumbnailWidgetView } from './room-thumbnail/RoomThumbnailWidgetView';
|
2021-06-30 19:08:24 +02:00
|
|
|
import { RoomToolsWidgetView } from './room-tools/RoomToolsWidgetView';
|
2021-11-16 04:12:05 +01:00
|
|
|
import { WordQuizWidgetView } from './word-quiz/WordQuizWidgetView';
|
2021-11-17 09:48:41 +01:00
|
|
|
|
|
|
|
export const RoomWidgetsView: FC<{}> = props =>
|
2021-06-17 19:23:34 +02:00
|
|
|
{
|
2021-07-13 19:30:20 +02:00
|
|
|
const { roomSession = null, eventDispatcher = null, widgetHandler = null } = useRoomContext();
|
2021-06-17 19:23:34 +02:00
|
|
|
|
2021-07-13 19:30:20 +02:00
|
|
|
const onRoomEngineEvent = useCallback((event: RoomEngineEvent) =>
|
|
|
|
{
|
|
|
|
if(!eventDispatcher || RoomId.isRoomPreviewerId(event.roomId)) return;
|
|
|
|
|
|
|
|
switch(event.type)
|
|
|
|
{
|
|
|
|
case RoomEngineEvent.NORMAL_MODE:
|
2021-10-16 07:56:53 +02:00
|
|
|
eventDispatcher.dispatchEvent(new RoomWidgetUpdateRoomEngineEvent(RoomWidgetUpdateRoomEngineEvent.NORMAL_MODE, event.roomId));
|
2021-07-13 19:30:20 +02:00
|
|
|
return;
|
|
|
|
case RoomEngineEvent.GAME_MODE:
|
2021-10-16 07:56:53 +02:00
|
|
|
eventDispatcher.dispatchEvent(new RoomWidgetUpdateRoomEngineEvent(RoomWidgetUpdateRoomEngineEvent.GAME_MODE, event.roomId));
|
2021-07-13 19:30:20 +02:00
|
|
|
return;
|
|
|
|
case RoomZoomEvent.ROOM_ZOOM: {
|
|
|
|
const zoomEvent = (event as RoomZoomEvent);
|
|
|
|
|
|
|
|
let zoomLevel = ((zoomEvent.level < 1) ? 0.5 : (1 << (Math.floor(zoomEvent.level) - 1)));
|
|
|
|
|
|
|
|
if(zoomEvent.forceFlip || zoomEvent.asDelta) zoomLevel = zoomEvent.level;
|
|
|
|
|
|
|
|
GetRoomEngine().setRoomInstanceRenderingCanvasScale(event.roomId, 1, zoomLevel, null, null, false, zoomEvent.asDelta);
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}, [ eventDispatcher ]);
|
|
|
|
|
2022-03-03 10:11:31 +01:00
|
|
|
UseRoomEngineEvent(RoomEngineEvent.NORMAL_MODE, onRoomEngineEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineEvent.GAME_MODE, onRoomEngineEvent);
|
|
|
|
UseRoomEngineEvent(RoomZoomEvent.ROOM_ZOOM, onRoomEngineEvent);
|
2021-07-13 19:30:20 +02:00
|
|
|
|
2021-09-16 01:52:01 +02:00
|
|
|
const handleRoomAdClick = useCallback((event: RoomEngineRoomAdEvent) =>
|
|
|
|
{
|
|
|
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
const handleRoomAdTooltip = useCallback((event: RoomEngineRoomAdEvent) =>
|
|
|
|
{
|
|
|
|
|
|
|
|
}, []);
|
|
|
|
|
2021-07-13 19:30:20 +02:00
|
|
|
const onRoomEngineObjectEvent = useCallback((event: RoomEngineObjectEvent) =>
|
|
|
|
{
|
|
|
|
if(!roomSession || !widgetHandler) return;
|
|
|
|
|
|
|
|
const objectId = event.objectId;
|
|
|
|
const category = event.category;
|
|
|
|
|
2021-10-16 07:56:53 +02:00
|
|
|
let updateEvent: RoomWidgetUpdateRoomObjectEvent = null;
|
2021-07-13 19:30:20 +02:00
|
|
|
|
|
|
|
switch(event.type)
|
|
|
|
{
|
|
|
|
case RoomEngineObjectEvent.SELECTED:
|
2021-10-16 07:56:53 +02:00
|
|
|
if(!IsFurnitureSelectionDisabled(event)) updateEvent = new RoomWidgetUpdateRoomObjectEvent(RoomWidgetUpdateRoomObjectEvent.OBJECT_SELECTED, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
case RoomEngineObjectEvent.DESELECTED:
|
2021-10-16 07:56:53 +02:00
|
|
|
updateEvent = new RoomWidgetUpdateRoomObjectEvent(RoomWidgetUpdateRoomObjectEvent.OBJECT_DESELECTED, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
case RoomEngineObjectEvent.ADDED: {
|
|
|
|
let addedEventType: string = null;
|
|
|
|
|
|
|
|
switch(category)
|
|
|
|
{
|
|
|
|
case RoomObjectCategory.FLOOR:
|
|
|
|
case RoomObjectCategory.WALL:
|
2021-10-16 07:56:53 +02:00
|
|
|
addedEventType = RoomWidgetUpdateRoomObjectEvent.FURNI_ADDED;
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
case RoomObjectCategory.UNIT:
|
2021-10-16 07:56:53 +02:00
|
|
|
addedEventType = RoomWidgetUpdateRoomObjectEvent.USER_ADDED;
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2021-10-16 07:56:53 +02:00
|
|
|
if(addedEventType) updateEvent = new RoomWidgetUpdateRoomObjectEvent(addedEventType, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case RoomEngineObjectEvent.REMOVED: {
|
|
|
|
let removedEventType: string = null;
|
|
|
|
|
|
|
|
switch(category)
|
|
|
|
{
|
|
|
|
case RoomObjectCategory.FLOOR:
|
|
|
|
case RoomObjectCategory.WALL:
|
2021-10-16 07:56:53 +02:00
|
|
|
removedEventType = RoomWidgetUpdateRoomObjectEvent.FURNI_REMOVED;
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
case RoomObjectCategory.UNIT:
|
2021-10-16 07:56:53 +02:00
|
|
|
removedEventType = RoomWidgetUpdateRoomObjectEvent.USER_REMOVED;
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2021-10-16 07:56:53 +02:00
|
|
|
if(removedEventType) updateEvent = new RoomWidgetUpdateRoomObjectEvent(removedEventType, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
case RoomEngineObjectEvent.REQUEST_MOVE:
|
|
|
|
if(CanManipulateFurniture(roomSession, objectId, category)) ProcessRoomObjectOperation(objectId, category, RoomObjectOperationType.OBJECT_MOVE);
|
|
|
|
break;
|
|
|
|
case RoomEngineObjectEvent.REQUEST_ROTATE:
|
|
|
|
if(CanManipulateFurniture(roomSession, objectId, category)) ProcessRoomObjectOperation(objectId, category, RoomObjectOperationType.OBJECT_ROTATE_POSITIVE);
|
|
|
|
break;
|
|
|
|
case RoomEngineObjectEvent.REQUEST_MANIPULATION:
|
2021-10-16 07:56:53 +02:00
|
|
|
if(CanManipulateFurniture(roomSession, objectId, category)) updateEvent = new RoomWidgetUpdateRoomObjectEvent(RoomWidgetUpdateRoomObjectEvent.OBJECT_REQUEST_MANIPULATION, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
case RoomEngineObjectEvent.MOUSE_ENTER:
|
2021-10-16 07:56:53 +02:00
|
|
|
updateEvent = new RoomWidgetUpdateRoomObjectEvent(RoomWidgetUpdateRoomObjectEvent.OBJECT_ROLL_OVER, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
|
|
|
case RoomEngineObjectEvent.MOUSE_LEAVE:
|
2021-10-16 07:56:53 +02:00
|
|
|
updateEvent = new RoomWidgetUpdateRoomObjectEvent(RoomWidgetUpdateRoomObjectEvent.OBJECT_ROLL_OUT, objectId, category, event.roomId);
|
2021-07-13 19:30:20 +02:00
|
|
|
break;
|
2021-09-16 01:52:01 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_CREDITFURNI:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_CREDITFURNI, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_STICKIE:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_STICKIE, objectId, category, event.roomId));
|
|
|
|
break;
|
2021-09-12 06:50:05 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_PRESENT:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_PRESENT, objectId, category, event.roomId));
|
|
|
|
break;
|
2021-09-16 01:52:01 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_TROPHY:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_TROPHY, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_TEASER:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_TEASER, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_ECOTRONBOX:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_ECOTRONBOX, objectId, category, event.roomId));
|
|
|
|
break;
|
2021-09-16 00:58:11 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_DIMMER:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_DIMMER, objectId, category, event.roomId));
|
|
|
|
break;
|
2021-09-16 01:52:01 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_PLACEHOLDER:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_PLACEHOLDER, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_CLOTHING_CHANGE:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_CLOTHING_CHANGE, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_PLAYLIST_EDITOR:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_PLAYLIST_EDITOR, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_ACHIEVEMENT_RESOLUTION_ENGRAVING:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_ACHIEVEMENT_RESOLUTION_ENGRAVING, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_BADGE_DISPLAY_ENGRAVING:
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_BADGE_DISPLAY_ENGRAVING, objectId, category, event.roomId));
|
|
|
|
break;
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_ACHIEVEMENT_RESOLUTION_FAILED: {
|
|
|
|
const roomObject = GetRoomEngine().getRoomObject(event.roomId, objectId, category);
|
|
|
|
const ownerId = roomObject.model.getValue<number>(RoomObjectVariable.FURNITURE_OWNER_ID);
|
|
|
|
|
|
|
|
if(ownerId === GetSessionDataManager().userId)
|
|
|
|
{
|
|
|
|
widgetHandler.processWidgetMessage(new RoomWidgetFurniToWidgetMessage(RoomWidgetFurniToWidgetMessage.REQUEST_ACHIEVEMENT_RESOLUTION_FAILED, objectId, category, event.roomId));
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
}
|
2021-07-16 19:17:52 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.OPEN_WIDGET:
|
|
|
|
case RoomEngineTriggerWidgetEvent.CLOSE_WIDGET:
|
2021-09-16 01:52:01 +02:00
|
|
|
case RoomEngineTriggerWidgetEvent.OPEN_FURNI_CONTEXT_MENU:
|
|
|
|
case RoomEngineTriggerWidgetEvent.CLOSE_FURNI_CONTEXT_MENU:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REMOVE_DIMMER:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_MANNEQUIN:
|
|
|
|
case RoomEngineUseProductEvent.USE_PRODUCT_FROM_INVENTORY:
|
|
|
|
case RoomEngineUseProductEvent.USE_PRODUCT_FROM_ROOM:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_BACKGROUND_COLOR:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_FRIEND_FURNITURE_ENGRAVING:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_HIGH_SCORE_DISPLAY:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_HIDE_HIGH_SCORE_DISPLAY:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_INTERNAL_LINK:
|
|
|
|
case RoomEngineTriggerWidgetEvent.REQUEST_ROOM_LINK:
|
2021-07-13 19:30:20 +02:00
|
|
|
widgetHandler.processEvent(event);
|
|
|
|
break;
|
2021-09-16 01:52:01 +02:00
|
|
|
case RoomEngineRoomAdEvent.FURNI_CLICK:
|
|
|
|
case RoomEngineRoomAdEvent.FURNI_DOUBLE_CLICK:
|
|
|
|
handleRoomAdClick(event);
|
|
|
|
break;
|
|
|
|
case RoomEngineRoomAdEvent.TOOLTIP_SHOW:
|
|
|
|
case RoomEngineRoomAdEvent.TOOLTIP_HIDE:
|
|
|
|
handleRoomAdTooltip(event);
|
|
|
|
break;
|
2021-07-13 19:30:20 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
if(updateEvent)
|
|
|
|
{
|
|
|
|
let dispatchEvent = true;
|
|
|
|
|
2021-10-16 07:56:53 +02:00
|
|
|
if(updateEvent instanceof RoomWidgetUpdateRoomObjectEvent) dispatchEvent = (!RoomId.isRoomPreviewerId(updateEvent.roomId));
|
2021-07-13 19:30:20 +02:00
|
|
|
|
|
|
|
if(dispatchEvent) widgetHandler.eventDispatcher.dispatchEvent(updateEvent);
|
|
|
|
}
|
2021-09-16 01:52:01 +02:00
|
|
|
}, [ roomSession, widgetHandler, handleRoomAdClick, handleRoomAdTooltip ]);
|
2021-07-13 19:30:20 +02:00
|
|
|
|
2022-03-03 10:11:31 +01:00
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.SELECTED, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.DESELECTED, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.ADDED, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.REMOVED, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.PLACED, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.REQUEST_MOVE, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.REQUEST_ROTATE, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.REQUEST_MANIPULATION, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.MOUSE_ENTER, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineObjectEvent.MOUSE_LEAVE, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_CREDITFURNI, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_STICKIE, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PRESENT, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_TROPHY, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_TEASER, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_ECOTRONBOX, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_DIMMER, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PLACEHOLDER, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_CLOTHING_CHANGE, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_PLAYLIST_EDITOR, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_ACHIEVEMENT_RESOLUTION_ENGRAVING, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_BADGE_DISPLAY_ENGRAVING, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_ACHIEVEMENT_RESOLUTION_FAILED, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.OPEN_WIDGET, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.CLOSE_WIDGET, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.OPEN_FURNI_CONTEXT_MENU, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.CLOSE_FURNI_CONTEXT_MENU, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REMOVE_DIMMER, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_MANNEQUIN, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineUseProductEvent.USE_PRODUCT_FROM_INVENTORY, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineUseProductEvent.USE_PRODUCT_FROM_ROOM, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_BACKGROUND_COLOR, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_FRIEND_FURNITURE_ENGRAVING, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_HIGH_SCORE_DISPLAY, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_HIDE_HIGH_SCORE_DISPLAY, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_INTERNAL_LINK, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineTriggerWidgetEvent.REQUEST_ROOM_LINK, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineRoomAdEvent.FURNI_CLICK, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineRoomAdEvent.FURNI_DOUBLE_CLICK, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineRoomAdEvent.TOOLTIP_SHOW, onRoomEngineObjectEvent);
|
|
|
|
UseRoomEngineEvent(RoomEngineRoomAdEvent.TOOLTIP_HIDE, onRoomEngineObjectEvent);
|
2021-07-13 19:30:20 +02:00
|
|
|
|
|
|
|
const onRoomSessionEvent = useCallback((event: RoomSessionEvent) =>
|
2021-06-17 19:23:34 +02:00
|
|
|
{
|
|
|
|
if(!widgetHandler) return;
|
|
|
|
|
|
|
|
widgetHandler.processEvent(event);
|
|
|
|
}, [ widgetHandler ]);
|
|
|
|
|
2022-03-03 10:11:31 +01:00
|
|
|
UseRoomSessionManagerEvent(RoomSessionChatEvent.CHAT_EVENT, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionChatEvent.FLOOD_EVENT, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionDanceEvent.RSDE_DANCE, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionUserBadgesEvent.RSUBE_BADGES, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionUserFigureUpdateEvent.USER_FIGURE, onRoomSessionEvent);
|
2022-03-21 07:10:36 +01:00
|
|
|
UseRoomSessionManagerEvent(RoomSessionFavoriteGroupUpdateEvent.FAVOURITE_GROUP_UPDATE, onRoomSessionEvent);
|
2022-03-03 10:11:31 +01:00
|
|
|
UseRoomSessionManagerEvent(RoomSessionPetStatusUpdateEvent.PET_STATUS_UPDATE, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionDoorbellEvent.DOORBELL, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionDoorbellEvent.RSDE_REJECTED, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionDoorbellEvent.RSDE_ACCEPTED, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionDimmerPresetsEvent.ROOM_DIMMER_PRESETS, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionPresentEvent.RSPE_PRESENT_OPENED, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionPetInfoUpdateEvent.PET_INFO, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionWordQuizEvent.ANSWERED, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionWordQuizEvent.FINISHED, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionWordQuizEvent.QUESTION, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionPollEvent.OFFER, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionPollEvent.ERROR, onRoomSessionEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionPollEvent.CONTENT, onRoomSessionEvent);
|
2021-07-13 19:30:20 +02:00
|
|
|
|
|
|
|
const onRoomSessionErrorMessageEvent = useCallback((event: RoomSessionErrorMessageEvent) =>
|
2021-06-17 19:23:34 +02:00
|
|
|
{
|
|
|
|
if(!event) return;
|
|
|
|
|
|
|
|
let errorTitle = LocalizeText('error.title');
|
|
|
|
let errorMessage: string = '';
|
|
|
|
|
|
|
|
switch(event.type)
|
|
|
|
{
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_MAX_PETS:
|
|
|
|
errorMessage = LocalizeText('room.error.max_pets');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_MAX_NUMBER_OF_OWN_PETS:
|
|
|
|
errorMessage = LocalizeText('room.error.max_own_pets');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_KICKED:
|
|
|
|
errorMessage = LocalizeText('room.error.kicked');
|
|
|
|
errorTitle = LocalizeText('generic.alert.title');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_PETS_FORBIDDEN_IN_HOTEL:
|
|
|
|
errorMessage = LocalizeText('room.error.pets.forbidden_in_hotel');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_PETS_FORBIDDEN_IN_FLAT:
|
|
|
|
errorMessage = LocalizeText('room.error.pets.forbidden_in_flat');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_NO_FREE_TILES_FOR_PET:
|
|
|
|
errorMessage = LocalizeText('room.error.pets.no_free_tiles');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_SELECTED_TILE_NOT_FREE_FOR_PET:
|
|
|
|
errorMessage = LocalizeText('room.error.pets.selected_tile_not_free');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_BOTS_FORBIDDEN_IN_HOTEL:
|
|
|
|
errorMessage = LocalizeText('room.error.bots.forbidden_in_hotel');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_BOTS_FORBIDDEN_IN_FLAT:
|
|
|
|
errorMessage = LocalizeText('room.error.bots.forbidden_in_flat');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_BOT_LIMIT_REACHED:
|
|
|
|
errorMessage = LocalizeText('room.error.max_bots');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_SELECTED_TILE_NOT_FREE_FOR_BOT:
|
|
|
|
errorMessage = LocalizeText('room.error.bots.selected_tile_not_free');
|
|
|
|
break;
|
|
|
|
case RoomSessionErrorMessageEvent.RSEME_BOT_NAME_NOT_ACCEPTED:
|
|
|
|
errorMessage = LocalizeText('room.error.bots.name.not.accepted');
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return;
|
|
|
|
}
|
2021-09-30 06:47:03 +02:00
|
|
|
|
|
|
|
NotificationUtilities.simpleAlert(errorMessage, NotificationAlertType.DEFAULT, null, null, errorTitle);
|
2021-06-17 19:23:34 +02:00
|
|
|
}, []);
|
|
|
|
|
2022-03-03 10:11:31 +01:00
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_KICKED, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_PETS_FORBIDDEN_IN_HOTEL, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_PETS_FORBIDDEN_IN_FLAT, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_MAX_PETS, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_MAX_NUMBER_OF_OWN_PETS, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_NO_FREE_TILES_FOR_PET, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_SELECTED_TILE_NOT_FREE_FOR_PET, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_BOTS_FORBIDDEN_IN_HOTEL, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_BOTS_FORBIDDEN_IN_FLAT, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_BOT_LIMIT_REACHED, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_SELECTED_TILE_NOT_FREE_FOR_BOT, onRoomSessionErrorMessageEvent);
|
|
|
|
UseRoomSessionManagerEvent(RoomSessionErrorMessageEvent.RSEME_BOT_NAME_NOT_ACCEPTED, onRoomSessionErrorMessageEvent);
|
2021-06-17 19:23:34 +02:00
|
|
|
|
|
|
|
if(!widgetHandler) return null;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<AvatarInfoWidgetView />
|
|
|
|
<ChatWidgetView />
|
|
|
|
<ChatInputView />
|
2021-08-13 10:05:46 +02:00
|
|
|
<DoorbellWidgetView />
|
2021-06-17 19:23:34 +02:00
|
|
|
<FurnitureWidgetsView />
|
|
|
|
<InfoStandWidgetView />
|
2021-06-30 19:08:24 +02:00
|
|
|
<RoomToolsWidgetView />
|
2021-07-03 22:08:05 +02:00
|
|
|
<RoomThumbnailWidgetView />
|
2021-08-11 02:47:16 +02:00
|
|
|
<FurniChooserWidgetView />
|
|
|
|
<UserChooserWidgetView />
|
2021-11-16 04:12:05 +01:00
|
|
|
<WordQuizWidgetView />
|
2021-11-19 18:31:43 +01:00
|
|
|
<FriendRequestWidgetView />
|
2021-06-17 19:23:34 +02:00
|
|
|
</>
|
|
|
|
);
|
|
|
|
}
|