diff --git a/src/App.tsx b/src/App.tsx index 4a076db..f123b32 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,25 +1,16 @@ import { useState, useEffect } from "react"; import { socket } from "./socket"; -import { Object3D, Mesh } from "three"; -import { Canvas } from "@react-three/fiber"; -import { OrbitControls, useGLTF, PerspectiveCamera } from "@react-three/drei"; -import { ConnectionState } from "./components/ConnectionState"; -import { ConnectionManager } from "./components/ConnectionManager"; + +import GameCanvas from "./components/GameCanvas"; +import { Footer } from "./components/Footer"; import { JoinSession } from "./components/JoinSession"; -import { Events } from "./components/Events"; import { Game } from "./types/gameTypes"; -import Action from "./components/Action"; -import CardStack from "./components/CardStackOld"; -import DepositCards from "./components/DepositCardsOld"; -import CardCache from "./components/CardCacheOld"; import { extractCurrentPlayer } from "./helpers"; -import PlayArea from "./components/PlayArea"; -import Text from "./global/Text"; -import Button from "./global/Button"; +import MessageDisplay from "./components/MessageDisplay"; export default function App() { const [isConnected, setIsConnected] = useState(socket.connected); - const [messageEvents, setMessageEvents] = useState([]); + // const [messageEvents, setMessageEvents] = useState([]); const [session, setSession] = useState(""); const [clientsInRoom, setClientsInRoom] = useState(0); const [gameData, setGameData] = useState(null); @@ -28,20 +19,7 @@ export default function App() { const showStartGameButton = session !== "" && clientsInRoom >= 2; const showNextGameButton = gameData?.phase === "new round"; - const playersData = extractCurrentPlayer(gameData); - - function startGame() { - socket.emit("new-game", { sessionId: session }); - } - - function nextGame() { - socket.emit("next-round", { sessionId: session }); - } - - function clickCard(cardPosition: number) { - console.log("Clicked card", cardPosition); - socket.emit("click-card", cardPosition); - } + const currentPlayerData = extractCurrentPlayer(gameData); function setTempMessage(message: string) { setMessageDisplay(message); @@ -65,7 +43,7 @@ export default function App() { function onMessageEvent(message: string) { setTempMessage(message); - setMessageEvents((previous) => [...previous, message]); + // setMessageEvents((previous) => [...previous, message]); } function onGameUpdate(gameData: Game) { @@ -87,130 +65,27 @@ export default function App() { }; }, []); - // Three-Fiber - const tableModel = useGLTF("/models/table.glb"); - const heightProportion = 1.25; - return ( -
-
- - new Vector3(0, 0, 0)} - /> - - - - - - - { - if (node instanceof Mesh) { - // node.castShadow = true; - node.receiveShadow = true; - } - }} - /> - - - - - -
- {messageDispaly && messageDispaly !== "" &&

{messageDispaly}

} - - Player ID: {playersData?.id} - Player Name: {playersData?.name} - Player Round Points: {playersData?.roundPoints} - Player Total Points: {playersData?.totalPoints} - - - {showStartGameButton && } - {showNextGameButton && } -
-

############### OLD INTERFACE ###############

- - {gameData && - gameData.players.map((playerData, index) => ( -
-

Player ID: {playerData.id}

-

Player Name: {playerData.name}

-

Player Round Points: {playerData.roundPoints}

-

Player Total Points: {playerData.totalPoints}

- - - - - - - - - - - {Array(Math.ceil(playerData.cards.length / 4)) - .fill(null) - .map((_, rowIndex) => ( - - {Array(4) - .fill(null) - .map((_, colIndex) => { - const card = - playerData.cards[rowIndex * 4 + colIndex]; - return ( - - ); - })} - - ))} - -
Column 1Column 2Column 3Column 4
- {card && ( - - clickCard(rowIndex * 4 + colIndex) - } - > - {card.value} - - )} -
-
- - - -
-
- ))} -
-
- -
+
+ {!gameData && ( + + )} + + + {session !== "" && ( +
+ )}
); } diff --git a/src/components/ConnectionState.tsx b/src/components/ConnectionState.tsx deleted file mode 100644 index da53b2b..0000000 --- a/src/components/ConnectionState.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { FC } from "react"; -import { socket } from "../socket"; - -import Text from "../global/Text"; - -type ConnectionStateProps = { - isConnected: boolean; - session: string; - clientsInRoom: number; -}; - -export const ConnectionState: FC = ({ - isConnected, - session, - clientsInRoom, -}) => { - return ( -
- - State: {"" + isConnected}
- Session: {session}
- Players: {clientsInRoom}
- SocketId: {socket.id} -
-
- ); -}; diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 0000000..953b379 --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,40 @@ +import { FC } from "react"; +import { socket } from "../socket"; + +import Text from "../global/Text"; +import Button from "../global/Button"; +import { Player } from "../types/gameTypes"; + +type Footer = { + isConnected: boolean; + session: string; + clientsInRoom: number; + currentPlayerData: Player | undefined; + showNextGameButton: boolean; +}; + +export const Footer: FC