diff --git a/sources/Component/Collision/CollisionComponent.cpp b/sources/Component/Collision/CollisionComponent.cpp index dc0992f4..22cbdef8 100644 --- a/sources/Component/Collision/CollisionComponent.cpp +++ b/sources/Component/Collision/CollisionComponent.cpp @@ -17,37 +17,26 @@ namespace BBM } CollisionComponent::CollisionComponent(WAL::Entity &entity, std::function onCollide, std::function onCollided, Vector3f bound) - : WAL::Component(entity), _onCollide(onCollide), _onCollided(onCollided), bound(bound) + : WAL::Component(entity), onCollide(onCollide), onCollided(onCollided), bound(bound) { } CollisionComponent::CollisionComponent(WAL::Entity &entity, std::function onCollide, std::function onCollided, float boundSize) - : WAL::Component(entity), _onCollide(onCollide), _onCollided(onCollided), bound({boundSize, boundSize, boundSize}) + : WAL::Component(entity), onCollide(onCollide), onCollided(onCollided), bound({boundSize, boundSize, boundSize}) { } CollisionComponent::CollisionComponent(WAL::Entity &entity, WAL::Callback onCollide, WAL::Callback onCollided, Vector3f bound) - : WAL::Component(entity), _onCollide(onCollide), _onCollided(onCollided), bound(bound) + : WAL::Component(entity), onCollide(onCollide), onCollided(onCollided), bound(bound) { } CollisionComponent::CollisionComponent(WAL::Entity &entity, WAL::Callback onCollide, WAL::Callback onCollided, float boundSize) - : WAL::Component(entity), _onCollide(onCollide), _onCollided(onCollided), bound({boundSize, boundSize, boundSize}) + : WAL::Component(entity), onCollide(onCollide), onCollided(onCollided), bound({boundSize, boundSize, boundSize}) { } CollisionComponent::CollisionComponent(WAL::Entity &entity, Vector3f bound) - : WAL::Component(entity), _onCollide(), _onCollided(), bound(bound) + : WAL::Component(entity), onCollide(), onCollided(), bound(bound) { } CollisionComponent::CollisionComponent(WAL::Entity &entity, float boundSize) - : WAL::Component(entity), _onCollide(), _onCollided(), bound({boundSize, boundSize, boundSize}) + : WAL::Component(entity), onCollide(), onCollided(), bound({boundSize, boundSize, boundSize}) { } - - const WAL::Callback &CollisionComponent::getOnCollide(void) const - { - return _onCollide; - } - - const WAL::Callback &CollisionComponent::getOnCollided(void) const - { - return _onCollided; - } - } \ No newline at end of file diff --git a/sources/Component/Collision/CollisionComponent.hpp b/sources/Component/Collision/CollisionComponent.hpp index 8ef05bcd..4636c79a 100644 --- a/sources/Component/Collision/CollisionComponent.hpp +++ b/sources/Component/Collision/CollisionComponent.hpp @@ -14,11 +14,11 @@ namespace BBM class CollisionComponent : public WAL::Component { private: - //! @brief onCollide functions to be called - WAL::Callback _onCollide; - //! @brief onCollided functions to be called - WAL::Callback _onCollided; public: + //! @brief onCollide functions to be called + WAL::Callback onCollide; + //! @brief onCollided functions to be called + WAL::Callback onCollided; //! @brief Bound size on all axis Vector3f bound; //! @inherit @@ -53,11 +53,5 @@ namespace BBM //! @brief A component can't be assigned CollisionComponent &operator=(const CollisionComponent &) = delete; - - //! @brief Get reference of the onCollide callback - const WAL::Callback &getOnCollide(void) const; - - //! @brief Get reference of the onCollided callback - const WAL::Callback &getOnCollided(void) const; }; } \ No newline at end of file diff --git a/sources/Runner/Runner.cpp b/sources/Runner/Runner.cpp index 2cdb2bc8..27ea76c5 100644 --- a/sources/Runner/Runner.cpp +++ b/sources/Runner/Runner.cpp @@ -67,13 +67,12 @@ namespace BBM { auto scene = std::make_shared(); RAY3D::Cube cube(Vector3f(-5, 0, -5), Vector3f(3, 3, 3), RED); - RAY3D::Cube cubePlayer(Vector3f(0, 0, 0), Vector3f(3, 3, 3), GREEN); scene->addEntity("player") .addComponent() - .addComponent>(cubePlayer) + .addComponent>("assets/player/player.iqm", std::make_pair(MAP_DIFFUSE, "assets/player/blue.png")) .addComponent() .addComponent() - .addComponent(3) + .addComponent(2) .addComponent(); scene->addEntity("cube") .addComponent(-5, 0, -5) @@ -83,8 +82,8 @@ namespace BBM .addComponent([](WAL::Entity &, const WAL::Entity &){}, [](WAL::Entity &actual, const WAL::Entity &) { try { - auto &mov = actual.getComponent(); - mov.resetVelocity(); + auto &mov = actual.getComponent(); + mov.resetVelocity(); } catch (std::exception &e) { }; }, 3); diff --git a/sources/System/Collision/CollisionSystem.cpp b/sources/System/Collision/CollisionSystem.cpp index 36616155..24971304 100644 --- a/sources/System/Collision/CollisionSystem.cpp +++ b/sources/System/Collision/CollisionSystem.cpp @@ -36,16 +36,16 @@ namespace BBM for (auto &other : _wal.scene->getEntities()) { if (&other == &entity) continue; - if (!other.hasComponent(typeid(CollisionComponent)) || - !other.hasComponent(typeid(PositionComponent))) + if (!other.hasComponent() || + !other.hasComponent()) continue; auto colB = other.getComponent(); auto posB = other.getComponent().position; Vector3f minB = Vector3f::min(posB, posB + colB.bound); Vector3f maxB = Vector3f::max(posB, posB + colB.bound); if (collide(minA, maxA, minB, maxB)) { - col.getOnCollide()(entity, other); - colB.getOnCollided()(entity, other); + col.onCollide(entity, other); + colB.onCollided(entity, other); } } }