Private
Public Access
1
0
Files
MineSeeker/assets/js/mine-seeker/hooks/useGameState.jsx

46 lines
1.5 KiB
React
Raw Normal View History

/**
* This file is part of the SplendidBear Websites' projects.
*
* Copyright (c) 2026 @ www.splendidbear.org
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
import { useState } from 'react';
import { initCells, PLAYER_DEF } from '@mine-utils';
const useGameState = () => {
const [webPlayer, setWebPlayer] = useState(null);
const [activePlayer, setActivePlayer] = useState(false);
const [overlay, setOverlay] = useState(true);
const [overlayTitle, setOverlayTitle] = useState('');
const [overlaySubTitle, setOverlaySubTitle] = useState('');
const [mines, setMines] = useState(51);
const [bombSelected, setBombSelected] = useState(false);
const [foundMines, setFoundMines] = useState(false);
const [red, setRed] = useState({ ...PLAYER_DEF });
const [blue, setBlue] = useState({ ...PLAYER_DEF });
const [cells, setCells] = useState(initCells);
const [gridReady, setGridReady] = useState(false);
const [connectionLost, setConnectionLost] = useState(false);
return {
webPlayer, setWebPlayer,
activePlayer, setActivePlayer,
overlay, setOverlay,
overlayTitle, setOverlayTitle,
overlaySubTitle, setOverlaySubTitle,
mines, setMines,
bombSelected, setBombSelected,
foundMines, setFoundMines,
red, setRed,
blue, setBlue,
cells, setCells,
gridReady, setGridReady,
connectionLost, setConnectionLost,
};
};
export default useGameState;