nitro-v36-with-renderer-v36
/
src /
hooks /
rooms /
widgets /
furniture /
useFurnitureFootballGateWidget.ts
useFurnitureFootballGateWidget.ts 1.4 Ko
Télécharger le fichier
import { GetRoomEngine, RoomEngineTriggerWidgetEvent } from '@octane/renderer';
import { useState } from 'react';
import { canEditFootballGate, GetRoomSession, IsAnyRoomController } from '../../../../api';
import { useOctaneEvent } from '../../../events';
import { useFurniRemovedEvent } from '../../engine';
const useFurnitureFootballGateWidgetState = () => {
const [objectId, setObjectId] = useState(-1);
const [category, setCategory] = useState(-1);
const onClose = () => {
setObjectId(-1);
setCategory(-1);
};
useOctaneEvent<RoomEngineTriggerWidgetEvent>(RoomEngineTriggerWidgetEvent.REQUEST_CLOTHING_CHANGE, (event) => {
const roomObject = GetRoomEngine().getRoomObject(event.roomId, event.objectId, event.category);
const roomSession = GetRoomSession();
// AIR FurnitureClothingChangeWidgetHandler: room owner, any-room controller or rights in the room.
if (!roomObject || !canEditFootballGate(roomSession?.isRoomOwner, IsAnyRoomController(), roomSession?.controllerLevel)) return;
setObjectId(event.objectId);
setCategory(event.category);
});
useFurniRemovedEvent(objectId !== -1 && category !== -1, (event) => {
if (event.id !== objectId || event.category !== category) return;
onClose();
});
return { objectId, setObjectId, onClose };
};
export const useFurnitureFootballGateWidget = useFurnitureFootballGateWidgetState;
