mirror of
https://github.com/billsonnn/nitro-react.git
synced 2024-11-22 22:30:52 +01:00
Update wired furni selector
This commit is contained in:
parent
42cdd0ae4f
commit
61d1c4b379
@ -1,6 +1,4 @@
|
||||
import { IFurnitureData, ObjectDataFactory, PetFigureData, PetType, RoomControllerLevel, RoomModerationSettings, RoomObjectCategory, RoomObjectType, RoomObjectVariable, RoomPetData, RoomTradingLevelEnum, RoomUserData, RoomWidgetEnumItemExtradataParameter, Vector3d } from '@nitrots/nitro-renderer';
|
||||
import { WiredSelectObjectEvent } from '../../../events';
|
||||
import { DispatchUiEvent } from '../../events';
|
||||
import { GetNitroInstance, GetRoomEngine, GetRoomSession, GetSessionDataManager, IsOwnerOfFurniture } from '../../nitro';
|
||||
import { LocalizeText } from '../../utils';
|
||||
import { AvatarInfoFurni } from './AvatarInfoFurni';
|
||||
@ -133,8 +131,6 @@ export class AvatarInfoUtilities
|
||||
furniInfo.availableForBuildersClub = furnitureData.availableForBuildersClub;
|
||||
furniInfo.tileSizeX = furnitureData.tileSizeX;
|
||||
furniInfo.tileSizeY = furnitureData.tileSizeY;
|
||||
|
||||
DispatchUiEvent(new WiredSelectObjectEvent(furniInfo.id, furniInfo.category));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4,4 +4,3 @@ export * from './help';
|
||||
export * from './inventory';
|
||||
export * from './room-widgets';
|
||||
export * from './room-widgets/thumbnail';
|
||||
export * from './wired';
|
||||
|
@ -1,6 +0,0 @@
|
||||
import { NitroEvent } from '@nitrots/nitro-renderer';
|
||||
|
||||
export class WiredEvent extends NitroEvent
|
||||
{
|
||||
public static SAVE_WIRED: string = 'WE_SAVE_WIRED';
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
import { WiredEvent } from './WiredEvent';
|
||||
|
||||
export class WiredSelectObjectEvent extends WiredEvent
|
||||
{
|
||||
public static SELECT_OBJECT: string = 'WE_SELECT_OBJECT';
|
||||
|
||||
private _objectId: number;
|
||||
private _category: number;
|
||||
|
||||
constructor(objectId = -1, category = -1)
|
||||
{
|
||||
super(WiredSelectObjectEvent.SELECT_OBJECT);
|
||||
|
||||
this._objectId = objectId;
|
||||
this._category = category;
|
||||
}
|
||||
|
||||
public get objectId(): number
|
||||
{
|
||||
return this._objectId;
|
||||
}
|
||||
|
||||
public get category(): number
|
||||
{
|
||||
return this._category;
|
||||
}
|
||||
}
|
@ -1,2 +0,0 @@
|
||||
export * from './WiredEvent';
|
||||
export * from './WiredSelectObjectEvent';
|
@ -3,6 +3,7 @@ import { useEffect, useState } from 'react';
|
||||
import { AvatarInfoFurni, AvatarInfoName, AvatarInfoPet, AvatarInfoRentableBot, AvatarInfoUser, AvatarInfoUtilities, CanManipulateFurniture, FurniCategory, GetRoomEngine, GetSessionDataManager, IAvatarInfo, IsOwnerOfFurniture, RoomWidgetUpdateRoomObjectEvent, UseProductItem } from '../../../api';
|
||||
import { useRoomEngineEvent, useRoomSessionManagerEvent, useUiEvent } from '../../events';
|
||||
import { useFriends } from '../../friends';
|
||||
import { useWired } from '../../wired';
|
||||
import { useObjectDeselectedEvent, useObjectRollOutEvent, useObjectRollOverEvent, useObjectSelectedEvent } from '../engine';
|
||||
import { useRoom } from '../useRoom';
|
||||
|
||||
@ -16,6 +17,7 @@ const useAvatarInfoWidgetState = () =>
|
||||
const [ pendingPetId, setPendingPetId ] = useState<number>(-1);
|
||||
const [ isDecorating, setIsDecorating ] = useState(false);
|
||||
const { friends = [] } = useFriends();
|
||||
const { selectObjectForWired = null } = useWired();
|
||||
const { roomSession = null } = useRoom();
|
||||
|
||||
const removeNameBubble = (index: number) =>
|
||||
@ -68,7 +70,9 @@ const useAvatarInfoWidgetState = () =>
|
||||
{
|
||||
case RoomObjectCategory.FLOOR:
|
||||
case RoomObjectCategory.WALL:
|
||||
info = AvatarInfoUtilities.getFurniInfo(objectId, category)
|
||||
info = AvatarInfoUtilities.getFurniInfo(objectId, category);
|
||||
|
||||
if(info) selectObjectForWired(objectId, category);
|
||||
break;
|
||||
case RoomObjectCategory.UNIT: {
|
||||
const userData = roomSession.userDataManager.getUserDataByIndex(objectId);
|
||||
|
@ -2,8 +2,7 @@ import { ConditionDefinition, Triggerable, TriggerDefinition, UpdateActionMessag
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useBetween } from 'use-between';
|
||||
import { IsOwnerOfFloorFurniture, LocalizeText, SendMessageComposer, WiredSelectionVisualizer } from '../../api';
|
||||
import { WiredSelectObjectEvent } from '../../events';
|
||||
import { useMessageEvent, useUiEvent } from '../events';
|
||||
import { useMessageEvent } from '../events';
|
||||
import { useNotification } from '../notification';
|
||||
|
||||
const useWiredState = () =>
|
||||
@ -50,37 +49,35 @@ const useWiredState = () =>
|
||||
}
|
||||
}
|
||||
|
||||
useUiEvent<WiredSelectObjectEvent>(WiredSelectObjectEvent.SELECT_OBJECT, event =>
|
||||
const selectObjectForWired = (objectId: number, category: number) =>
|
||||
{
|
||||
if(!trigger) return;
|
||||
|
||||
const furniId = event.objectId;
|
||||
|
||||
if(furniId <= 0) return;
|
||||
if(objectId <= 0) return;
|
||||
|
||||
setFurniIds(prevValue =>
|
||||
{
|
||||
const newFurniIds = [ ...prevValue ];
|
||||
|
||||
const index = prevValue.indexOf(furniId);
|
||||
const index = prevValue.indexOf(objectId);
|
||||
|
||||
if(index >= 0)
|
||||
{
|
||||
newFurniIds.splice(index, 1);
|
||||
|
||||
WiredSelectionVisualizer.hide(furniId);
|
||||
WiredSelectionVisualizer.hide(objectId);
|
||||
}
|
||||
|
||||
else if(newFurniIds.length < trigger.maximumItemSelectionCount)
|
||||
{
|
||||
newFurniIds.push(furniId);
|
||||
newFurniIds.push(objectId);
|
||||
|
||||
WiredSelectionVisualizer.show(furniId);
|
||||
WiredSelectionVisualizer.show(objectId);
|
||||
}
|
||||
|
||||
return newFurniIds;
|
||||
});
|
||||
}, !!trigger);
|
||||
}
|
||||
|
||||
useMessageEvent<WiredSaveSuccessEvent>(WiredSaveSuccessEvent, event =>
|
||||
{
|
||||
@ -128,7 +125,7 @@ const useWiredState = () =>
|
||||
}
|
||||
}, [ trigger ]);
|
||||
|
||||
return { trigger, setTrigger, intParams, setIntParams, stringParam, setStringParam, furniIds, setFurniIds, actionDelay, setActionDelay, saveWired };
|
||||
return { trigger, setTrigger, intParams, setIntParams, stringParam, setStringParam, furniIds, setFurniIds, actionDelay, setActionDelay, saveWired, selectObjectForWired };
|
||||
}
|
||||
|
||||
export const useWired = () => useBetween(useWiredState);
|
||||
|
Loading…
Reference in New Issue
Block a user