From 0ad827c37b2d9dd51e1bbb9ab67879899210816b Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Thu, 10 Jun 2021 09:58:52 +0200 Subject: [PATCH] player models are now independant --- lib/Ray/sources/Model/Model.cpp | 4 +-- lib/Ray/sources/Model/Model.hpp | 4 +-- sources/Map/Map.cpp | 26 +++++++++---------- sources/Runner/Runner.cpp | 2 +- .../System/BombHolder/BombHolderSystem.cpp | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/Ray/sources/Model/Model.cpp b/lib/Ray/sources/Model/Model.cpp index 0a0bad2b..bf1cce46 100644 --- a/lib/Ray/sources/Model/Model.cpp +++ b/lib/Ray/sources/Model/Model.cpp @@ -14,12 +14,12 @@ namespace RAY::Drawables::Drawables3D { RAY::Cache<::Model> Model::_modelsCache(LoadModel, UnloadModel); - Model::Model(const std::string &filename, + Model::Model(const std::string &filename, bool lonely, std::optional> texture, const RAY::Vector3 &scale, const RAY::Vector3 &position, const RAY::Vector3 &rotationAxis, - float rotationAngle, bool lonely) + float rotationAngle) : ADrawable3D(position, WHITE), _model(_modelsCache.fetch(filename, lonely)), _rotationAxis(rotationAxis), diff --git a/lib/Ray/sources/Model/Model.hpp b/lib/Ray/sources/Model/Model.hpp index 8742a3e3..a7d8d89b 100644 --- a/lib/Ray/sources/Model/Model.hpp +++ b/lib/Ray/sources/Model/Model.hpp @@ -27,12 +27,12 @@ namespace RAY::Drawables::Drawables3D { //! @brief Create an model, loading a file //! @param filePath: path to file to load //! @param lonely: should be set to true if the entity's loaded data must be independant from others - Model(const std::string &filePath, + Model(const std::string &filePath, bool lonely = false, std::optional> texture = std::nullopt, const RAY::Vector3 &scale = RAY::Vector3(1, 1, 1), const RAY::Vector3 &position = {0, 0, 0}, const RAY::Vector3 &rotationAxis = RAY::Vector3(0, 1, 0), - float rotationAngle = 0, bool lonely = false); + float rotationAngle = 0); //! @brief Create an model, loading a file //! @param mesh: mesh to load diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index e9af839f..d3c53906 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -60,7 +60,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, 0.25, .75) - .addComponent(unbreakableObj, + .addComponent(unbreakableObj, false, std::make_pair(MAP_DIFFUSE, unbreakablePng)); } } @@ -78,7 +78,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75)) - .addComponent(unbreakableObj, + .addComponent(unbreakableObj, false, std::make_pair(MAP_DIFFUSE, unbreakablePnj), RAY::Vector3(width + 3, 1, 1)); scene->addEntity("Upper Wall") @@ -87,7 +87,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, Vector3f(-(width + 1) / 2 , 0.25, 0.25), Vector3f(width + 1, 2, 0.75)) - .addComponent(unbreakableObj, + .addComponent(unbreakableObj, false, std::make_pair(MAP_DIFFUSE, unbreakablePnj), RAY::Vector3(width + 3, 1, 1)); scene->addEntity("Left Wall") @@ -96,7 +96,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1)) - .addComponent(unbreakableObj, + .addComponent(unbreakableObj, false, std::make_pair(MAP_DIFFUSE, unbreakablePnj), RAY::Vector3(1, 1, height + 1)); scene->addEntity("Right Wall") @@ -104,7 +104,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, Vector3f(0.25, 0.25, -(height + 1) / 2 ), Vector3f(0.75, 2, height + 1)) - .addComponent(unbreakableObj, + .addComponent(unbreakableObj, false, std::make_pair(MAP_DIFFUSE, unbreakablePnj), RAY::Vector3(1, 1, height + 1)); } @@ -119,7 +119,7 @@ namespace BBM if (map[std::make_tuple(i, 0, j)] != HOLE && map[std::make_tuple(i, -1, j)] != BUMPER) scene->addEntity("Unbreakable Wall") .addComponent(Vector3f(i, -1, j)) - .addComponent(floorObj, + .addComponent(floorObj, false, std::make_pair(MAP_DIFFUSE, floorPng)); } } @@ -154,7 +154,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, 0.25, .75) - .addComponent(breakableObj, std::make_pair(MAP_DIFFUSE, breakablePng)); + .addComponent(breakableObj, false, std::make_pair(MAP_DIFFUSE, breakablePng)); } void MapGenerator::createFloor(Vector3f coords, std::shared_ptr scene) @@ -165,7 +165,7 @@ namespace BBM scene->addEntity("Floor") .addComponent(Vector3f(coords)) //.addComponent(1) - .addComponent(floorObj, std::make_pair(MAP_DIFFUSE, floorPng)); + .addComponent(floorObj, false, std::make_pair(MAP_DIFFUSE, floorPng)); } void MapGenerator::createUpperFloor(Vector3f coords, std::shared_ptr scene) @@ -175,7 +175,7 @@ namespace BBM scene->addEntity("Upper Floor") .addComponent(Vector3f(coords)) - .addComponent(floorObj, std::make_pair(MAP_DIFFUSE, floorPng)); + .addComponent(floorObj, false, std::make_pair(MAP_DIFFUSE, floorPng)); } @@ -190,7 +190,7 @@ namespace BBM .addComponent( WAL::Callback(), &MapGenerator::wallCollide, 0.25, .75) - .addComponent(UnbreakableObj, + .addComponent(UnbreakableObj, false, std::make_pair(MAP_DIFFUSE, UnbreakablePng)); } @@ -206,9 +206,9 @@ namespace BBM holeEntity.addComponent(Vector3f(coords.x, coords.y - 1, coords.z)); if (coords.y == 0) - holeEntity.addComponent(holeObj, std::make_pair(MAP_DIFFUSE, holePng)); + holeEntity.addComponent(holeObj, false, std::make_pair(MAP_DIFFUSE, holePng)); else - holeEntity.addComponent(secondFloorObj, + holeEntity.addComponent(secondFloorObj, false, std::make_pair(MAP_DIFFUSE, secondFloorPng)); /*.addComponent([](WAL::Entity &other, const WAL::Entity &entity) { if (other.hasComponent()) { @@ -225,7 +225,7 @@ namespace BBM scene->addEntity("Bumper Block") .addComponent(Vector3f(coords.x, coords.y, coords.z)) - .addComponent(bumperObj, std::make_pair(MAP_DIFFUSE, bumperPng)); + .addComponent(bumperObj, false, std::make_pair(MAP_DIFFUSE, bumperPng)); /* .addComponent([](const WAL::Entity &entity, WAL::Entity &other) { if (other.hasComponent()) { auto &movable = other.getComponent(); diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index 6d6b36cb..ef0ab500 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -527,7 +527,7 @@ namespace BBM }; scene->addEntity("player") .addComponent() - .addComponent("assets/player/player.iqm", std::make_pair(MAP_DIFFUSE, "assets/player/blue.png")) + .addComponent("assets/player/player.iqm", true, std::make_pair(MAP_DIFFUSE, "assets/player/blue.png")) .addComponent() .addComponent() .addComponent() diff --git a/sources/System/BombHolder/BombHolderSystem.cpp b/sources/System/BombHolder/BombHolderSystem.cpp index b783c684..a66e7ad9 100644 --- a/sources/System/BombHolder/BombHolderSystem.cpp +++ b/sources/System/BombHolder/BombHolderSystem.cpp @@ -56,7 +56,7 @@ namespace BBM .addComponent(BombHolderSystem::explosionTimer, &BombHolderSystem::_bombExplosion) // .addComponent(WAL::Callback(), // &MapGenerator::wallCollide, 0.25, .75) - .addComponent("assets/bombs/bomb.obj", + .addComponent("assets/bombs/bomb.obj", false, std::make_pair(MAP_DIFFUSE, "assets/bombs/bomb_normal.png")); }