#ifndef HOLESOME_COLLECTABLE_SIMULATION_HPP #define HOLESOME_COLLECTABLE_SIMULATION_HPP #include #include #include "../../game_object.h" #include "../../collectables/collectable.hpp" #include "ground/collectable_sim_ground_segment.hpp" #include "ground/collectable_sim_ground.hpp" #include "../body_adapter.hpp" class CollectableSimulation : public GameObject { public: explicit CollectableSimulation(const std::shared_ptr &collectable); void physicsUpdate() override; [[nodiscard]] std::shared_ptr getCollectable() const; private: std::shared_ptr world; std::shared_ptr collectableBody; std::shared_ptr collectable; std::shared_ptr simGround; void updateGroundHole(); void updateCollectable(); }; #endif //HOLESOME_COLLECTABLE_SIMULATION_HPP