|
|
|
@ -1,11 +1,14 @@
|
|
|
|
|
import create from 'zustand'
|
|
|
|
|
import { PointerLockControls } from '@react-three/drei'
|
|
|
|
|
import { Socket } from 'socket.io-client'
|
|
|
|
|
|
|
|
|
|
type State = {
|
|
|
|
|
pointerLockControls: PointerLockControls | undefined
|
|
|
|
|
pointerLocked: boolean
|
|
|
|
|
setPointerLockStatus: (status: boolean) => void
|
|
|
|
|
setPointerLockControls: (controls: PointerLockControls) => void
|
|
|
|
|
socket: null | Socket
|
|
|
|
|
setSocket: (socket: Socket | null) => void
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const useStore = create<State>((set) => ({
|
|
|
|
@ -13,6 +16,8 @@ const useStore = create<State>((set) => ({
|
|
|
|
|
pointerLocked: false,
|
|
|
|
|
setPointerLockStatus: (status) => set(() => ({ pointerLocked: status })),
|
|
|
|
|
setPointerLockControls: (controls) => set(() => ({ pointerLockControls: controls })),
|
|
|
|
|
socket: null,
|
|
|
|
|
setSocket: (socket) => set(() => ({ socket })),
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
export default useStore
|