ADD: Add Stone Resource
This commit is contained in:
parent
5213987719
commit
4ae321db6e
@ -30,6 +30,7 @@ void GameLayer::onAttach()
|
|||||||
//Map Generation
|
//Map Generation
|
||||||
hexModelDefault = std::make_shared<TexturedModel>(HexModelFactory::createTexturedHexModel(loader, 10.0f, RessourceType::NONE));
|
hexModelDefault = std::make_shared<TexturedModel>(HexModelFactory::createTexturedHexModel(loader, 10.0f, RessourceType::NONE));
|
||||||
hexModelWood = std::make_shared<TexturedModel>(HexModelFactory::createTexturedHexModel(loader, 10.0f, RessourceType::WOOD));
|
hexModelWood = std::make_shared<TexturedModel>(HexModelFactory::createTexturedHexModel(loader, 10.0f, RessourceType::WOOD));
|
||||||
|
hexModelStone = std::make_shared<TexturedModel>(HexModelFactory::createTexturedHexModel(loader, 10.0f, RessourceType::STONE));
|
||||||
map = std::make_unique<Map>();
|
map = std::make_unique<Map>();
|
||||||
|
|
||||||
AssetManager::loadModel("lowPolyTree", "assets/trees/lowPolyTree.obj", "assets/trees/lowPolyTree.png", loader);
|
AssetManager::loadModel("lowPolyTree", "assets/trees/lowPolyTree.obj", "assets/trees/lowPolyTree.png", loader);
|
||||||
@ -72,7 +73,7 @@ void GameLayer::onUpdate()
|
|||||||
tile.isHighlighted = highlight;
|
tile.isHighlighted = highlight;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<HexRenderData> terrainRenderData = map->getTerrainRenderData(hexModelDefault, hexModelWood);
|
std::vector<HexRenderData> terrainRenderData = map->getTerrainRenderData(hexModelDefault, hexModelWood, hexModelStone);
|
||||||
|
|
||||||
|
|
||||||
for (auto& renderData : terrainRenderData) {
|
for (auto& renderData : terrainRenderData) {
|
||||||
|
|||||||
@ -34,6 +34,7 @@ private:
|
|||||||
|
|
||||||
std::shared_ptr<TexturedModel> hexModelDefault;
|
std::shared_ptr<TexturedModel> hexModelDefault;
|
||||||
std::shared_ptr<TexturedModel> hexModelWood;
|
std::shared_ptr<TexturedModel> hexModelWood;
|
||||||
|
std::shared_ptr<TexturedModel> hexModelStone;
|
||||||
|
|
||||||
std::vector<std::shared_ptr<Entity>> tileEntities;
|
std::vector<std::shared_ptr<Entity>> tileEntities;
|
||||||
|
|
||||||
|
|||||||
@ -54,8 +54,10 @@ TexturedModel HexModelFactory::createTexturedHexModel(Loader &loader, float radi
|
|||||||
std::shared_ptr<ModelTexture> modelTexture;
|
std::shared_ptr<ModelTexture> modelTexture;
|
||||||
if (ressourceType == RessourceType::NONE) {
|
if (ressourceType == RessourceType::NONE) {
|
||||||
modelTexture = std::make_shared<ModelTexture>(loader.loadTextureFromFile("assets/hex/white.png"));
|
modelTexture = std::make_shared<ModelTexture>(loader.loadTextureFromFile("assets/hex/white.png"));
|
||||||
} else {
|
} else if (ressourceType == RessourceType::WOOD){
|
||||||
modelTexture = std::make_shared<ModelTexture>(loader.loadTextureFromFile("assets/hex/wood/Ground053_1K-JPG_Color.jpg"));
|
modelTexture = std::make_shared<ModelTexture>(loader.loadTextureFromFile("assets/hex/wood/Ground053_1K-JPG_Color.jpg"));
|
||||||
|
} else if (ressourceType == RessourceType::STONE) {
|
||||||
|
modelTexture = std::make_shared<ModelTexture>(loader.loadTextureFromFile("assets/hex/rock/Rocks011_1K-JPG_Color.jpg"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return {std::make_shared<RawModel>(rawModel), std::move(modelTexture)};
|
return {std::make_shared<RawModel>(rawModel), std::move(modelTexture)};
|
||||||
|
|||||||
@ -14,7 +14,8 @@
|
|||||||
|
|
||||||
enum class RessourceType {
|
enum class RessourceType {
|
||||||
NONE,
|
NONE,
|
||||||
WOOD
|
WOOD,
|
||||||
|
STONE
|
||||||
};
|
};
|
||||||
|
|
||||||
struct HexTile {
|
struct HexTile {
|
||||||
|
|||||||
@ -4,15 +4,18 @@
|
|||||||
|
|
||||||
#include "Map.h"
|
#include "Map.h"
|
||||||
|
|
||||||
std::vector<HexRenderData> Map::getTerrainRenderData(const std::shared_ptr<TexturedModel>& hexModel, const std::shared_ptr<TexturedModel>& woodModel) {
|
std::vector<HexRenderData> Map::getTerrainRenderData(const std::shared_ptr<TexturedModel>& hexModel,
|
||||||
|
const std::shared_ptr<TexturedModel>& woodModel, const std::shared_ptr<TexturedModel>& stoneModel) {
|
||||||
std::vector<HexRenderData> renderData;
|
std::vector<HexRenderData> renderData;
|
||||||
renderData.reserve(tiles.size());
|
renderData.reserve(tiles.size());
|
||||||
for (auto& tile : tiles) {
|
for (auto& tile : tiles) {
|
||||||
HexRenderData data;
|
HexRenderData data;
|
||||||
if (tile.resourceType == RessourceType::WOOD) {
|
if (tile.resourceType == RessourceType::WOOD) {
|
||||||
data = HexRenderData(woodModel, tile.worldPos, tile.isHighlighted);
|
data = HexRenderData(woodModel, tile.worldPos, tile.isHighlighted);
|
||||||
} else {
|
} else if (tile.resourceType == RessourceType::NONE) {
|
||||||
data = HexRenderData(hexModel, tile.worldPos, tile.isHighlighted);
|
data = HexRenderData(hexModel, tile.worldPos, tile.isHighlighted);
|
||||||
|
} else if (tile.resourceType == RessourceType::STONE) {
|
||||||
|
data =HexRenderData(stoneModel, tile.worldPos, tile.isHighlighted);
|
||||||
}
|
}
|
||||||
renderData.push_back(data);
|
renderData.push_back(data);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,8 @@ public:
|
|||||||
std::vector<Area> areas;
|
std::vector<Area> areas;
|
||||||
std::vector<HexTile> tiles;
|
std::vector<HexTile> tiles;
|
||||||
|
|
||||||
std::vector<HexRenderData> getTerrainRenderData(const std::shared_ptr<TexturedModel> &hexModel, const std::shared_ptr<TexturedModel> &woodModel);
|
std::vector<HexRenderData> getTerrainRenderData(const std::shared_ptr<TexturedModel> &hexModel, const std::shared_ptr<TexturedModel> &woodModel, const std::shared_ptr<
|
||||||
|
TexturedModel> &stoneModel);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -42,6 +42,8 @@ public:
|
|||||||
ForestTileGenerator forestTileGenerator;
|
ForestTileGenerator forestTileGenerator;
|
||||||
const std::vector<std::shared_ptr<Entity>> forestEntities = forestTileGenerator.generateHexTile(random, tile.worldPos, mapEntities);
|
const std::vector<std::shared_ptr<Entity>> forestEntities = forestTileGenerator.generateHexTile(random, tile.worldPos, mapEntities);
|
||||||
tile.entitiesOnTile = forestEntities;
|
tile.entitiesOnTile = forestEntities;
|
||||||
|
} else if (randomValue < 0.75f) {
|
||||||
|
tile.resourceType = RessourceType::STONE;
|
||||||
}
|
}
|
||||||
map.tiles.push_back(tile);
|
map.tiles.push_back(tile);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user