5180 fichiers 38.5 Mo 0 téléchargements 427 vues mis à jour il y a 7 heures ui
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;
15Sujets
1Dépôts
20Membres
3En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser