Spaces:
Sleeping
Sleeping
| '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 })), | |
| })) | |