minecraft-clone / src /stores /gameStore.ts
TomatitoToho's picture
Upload src/stores/gameStore.ts with huggingface_hub
f139938 verified
Raw
History Blame Contribute Delete
947 Bytes
'use client'
import { create } from 'zustand'
interface GameStore {
tick: number
tps: number
fps: number
gamemode: 'survival' | 'creative' | 'adventure' | 'spectator'
difficulty: 'peaceful' | 'easy' | 'normal' | 'hard'
paused: boolean
loading: boolean
debug: boolean
setLoading: (v: boolean) => void
setPaused: (v: boolean) => void
setDebug: (v: boolean) => void
setGamemode: (v: GameStore['gamemode']) => void
updateFPS: (fps: number) => void
tickGame: () => void
}
export const useGameStore = create<GameStore>((set, get) => ({
tick: 0,
tps: 20,
fps: 0,
gamemode: 'creative',
difficulty: 'normal',
paused: false,
loading: true,
debug: false,
setLoading: (v) => set({ loading: v }),
setPaused: (v) => set({ paused: v }),
setDebug: (v) => set({ debug: v }),
setGamemode: (v) => set({ gamemode: v }),
updateFPS: (fps) => set({ fps }),
tickGame: () => set(s => ({ tick: s.tick + 1 })),
}))