mirror of
https://github.com/billsonnn/nitro-react.git
synced 2024-11-23 06:40:50 +01:00
Update widgets
This commit is contained in:
parent
77b9779b80
commit
ff9d24cd21
@ -1,5 +1,5 @@
|
||||
import { NitroEvent, RoomEngineUseProductEvent, RoomObjectCategory, RoomObjectType, RoomObjectVariable, RoomSessionDanceEvent, RoomSessionUserDataUpdateEvent, RoomWidgetEnum } from '@nitrots/nitro-renderer';
|
||||
import { GetRoomEngine, GetRoomSession, GetSessionDataManager, IsOwnerOfFurniture } from '../../../..';
|
||||
import { NitroEvent, RoomEngineUseProductEvent, RoomObjectCategory, RoomObjectType, RoomObjectVariable, RoomSessionDanceEvent, RoomSessionPetStatusUpdateEvent, RoomSessionUserDataUpdateEvent, RoomWidgetEnum } from '@nitrots/nitro-renderer';
|
||||
import { GetRoomEngine, GetSessionDataManager, IsOwnerOfFurniture } from '../../../..';
|
||||
import { FurniCategory } from '../../../../../components/inventory/common/FurniCategory';
|
||||
import { RoomWidgetAvatarInfoEvent, RoomWidgetUpdateDanceStatusEvent, RoomWidgetUpdateEvent, RoomWidgetUpdateUserDataEvent, RoomWidgetUseProductBubbleEvent, UseProductItem } from '../events';
|
||||
import { RoomWidgetAvatarExpressionMessage, RoomWidgetChangePostureMessage, RoomWidgetDanceMessage, RoomWidgetMessage, RoomWidgetRoomObjectMessage, RoomWidgetUseProductMessage, RoomWidgetUserActionMessage } from '../messages';
|
||||
@ -19,7 +19,7 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
|
||||
let isDancing = false;
|
||||
|
||||
const userData = GetRoomSession().userDataManager.getUserData(GetSessionDataManager().userId);
|
||||
const userData = this.container.roomSession.userDataManager.getUserData(GetSessionDataManager().userId);
|
||||
|
||||
if(userData && (userData.roomIndex === danceEvent.roomIndex)) isDancing = (danceEvent.danceId !== 0);
|
||||
|
||||
@ -30,6 +30,9 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
case RoomEngineUseProductEvent.USE_PRODUCT_FROM_ROOM:
|
||||
this.processUsableRoomObject((event as RoomEngineUseProductEvent).objectId);
|
||||
return;
|
||||
case RoomSessionPetStatusUpdateEvent.PET_STATUS_UPDATE:
|
||||
this.processRoomSessionPetStatusUpdateEvent((event as RoomSessionPetStatusUpdateEvent));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,28 +47,39 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
case RoomWidgetRoomObjectMessage.GET_OWN_CHARACTER_INFO:
|
||||
this.processOwnCharacterInfo();
|
||||
break;
|
||||
case RoomWidgetUserActionMessage.START_NAME_CHANGE:
|
||||
// habbo help - start name change
|
||||
break;
|
||||
case RoomWidgetUserActionMessage.REQUEST_PET_UPDATE:
|
||||
break;
|
||||
case RoomWidgetUseProductMessage.PET_PRODUCT: {
|
||||
const productMessage = (message as RoomWidgetUseProductMessage);
|
||||
|
||||
this.container.roomSession.usePetProduct(productMessage.objectId, productMessage.petId);
|
||||
break;
|
||||
}
|
||||
case RoomWidgetUserActionMessage.HARVEST_PET:
|
||||
this.container.roomSession.harvestPet(userId);
|
||||
break;
|
||||
case RoomWidgetUserActionMessage.COMPOST_PLANT:
|
||||
this.container.roomSession.compostPlant(userId);
|
||||
break;
|
||||
case RoomWidgetDanceMessage.DANCE: {
|
||||
const danceMessage = (message as RoomWidgetDanceMessage);
|
||||
|
||||
GetRoomSession().sendDanceMessage(danceMessage.style);
|
||||
this.container.roomSession.sendDanceMessage(danceMessage.style);
|
||||
break;
|
||||
}
|
||||
case RoomWidgetAvatarExpressionMessage.AVATAR_EXPRESSION: {
|
||||
const expressionMessage = (message as RoomWidgetAvatarExpressionMessage);
|
||||
|
||||
GetRoomSession().sendExpressionMessage(expressionMessage.animation.ordinal)
|
||||
this.container.roomSession.sendExpressionMessage(expressionMessage.animation.ordinal)
|
||||
break;
|
||||
}
|
||||
case RoomWidgetChangePostureMessage.CHANGE_POSTURE: {
|
||||
const postureMessage = (message as RoomWidgetChangePostureMessage);
|
||||
|
||||
GetRoomSession().sendPostureMessage(postureMessage.posture);
|
||||
break;
|
||||
}
|
||||
case RoomWidgetUseProductMessage.PET_PRODUCT: {
|
||||
const productMessage = (message as RoomWidgetUseProductMessage);
|
||||
|
||||
GetRoomSession().usePetProduct(productMessage.objectId, productMessage.petId);
|
||||
this.container.roomSession.sendPostureMessage(postureMessage.posture);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -78,9 +92,11 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
const userId = GetSessionDataManager().userId;
|
||||
const userName = GetSessionDataManager().userName;
|
||||
const allowNameChange = GetSessionDataManager().canChangeName;
|
||||
const userData = GetRoomSession().userDataManager.getUserData(userId);
|
||||
const userData = this.container.roomSession.userDataManager.getUserData(userId);
|
||||
|
||||
if(userData) this.container.eventDispatcher.dispatchEvent(new RoomWidgetAvatarInfoEvent(userId, userName, userData.type, userData.roomIndex, allowNameChange));
|
||||
if(!userData) return;
|
||||
|
||||
this.container.eventDispatcher.dispatchEvent(new RoomWidgetAvatarInfoEvent(userId, userName, userData.type, userData.roomIndex, allowNameChange));
|
||||
}
|
||||
|
||||
private processUsableRoomObject(objectId: number): void
|
||||
@ -151,6 +167,11 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
if(useProductBubbles.length) this.container.eventDispatcher.dispatchEvent(new RoomWidgetUseProductBubbleEvent(RoomWidgetUseProductBubbleEvent.USE_PRODUCT_BUBBLES, useProductBubbles));
|
||||
}
|
||||
|
||||
private processRoomSessionPetStatusUpdateEvent(event: RoomSessionPetStatusUpdateEvent): void
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public get type(): string
|
||||
{
|
||||
return RoomWidgetEnum.AVATAR_INFO;
|
||||
@ -162,18 +183,29 @@ export class RoomWidgetAvatarInfoHandler extends RoomWidgetHandler
|
||||
RoomSessionUserDataUpdateEvent.USER_DATA_UPDATED,
|
||||
RoomSessionDanceEvent.RSDE_DANCE,
|
||||
RoomEngineUseProductEvent.USE_PRODUCT_FROM_INVENTORY,
|
||||
RoomEngineUseProductEvent.USE_PRODUCT_FROM_ROOM
|
||||
RoomEngineUseProductEvent.USE_PRODUCT_FROM_ROOM,
|
||||
RoomSessionPetStatusUpdateEvent.PET_STATUS_UPDATE
|
||||
];
|
||||
}
|
||||
|
||||
// UserNameUpdateEvent.UNUE_NAME_UPDATED
|
||||
// RoomSessionNestBreedingSuccessEvent.RSPFUE_NEST_BREEDING_SUCCESS
|
||||
// RoomSessionPetLevelUpdateEvent.RSPLUE_PET_LEVEL_UPDATE
|
||||
|
||||
public get messageTypes(): string[]
|
||||
{
|
||||
return [
|
||||
RoomWidgetRoomObjectMessage.GET_OWN_CHARACTER_INFO,
|
||||
RoomWidgetUserActionMessage.START_NAME_CHANGE,
|
||||
RoomWidgetUserActionMessage.REQUEST_PET_UPDATE,
|
||||
RoomWidgetUseProductMessage.PET_PRODUCT,
|
||||
RoomWidgetUserActionMessage.REQUEST_BREED_PET,
|
||||
RoomWidgetUserActionMessage.HARVEST_PET,
|
||||
RoomWidgetUserActionMessage.REVIVE_PET,
|
||||
RoomWidgetUserActionMessage.COMPOST_PLANT,
|
||||
RoomWidgetDanceMessage.DANCE,
|
||||
RoomWidgetAvatarExpressionMessage.AVATAR_EXPRESSION,
|
||||
RoomWidgetChangePostureMessage.CHANGE_POSTURE,
|
||||
RoomWidgetUseProductMessage.PET_PRODUCT
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { IFurnitureData, NitroEvent, ObjectDataFactory, PetFigureData, PetRespectComposer, PetSupplementComposer, PetType, RoomControllerLevel, RoomModerationSettings, RoomObjectCategory, RoomObjectOperationType, RoomObjectType, RoomObjectVariable, RoomSessionPetInfoUpdateEvent, RoomSessionUserBadgesEvent, RoomTradingLevelEnum, RoomUnitDropHandItemComposer, RoomUnitGiveHandItemComposer, RoomUnitGiveHandItemPetComposer, RoomUserData, RoomWidgetEnum, RoomWidgetEnumItemExtradataParameter, Vector3d } from '@nitrots/nitro-renderer';
|
||||
import { IFurnitureData, NitroEvent, ObjectDataFactory, PetFigureData, PetRespectComposer, PetSupplementComposer, PetType, RoomControllerLevel, RoomModerationSettings, RoomObjectCategory, RoomObjectOperationType, RoomObjectType, RoomObjectVariable, RoomSessionPetInfoUpdateEvent, RoomSessionUserBadgesEvent, RoomSessionUserFigureUpdateEvent, RoomTradingLevelEnum, RoomUnitDropHandItemComposer, RoomUnitGiveHandItemComposer, RoomUnitGiveHandItemPetComposer, RoomUserData, RoomWidgetEnum, RoomWidgetEnumItemExtradataParameter, Vector3d } from '@nitrots/nitro-renderer';
|
||||
import { GetNitroInstance, GetRoomEngine, GetSessionDataManager, IsOwnerOfFurniture } from '../../../..';
|
||||
import { InventoryTradeRequestEvent, WiredSelectObjectEvent } from '../../../../../events';
|
||||
import { FriendsSendFriendRequestEvent } from '../../../../../events/friends/FriendsSendFriendRequestEvent';
|
||||
@ -24,6 +24,9 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
|
||||
case RoomSessionUserBadgesEvent.RSUBE_BADGES:
|
||||
this.container.eventDispatcher.dispatchEvent(event);
|
||||
return;
|
||||
case RoomSessionUserFigureUpdateEvent.USER_FIGURE:
|
||||
this.processRoomSessionUserFigureUpdateEvent((event as RoomSessionUserFigureUpdateEvent));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@ -661,6 +664,17 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
|
||||
this.container.eventDispatcher.dispatchEvent(infostandEvent);
|
||||
}
|
||||
|
||||
private processRoomSessionUserFigureUpdateEvent(event: RoomSessionUserFigureUpdateEvent): void
|
||||
{
|
||||
const userData = this.container.roomSession.userDataManager.getUserDataByIndex(event.userId);
|
||||
|
||||
if(!userData) return;
|
||||
|
||||
// update active infostand figure
|
||||
// update motto
|
||||
// update activity points
|
||||
}
|
||||
|
||||
private checkGuildSetting(event: RoomWidgetUpdateInfostandUserEvent): boolean
|
||||
{
|
||||
if(event.isGuildRoom) return (event.roomControllerLevel >= RoomControllerLevel.GUILD_ADMIN);
|
||||
@ -766,7 +780,8 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
|
||||
{
|
||||
return [
|
||||
RoomSessionPetInfoUpdateEvent.PET_INFO,
|
||||
RoomSessionUserBadgesEvent.RSUBE_BADGES
|
||||
RoomSessionUserBadgesEvent.RSUBE_BADGES,
|
||||
RoomSessionUserFigureUpdateEvent.USER_FIGURE
|
||||
];
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { RoomEngineEvent, RoomEngineObjectEvent, RoomEngineRoomAdEvent, RoomEngineTriggerWidgetEvent, RoomEngineUseProductEvent, RoomId, RoomObjectCategory, RoomObjectOperationType, RoomObjectVariable, RoomSessionChatEvent, RoomSessionDanceEvent, RoomSessionDimmerPresetsEvent, RoomSessionDoorbellEvent, RoomSessionErrorMessageEvent, RoomSessionEvent, RoomSessionFriendRequestEvent, RoomSessionPetInfoUpdateEvent, RoomSessionPollEvent, RoomSessionPresentEvent, RoomSessionUserBadgesEvent, RoomSessionWordQuizEvent, RoomZoomEvent } from '@nitrots/nitro-renderer';
|
||||
import { RoomEngineEvent, RoomEngineObjectEvent, RoomEngineRoomAdEvent, RoomEngineTriggerWidgetEvent, RoomEngineUseProductEvent, RoomId, RoomObjectCategory, RoomObjectOperationType, RoomObjectVariable, RoomSessionChatEvent, RoomSessionDanceEvent, RoomSessionDimmerPresetsEvent, RoomSessionDoorbellEvent, RoomSessionErrorMessageEvent, RoomSessionEvent, RoomSessionFriendRequestEvent, RoomSessionPetInfoUpdateEvent, RoomSessionPetStatusUpdateEvent, RoomSessionPollEvent, RoomSessionPresentEvent, RoomSessionUserBadgesEvent, RoomSessionUserFigureUpdateEvent, RoomSessionWordQuizEvent, RoomZoomEvent } from '@nitrots/nitro-renderer';
|
||||
import { FC, useCallback } from 'react';
|
||||
import { CanManipulateFurniture, GetRoomEngine, GetSessionDataManager, IsFurnitureSelectionDisabled, LocalizeText, ProcessRoomObjectOperation, RoomWidgetFurniToWidgetMessage, RoomWidgetUpdateRoomEngineEvent, RoomWidgetUpdateRoomObjectEvent } from '../../../api';
|
||||
import { FriendRequestEvent } from '../../../events';
|
||||
@ -264,6 +264,8 @@ export const RoomWidgetsView: FC<{}> = props =>
|
||||
useRoomSessionManagerEvent(RoomSessionChatEvent.FLOOD_EVENT, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionDanceEvent.RSDE_DANCE, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionUserBadgesEvent.RSUBE_BADGES, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionUserFigureUpdateEvent.USER_FIGURE, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionPetStatusUpdateEvent.PET_STATUS_UPDATE, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionDoorbellEvent.DOORBELL, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionDoorbellEvent.RSDE_REJECTED, onRoomSessionEvent);
|
||||
useRoomSessionManagerEvent(RoomSessionDoorbellEvent.RSDE_ACCEPTED, onRoomSessionEvent);
|
||||
|
@ -204,10 +204,10 @@ export const AvatarInfoWidgetOwnPetView: FC<AvatarInfoWidgetOwnPetViewProps> = p
|
||||
<ContextMenuListItemView onClick={ event => processAction('revive') }>
|
||||
{ LocalizeText('infostand.button.revive') }
|
||||
</ContextMenuListItemView> }
|
||||
{ roomSession.isRoomOwner &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('compost') }>
|
||||
{ LocalizeText('infostand.button.compost') }
|
||||
</ContextMenuListItemView> }
|
||||
{ roomSession.isRoomOwner &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('compost') }>
|
||||
{ LocalizeText('infostand.button.compost') }
|
||||
</ContextMenuListItemView> }
|
||||
{ !petData.dead && ((petData.energy / petData.maximumEnergy) < 0.98) &&
|
||||
<ContextMenuListItemView onClick={ event => processAction('treat') }>
|
||||
{ LocalizeText('infostand.button.treat') }
|
||||
|
Loading…
Reference in New Issue
Block a user