From a2f23673813c6007e642a5e3c5e28911d22811f9 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Wed, 13 May 2026 18:59:32 +0300 Subject: [PATCH] placing minimap icons within the minimap frame --- Assets/Scripts/Gui/activeGameState.lua | 2 +- activeGameState.cpp | 2 ++ inGameAppState.cpp | 1 - map.cpp | 17 ++++++++++------- mapEditorAppState.cpp | 7 +++---- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Assets/Scripts/Gui/activeGameState.lua b/Assets/Scripts/Gui/activeGameState.lua index df197a5..e03ec2c 100644 --- a/Assets/Scripts/Gui/activeGameState.lua +++ b/Assets/Scripts/Gui/activeGameState.lua @@ -29,7 +29,7 @@ end eyeIcon = 'eye.png' refIcon = 'refineds.png' minimapSize = {x = 200, y = 200} -minimapPos = {x = 0, y = res.y - minimapSize.y, z = .9} +minimapPos = {x = 0, y = res.y - minimapSize.y, z = .85} resTextScale = {x = .5, y = .5} resIconBasePath = 'Icons/Resources/' diff --git a/activeGameState.cpp b/activeGameState.cpp index 7c7b698..7dfd1a0 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -144,6 +144,8 @@ namespace battleship{ SOL_LUA_VIEW["_minimapSize"]["y"] = y; } + Map::Minimap::getSingleton()->load(); + ConcreteGuiManager::getSingleton()->readLuaScreenScript( "activeGameState.lua", buttons, diff --git a/inGameAppState.cpp b/inGameAppState.cpp index 23b23de..5c2edfd 100755 --- a/inGameAppState.cpp +++ b/inGameAppState.cpp @@ -62,7 +62,6 @@ namespace battleship{ Map *map = Map::getSingleton(); map->load(mapName); - map->loadPlayersGameObjects(); Camera *cam = Root::getSingleton()->getCamera(); cam->setPosition(Map::getSingleton()->getSpawnPoint(playerId) + Vector3(1, 1, 1) * configData::CAMERA_DISTANCE); diff --git a/map.cpp b/map.cpp index b625483..62cd5ad 100755 --- a/map.cpp +++ b/map.cpp @@ -82,9 +82,13 @@ namespace battleship{ mat->addTexUniform("diffuseMap", tex, false); sol::state_view SOL_LUA_VIEW = generateView(); - sol::table posTbl = SOL_LUA_VIEW["minimapPos"], sizeTbl = SOL_LUA_VIEW["minimapSize"]; - Vector2 minimapSize = Vector2(sizeTbl["x"], sizeTbl["y"]); - Vector3 minimapPos = Vector3(posTbl["x"], posTbl["y"], posTbl["z"]); + sol::table posTbl = SOL_LUA_VIEW["minimapPos"], + _posTbl = SOL_LUA_VIEW["_minimapPos"], + sizeTbl = SOL_LUA_VIEW["minimapSize"], + _sizeTbl = SOL_LUA_VIEW["_minimapSize"]; + + Vector2 minimapSize = Vector2((float)_sizeTbl["x"], (float)_sizeTbl["y"]); + Vector3 minimapPos = Vector3((float)_posTbl["x"], (float)posTbl["y"] + (float)_posTbl["y"], (float)posTbl["z"]); Vector3 mapSize = Map::getSingleton()->getMapSize(); Vector2 iconPos = Vector2( @@ -95,9 +99,8 @@ namespace battleship{ Quad *quad = new Quad(iconSize, false); quad->setMaterial(mat); - Node *node = new Node(minimapPos + Vector3(iconPos.x, iconPos.y, .1) - .5 * iconSize); + Node *node = new Node(minimapPos + Vector3(iconPos.x, iconPos.y, .05) - .5 * iconSize); node->attachMesh(quad); - node->setVisible(false); root->getGuiNode()->attachChild(node); return node; @@ -187,7 +190,7 @@ namespace battleship{ minimapSize.y * (camPos.z + .5 * mapSize.z) / mapSize.z ); - camIcon->setPosition(minimapButton->getPos() + Vector3(iconPos.x, iconPos.y, .1)); + camIcon->setPosition(minimapButton->getPos() + Vector3(iconPos.x, iconPos.y, .06)); } void Map::Minimap::update(){ @@ -677,7 +680,7 @@ namespace battleship{ for(int i = 0; i < numWaterbodies; i++) loadTerrainObject(i); - Minimap::getSingleton()->load(); + loadPlayersGameObjects(); } void Map::create(string mapName, Vector3 mapSize){ diff --git a/mapEditorAppState.cpp b/mapEditorAppState.cpp index 5984063..8a2f50d 100644 --- a/mapEditorAppState.cpp +++ b/mapEditorAppState.cpp @@ -63,13 +63,12 @@ namespace battleship{ generatePlane(size); } else{ - map->load(name); - int numPlayers = map->getNumSpawnPoints(); + int numPlayers = Map::getSingleton()->getNumMapSpawnPoints(name); for(int i = 0; i < numPlayers; i++) - game->addPlayer(new Player(0, 0, 0, Vector3(1, 1, 1))); + game->addPlayer(new Player(0, 0, 0, Vector3(1, float(i > 0), float(i > 1)), false, i)); - map->loadPlayersGameObjects(); + map->load(name); MeshData meshData = map->getNodeParent()->getChild(0)->getMesh(0)->getMeshBase(); int minId = 0, numVerts = 3 * meshData.numTris;