From cbd9e7d9b18299ea29f38bdf875f82a171abb3fb Mon Sep 17 00:00:00 2001 From: Ivan Date: Tue, 19 Mar 2024 16:51:52 +0800 Subject: [PATCH 1/4] display map type and name based from url params we pass a map and img params along with the sim_id in the url. for example: http://localhost:3000/?sim_id=something&map=stage&img=Southpark.jpg if the map is stage, we display the map image in full screen with agents overlaid on it. --- web/next.config.mjs | 4 +- web/public/images/maps/Southpark.jpg | Bin 0 -> 38089 bytes web/src/app/page.tsx | 14 ++++++- web/src/components/AgentSprite.tsx | 12 ++++-- web/src/components/RenderLevel.module.css | 26 ++++++++++++ web/src/components/RenderLevel.tsx | 48 ++++++++++++++++++++-- web/src/components/Sidebar.tsx | 2 +- 7 files changed, 96 insertions(+), 10 deletions(-) create mode 100644 web/public/images/maps/Southpark.jpg diff --git a/web/next.config.mjs b/web/next.config.mjs index 8f767b0..04af33a 100644 --- a/web/next.config.mjs +++ b/web/next.config.mjs @@ -9,12 +9,14 @@ if (process.env.NODE_ENV === 'production') { assetPrefix: '/replay', env: { NEXT_PUBLIC_BASE_PATH: '/replay', + NEXT_PUBLIC_CONTENT_DIRECTORY: '' }, }; } else { nextConfig = { env: { - NEXT_PUBLIC_BASE_PATH: '' + NEXT_PUBLIC_BASE_PATH: '', + NEXT_PUBLIC_CONTENT_DIRECTORY: '' } }; } diff --git a/web/public/images/maps/Southpark.jpg b/web/public/images/maps/Southpark.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ca6979f574031bcbcbe1d7e3c2e9215a76851df3 GIT binary patch literal 38089 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 z%0D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 + const [map, setMapName] = useState(null); + const [img, setImgName] = useState(null); useEffect(() => { const params = new URLSearchParams(window.location.search); const sim_id = params.get('sim_id'); + const map = params.get('map'); + const img = params.get('img'); if (sim_id) { setSimId(sim_id); } + if (map) { + setMapName(map); + } + if (img) { + setImgName(img); + } }, []); - + if (!simId) { return null; } - return ; + return ; } diff --git a/web/src/components/AgentSprite.tsx b/web/src/components/AgentSprite.tsx index 0fdc21f..ea6bbd7 100644 --- a/web/src/components/AgentSprite.tsx +++ b/web/src/components/AgentSprite.tsx @@ -1,9 +1,15 @@ import React from "react"; import styles from './Agent.module.css'; -const AgentSprite: React.FC<{ agentName: string, isTalking: boolean, isThinking: boolean, status: string }> = ({ agentName, isTalking, isThinking, status }) => { +const AgentSprite: React.FC<{ agentName: string, isTalking: boolean, isThinking: boolean, status: string, map: string }> = ({ agentName, isTalking, isThinking, status, map }) => { let agentImage = `${process.env.NEXT_PUBLIC_BASE_PATH}/images/characters/${agentName}.png`; console.log("AgentSpriteeee status = ", status); + + let size = { width: 32, height: 32 }; + if (map == "stage") { + size = { width: 150, height: 150 }; // Set a different size for agents if map is "stage" + } + // Check if agentName matches "Zombie" using regex if (/Zombie/.test(agentName)) { agentImage = `${process.env.NEXT_PUBLIC_BASE_PATH}/images/characters/Zombie_1.png`; @@ -40,8 +46,8 @@ const AgentSprite: React.FC<{ agentName: string, isTalking: boolean, isThinking: {agentName} ); diff --git a/web/src/components/RenderLevel.module.css b/web/src/components/RenderLevel.module.css index db495d3..6e0070b 100644 --- a/web/src/components/RenderLevel.module.css +++ b/web/src/components/RenderLevel.module.css @@ -50,3 +50,29 @@ .sidebarVisible { width: 200px; /*calc(var(--game-viewport-width) * 0.30);*/ } + +.stageImg { + width: 100vw; + height: 100vh; + object-fit: "cover"; +} + +.agentContainer { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + flex-wrap: nowrap; + /* Prevent wrapping */ + justify-content: center; + align-items: flex-end; + padding: 150px; +} + +.agentItem { + margin-right: 20px; + /* Adjust spacing between agents */ + position: relative; +} diff --git a/web/src/components/RenderLevel.tsx b/web/src/components/RenderLevel.tsx index b645c9e..61c4101 100644 --- a/web/src/components/RenderLevel.tsx +++ b/web/src/components/RenderLevel.tsx @@ -28,7 +28,7 @@ async function getData(sim_id: string, fromIndex: number) { } // eslint-disable-next-line @typescript-eslint/no-explicit-any -const RenderLevel: React.FC<{ simId: string }> = ({ simId }) => { +const RenderLevel: React.FC<{ simId: string, map?: string | null, img?: string | null }> = ({ simId, map, img }) => { const [isPlaying, setIsPlaying] = useState(true); const [followAgent, setFollowAgent] = useState(undefined); const [levelState, setLevelState] = useState({ stepId: 0, substepId: 0, agents: [] }); @@ -100,19 +100,61 @@ const RenderLevel: React.FC<{ simId: string }> = ({ simId }) => { style={style} className={styles.placement} onClick={() => setFollowAgent(agent)}> - + ); }); }; + if (map == "stage") { + return ( +
+ Stage Map +
+ {/* Hardcoded agents for now */} +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ ); + } + return (
- Default Map + Default Map <> {renderAgents()} diff --git a/web/src/components/Sidebar.tsx b/web/src/components/Sidebar.tsx index ac055a5..a46170d 100644 --- a/web/src/components/Sidebar.tsx +++ b/web/src/components/Sidebar.tsx @@ -131,7 +131,7 @@ const Sidebar: React.FC = (
{renderControls()} {agentPlacement &&
- +
{agentPlacement.agentName}