mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-20 07:26:19 +00:00
🆙 Init V3
This commit is contained in:
@@ -0,0 +1 @@
|
||||
export * from './useCamera';
|
||||
@@ -0,0 +1,39 @@
|
||||
import { GetRoomCameraWidgetManager, InitCameraMessageEvent, IRoomCameraWidgetEffect, RequestCameraConfigurationComposer, RoomCameraWidgetManagerEvent } from '@nitrots/nitro-renderer';
|
||||
import { useEffect, useState } from 'react';
|
||||
import { useBetween } from 'use-between';
|
||||
import { CameraPicture, SendMessageComposer } from '../../api';
|
||||
import { useMessageEvent, useNitroEvent } from '../events';
|
||||
|
||||
const useCameraState = () =>
|
||||
{
|
||||
const [ availableEffects, setAvailableEffects ] = useState<IRoomCameraWidgetEffect[]>([]);
|
||||
const [ cameraRoll, setCameraRoll ] = useState<CameraPicture[]>([]);
|
||||
const [ selectedPictureIndex, setSelectedPictureIndex ] = useState(-1);
|
||||
const [ myLevel, setMyLevel ] = useState(10);
|
||||
const [ price, setPrice ] = useState<{ credits: number, duckets: number, publishDucketPrice: number }>(null);
|
||||
|
||||
useNitroEvent<RoomCameraWidgetManagerEvent>(RoomCameraWidgetManagerEvent.INITIALIZED, event =>
|
||||
{
|
||||
setAvailableEffects(Array.from(GetRoomCameraWidgetManager().effects.values()));
|
||||
});
|
||||
|
||||
useMessageEvent<InitCameraMessageEvent>(InitCameraMessageEvent, event =>
|
||||
{
|
||||
const parser = event.getParser();
|
||||
|
||||
setPrice({ credits: parser.creditPrice, duckets: parser.ducketPrice, publishDucketPrice: parser.publishDucketPrice });
|
||||
});
|
||||
|
||||
useEffect(() =>
|
||||
{
|
||||
if(GetRoomCameraWidgetManager().isLoaded) return;
|
||||
|
||||
GetRoomCameraWidgetManager().init();
|
||||
|
||||
SendMessageComposer(new RequestCameraConfigurationComposer());
|
||||
}, []);
|
||||
|
||||
return { availableEffects, cameraRoll, setCameraRoll, selectedPictureIndex, setSelectedPictureIndex, myLevel, price };
|
||||
};
|
||||
|
||||
export const useCamera = () => useBetween(useCameraState);
|
||||
Reference in New Issue
Block a user