Fix things skelly broke

This commit is contained in:
Bill 2021-06-24 12:47:40 -04:00
parent ee324edea0
commit 78c25c21ee
8 changed files with 43 additions and 29 deletions

View File

@ -5,7 +5,6 @@ import { TransitionAnimationTypes } from './TransitionAnimation.types';
export function getTransitionAnimationStyle(type: string, transition: TransitionStatus, timeout: number = 300): Partial<CSSProperties> export function getTransitionAnimationStyle(type: string, transition: TransitionStatus, timeout: number = 300): Partial<CSSProperties>
{ {
console.log(type, transition, timeout);
switch(type) switch(type)
{ {
case TransitionAnimationTypes.BOUNCE: case TransitionAnimationTypes.BOUNCE:
@ -94,7 +93,6 @@ export function getTransitionAnimationStyle(type: string, transition: Transition
default: default:
return {} return {}
case ENTERING: case ENTERING:
console.log('ya????')
return { return {
animationName: `fadeIn`, animationName: `fadeIn`,
animationDuration: `${ timeout }ms` animationDuration: `${ timeout }ms`

View File

@ -32,7 +32,7 @@ export class RoomWidgetUpdateInfostandPetEvent extends RoomWidgetUpdateInfostand
public saddle: boolean = false; public saddle: boolean = false;
public rider: boolean = false; public rider: boolean = false;
public breedable: boolean = false; public breedable: boolean = false;
public Str_4460: number[] = []; public skillTresholds: number[] = [];
public publiclyRideable: number = 0; public publiclyRideable: number = 0;
public fullyGrown: boolean = false; public fullyGrown: boolean = false;
public dead: boolean = false; public dead: boolean = false;

View File

@ -1,4 +1,4 @@
import { IFurnitureData, Nitro, NitroEvent, ObjectDataFactory, PetFigureData, PetType, RoomAdsUpdateComposer, RoomControllerLevel, RoomModerationParser, RoomObjectCategory, RoomObjectOperationType, RoomObjectType, RoomObjectVariable, RoomSessionPetInfoUpdateEvent, RoomSessionUserBadgesEvent, RoomTradingLevelEnum, RoomUnitDropHandItemComposer, RoomUnitGiveHandItemComposer, RoomUnitGiveHandItemPetComposer, RoomUserData, RoomWidgetEnumItemExtradataParameter, SecurityLevel, Vector3d } from 'nitro-renderer'; import { IFurnitureData, Nitro, NitroEvent, ObjectDataFactory, PetFigureData, PetType, RoomAdsUpdateComposer, RoomControllerLevel, RoomModerationSettings, RoomObjectCategory, RoomObjectOperationType, RoomObjectType, RoomObjectVariable, RoomSessionPetInfoUpdateEvent, RoomSessionUserBadgesEvent, RoomTradingLevelEnum, RoomUnitDropHandItemComposer, RoomUnitGiveHandItemComposer, RoomUnitGiveHandItemPetComposer, RoomUserData, RoomWidgetEnumItemExtradataParameter, SecurityLevel, Vector3d } from 'nitro-renderer';
import { GetConnection, GetRoomEngine, GetSessionDataManager, IsOwnerOfFurniture } from '../../../api'; import { GetConnection, GetRoomEngine, GetSessionDataManager, IsOwnerOfFurniture } from '../../../api';
import { LocalizeText } from '../../../utils/LocalizeText'; import { LocalizeText } from '../../../utils/LocalizeText';
import { RoomWidgetObjectNameEvent, RoomWidgetUpdateEvent, RoomWidgetUpdateInfostandFurniEvent, RoomWidgetUpdateInfostandPetEvent, RoomWidgetUpdateInfostandRentableBotEvent, RoomWidgetUpdateInfostandUserEvent } from '../events'; import { RoomWidgetObjectNameEvent, RoomWidgetUpdateEvent, RoomWidgetUpdateInfostandFurniEvent, RoomWidgetUpdateInfostandPetEvent, RoomWidgetUpdateInfostandRentableBotEvent, RoomWidgetUpdateInfostandUserEvent } from '../events';
@ -498,14 +498,14 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
{ {
switch(tradeMode) switch(tradeMode)
{ {
case RoomTradingLevelEnum._Str_14475: { case RoomTradingLevelEnum.ROOM_CONTROLLER_REQUIRED: {
const roomController = ((event.roomControllerLevel !== RoomControllerLevel.NONE) && (event.roomControllerLevel !== RoomControllerLevel.GUILD_MEMBER)); const roomController = ((event.roomControllerLevel !== RoomControllerLevel.NONE) && (event.roomControllerLevel !== RoomControllerLevel.GUILD_MEMBER));
const targetController = ((event.targetRoomControllerLevel !== RoomControllerLevel.NONE) && (event.targetRoomControllerLevel !== RoomControllerLevel.GUILD_MEMBER)); const targetController = ((event.targetRoomControllerLevel !== RoomControllerLevel.NONE) && (event.targetRoomControllerLevel !== RoomControllerLevel.GUILD_MEMBER));
event.canTrade = (roomController || targetController); event.canTrade = (roomController || targetController);
break; break;
} }
case RoomTradingLevelEnum._Str_9173: case RoomTradingLevelEnum.NO_TRADING:
event.canTrade = true; event.canTrade = true;
break; break;
default: default:
@ -518,7 +518,7 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
if(isShuttingDown) event.canTradeReason = RoomWidgetUpdateInfostandUserEvent.TRADE_REASON_SHUTDOWN; if(isShuttingDown) event.canTradeReason = RoomWidgetUpdateInfostandUserEvent.TRADE_REASON_SHUTDOWN;
if(tradeMode !== RoomTradingLevelEnum._Str_9173) event.canTradeReason = RoomWidgetUpdateInfostandUserEvent.TRADE_REASON_NO_TRADING; if(tradeMode !== RoomTradingLevelEnum.FREE_TRADING) event.canTradeReason = RoomWidgetUpdateInfostandUserEvent.TRADE_REASON_NO_TRADING;
// const _local_12 = GetSessionDataManager().userId; // const _local_12 = GetSessionDataManager().userId;
// _local_13 = GetSessionDataManager()._Str_18437(_local_12); // _local_13 = GetSessionDataManager()._Str_18437(_local_12);
@ -590,7 +590,7 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
private processPetInfoEvent(event: RoomSessionPetInfoUpdateEvent): void private processPetInfoEvent(event: RoomSessionPetInfoUpdateEvent): void
{ {
const petData = event._Str_24727; const petData = event.petInfo;
if(!petData) return; if(!petData) return;
@ -604,7 +604,7 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
if(figure.typeId === PetType.MONSTERPLANT) if(figure.typeId === PetType.MONSTERPLANT)
{ {
if(petData.level >= petData._Str_20651) posture = 'std'; if(petData.level >= petData.adultLevel) posture = 'std';
else posture = ('grw' + petData.level); else posture = ('grw' + petData.level);
} }
@ -639,7 +639,7 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
infostandEvent.fullyGrown = petData.fullyGrown; infostandEvent.fullyGrown = petData.fullyGrown;
infostandEvent.dead = petData.dead; infostandEvent.dead = petData.dead;
infostandEvent.rarityLevel = petData.rarityLevel; infostandEvent.rarityLevel = petData.rarityLevel;
infostandEvent.Str_4460 = petData._Str_3307; infostandEvent.skillTresholds = petData.skillTresholds;
infostandEvent.canRemovePet = false; infostandEvent.canRemovePet = false;
infostandEvent.publiclyRideable = petData.publiclyRideable; infostandEvent.publiclyRideable = petData.publiclyRideable;
infostandEvent.maximumTimeToLive = petData.maximumTimeToLive; infostandEvent.maximumTimeToLive = petData.maximumTimeToLive;
@ -668,11 +668,11 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
private canBeMuted(event: RoomWidgetUpdateInfostandUserEvent): boolean private canBeMuted(event: RoomWidgetUpdateInfostandUserEvent): boolean
{ {
const checkSetting = (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationParser) => const checkSetting = (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationSettings) =>
{ {
switch(moderation.allowMute) switch(moderation.allowMute)
{ {
case RoomModerationParser._Str_5047: case RoomModerationSettings.MODERATION_LEVEL_USER_WITH_RIGHTS:
return this.checkGuildSetting(event); return this.checkGuildSetting(event);
default: default:
return (event.roomControllerLevel >= RoomControllerLevel.ROOM_OWNER); return (event.roomControllerLevel >= RoomControllerLevel.ROOM_OWNER);
@ -684,13 +684,13 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
private canBeKicked(event: RoomWidgetUpdateInfostandUserEvent): boolean private canBeKicked(event: RoomWidgetUpdateInfostandUserEvent): boolean
{ {
const checkSetting = (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationParser) => const checkSetting = (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationSettings) =>
{ {
switch(moderation.allowKick) switch(moderation.allowKick)
{ {
case RoomModerationParser._Str_11537: case RoomModerationSettings.MODERATION_LEVEL_ALL:
return true; return true;
case RoomModerationParser._Str_5047: case RoomModerationSettings.MODERATION_LEVEL_USER_WITH_RIGHTS:
return this.checkGuildSetting(event); return this.checkGuildSetting(event);
default: default:
return (event.roomControllerLevel >= RoomControllerLevel.ROOM_OWNER); return (event.roomControllerLevel >= RoomControllerLevel.ROOM_OWNER);
@ -702,11 +702,11 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
private canBeBanned(event: RoomWidgetUpdateInfostandUserEvent): boolean private canBeBanned(event: RoomWidgetUpdateInfostandUserEvent): boolean
{ {
const checkSetting = (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationParser) => const checkSetting = (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationSettings) =>
{ {
switch(moderation.allowBan) switch(moderation.allowBan)
{ {
case RoomModerationParser._Str_5047: case RoomModerationSettings.MODERATION_LEVEL_USER_WITH_RIGHTS:
return this.checkGuildSetting(event); return this.checkGuildSetting(event);
default: default:
return (event.roomControllerLevel >= RoomControllerLevel.ROOM_OWNER); return (event.roomControllerLevel >= RoomControllerLevel.ROOM_OWNER);
@ -716,7 +716,7 @@ export class RoomWidgetInfostandHandler extends RoomWidgetHandler
return this.isValidSetting(event, checkSetting); return this.isValidSetting(event, checkSetting);
} }
private isValidSetting(event: RoomWidgetUpdateInfostandUserEvent, checkSetting: (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationParser) => boolean): boolean private isValidSetting(event: RoomWidgetUpdateInfostandUserEvent, checkSetting: (event: RoomWidgetUpdateInfostandUserEvent, moderation: RoomModerationSettings) => boolean): boolean
{ {
if(!this.roomSession._Str_7411) return false; if(!this.roomSession._Str_7411) return false;

View File

@ -127,6 +127,7 @@ export const AvatarInfoWidgetView: FC<AvatarInfoWidgetViewProps> = props =>
CreateEventDispatcherHook(RoomWidgetUpdateInfostandUserEvent.PEER, eventDispatcher, onRoomWidgetUpdateInfostandEvent); CreateEventDispatcherHook(RoomWidgetUpdateInfostandUserEvent.PEER, eventDispatcher, onRoomWidgetUpdateInfostandEvent);
CreateEventDispatcherHook(RoomWidgetUpdateInfostandUserEvent.BOT, eventDispatcher, onRoomWidgetUpdateInfostandEvent); CreateEventDispatcherHook(RoomWidgetUpdateInfostandUserEvent.BOT, eventDispatcher, onRoomWidgetUpdateInfostandEvent);
CreateEventDispatcherHook(RoomWidgetUpdateInfostandRentableBotEvent.RENTABLE_BOT, eventDispatcher, onRoomWidgetUpdateInfostandEvent); CreateEventDispatcherHook(RoomWidgetUpdateInfostandRentableBotEvent.RENTABLE_BOT, eventDispatcher, onRoomWidgetUpdateInfostandEvent);
CreateEventDispatcherHook(RoomWidgetUpdateInfostandPetEvent.PET_INFO, eventDispatcher, onRoomWidgetUpdateInfostandEvent);
const onRoomWidgetUpdateDanceStatusEvent = useCallback((event: RoomWidgetUpdateDanceStatusEvent) => const onRoomWidgetUpdateDanceStatusEvent = useCallback((event: RoomWidgetUpdateDanceStatusEvent) =>
{ {
@ -165,7 +166,7 @@ export const AvatarInfoWidgetView: FC<AvatarInfoWidgetViewProps> = props =>
const userName = GetSessionDataManager().userName; const userName = GetSessionDataManager().userName;
const roomIndex = GetRoomSession().ownRoomIndex; const roomIndex = GetRoomSession().ownRoomIndex;
return <AvatarInfoWidgetDecorateView userId={ userId } userName={ userName } roomIndex={ roomIndex } />; return <AvatarInfoWidgetDecorateView userId={ userId } userName={ userName } roomIndex={ roomIndex } setIsDecorating={ setIsDecorating } />;
}, [ isDecorating ]); }, [ isDecorating ]);
const clearInfoStandEvent = useCallback(() => const clearInfoStandEvent = useCallback(() =>
@ -197,7 +198,7 @@ export const AvatarInfoWidgetView: FC<AvatarInfoWidgetViewProps> = props =>
{ {
if(RoomEnterEffect.isRunning()) return null; if(RoomEnterEffect.isRunning()) return null;
return <AvatarInfoWidgetOwnAvatarView userData={ event } isDancing={ isDancing } close={ clearInfoStandEvent } />; return <AvatarInfoWidgetOwnAvatarView userData={ event } isDancing={ isDancing } setIsDecorating={ setIsDecorating } close={ clearInfoStandEvent } />;
} }
return <AvatarInfoWidgetAvatarView userData={ event } close={ clearInfoStandEvent } />; return <AvatarInfoWidgetAvatarView userData={ event } close={ clearInfoStandEvent } />;
@ -222,7 +223,7 @@ export const AvatarInfoWidgetView: FC<AvatarInfoWidgetViewProps> = props =>
} }
return null; return null;
}, [ isGameMode, decorateView, name, infoStandEvent ]); }, [ isGameMode, decorateView, name, isDancing, infoStandEvent, clearInfoStandEvent ]);
return ( return (
<> <>

View File

@ -1,9 +1,22 @@
import { RoomObjectCategory } from 'nitro-renderer';
import { FC } from 'react'; import { FC } from 'react';
import { LocalizeText } from '../../../../../../utils/LocalizeText';
import { ContextMenuView } from '../../../context-menu/ContextMenuView';
import { ContextMenuListItemView } from '../../../context-menu/views/list-item/ContextMenuListItemView';
import { ContextMenuListView } from '../../../context-menu/views/list/ContextMenuListView';
import { AvatarInfoWidgetDecorateViewProps } from './AvatarInfoWidgetDecorateView.types'; import { AvatarInfoWidgetDecorateViewProps } from './AvatarInfoWidgetDecorateView.types';
export const AvatarInfoWidgetDecorateView: FC<AvatarInfoWidgetDecorateViewProps> = props => export const AvatarInfoWidgetDecorateView: FC<AvatarInfoWidgetDecorateViewProps> = props =>
{ {
const { userId = -1, userName = '', roomIndex = -1 } = props; const { userId = -1, userName = '', roomIndex = -1, setIsDecorating = null } = props;
return null; return (
<ContextMenuView objectId={ roomIndex } category={ RoomObjectCategory.UNIT } onClose={ null }>
<ContextMenuListView>
<ContextMenuListItemView onClick={ event => setIsDecorating(false) }>
{ LocalizeText('widget.avatar.stop_decorating') }
</ContextMenuListItemView>
</ContextMenuListView>
</ContextMenuView>
)
} }

View File

@ -1,6 +1,9 @@
import { Dispatch, SetStateAction } from 'react';
export interface AvatarInfoWidgetDecorateViewProps export interface AvatarInfoWidgetDecorateViewProps
{ {
userId: number; userId: number;
userName: string; userName: string;
roomIndex: number; roomIndex: number;
setIsDecorating: Dispatch<SetStateAction<boolean>>;
} }

View File

@ -19,7 +19,7 @@ const MODE_CHANGE_LOOKS = 5;
export const AvatarInfoWidgetOwnAvatarView: FC<AvatarInfoWidgetOwnAvatarViewProps> = props => export const AvatarInfoWidgetOwnAvatarView: FC<AvatarInfoWidgetOwnAvatarViewProps> = props =>
{ {
const { userData = null, isDancing = false, close = null } = props; const { userData = null, isDancing = false, setIsDecorating = null, close = null } = props;
const [ mode, setMode ] = useState((isDancing && HasHabboClub()) ? MODE_CLUB_DANCES : MODE_NORMAL); const [ mode, setMode ] = useState((isDancing && HasHabboClub()) ? MODE_CLUB_DANCES : MODE_NORMAL);
const { roomSession = null, widgetHandler = null } = useRoomContext(); const { roomSession = null, widgetHandler = null } = useRoomContext();
@ -41,10 +41,7 @@ export const AvatarInfoWidgetOwnAvatarView: FC<AvatarInfoWidgetOwnAvatarViewProp
switch(name) switch(name)
{ {
case 'decorate': case 'decorate':
// if(this.widget.hasClub) setIsDecorating(true);
// {
// this.widget.isDecorating = true;
// }
break; break;
case 'change_looks': case 'change_looks':
break; break;
@ -104,7 +101,7 @@ export const AvatarInfoWidgetOwnAvatarView: FC<AvatarInfoWidgetOwnAvatarViewProp
} }
if(hideMenu) close(); if(hideMenu) close();
}, [ roomSession, userData, widgetHandler, close ]); }, [ roomSession, widgetHandler, userData, setIsDecorating, close ]);
const isRidingHorse = IsRidingHorse(); const isRidingHorse = IsRidingHorse();

View File

@ -1,8 +1,10 @@
import { Dispatch, SetStateAction } from 'react';
import { RoomWidgetUpdateInfostandUserEvent } from '../../../../events'; import { RoomWidgetUpdateInfostandUserEvent } from '../../../../events';
export interface AvatarInfoWidgetOwnAvatarViewProps export interface AvatarInfoWidgetOwnAvatarViewProps
{ {
userData: RoomWidgetUpdateInfostandUserEvent; userData: RoomWidgetUpdateInfostandUserEvent;
isDancing: boolean; isDancing: boolean;
setIsDecorating: Dispatch<SetStateAction<boolean>>;
close: () => void; close: () => void;
} }