#ifndef _H_BULLETMANAGER_H #define _H_BULLETMANAGER_H #include #include #include #include class Bullet; class Sprite; class Shader; class Camera; class EventManager; class BulletManager : public std::enable_shared_from_this { public: BulletManager() {} void addBullet(const std::shared_ptr& bullet); void addBullet(const unsigned int owner, const glm::vec3& fireFrom, const glm::vec2& direction, float bulletSpeed, float bulletDrop, glm::vec2 bulletSize, const unsigned& shaderID, std::unique_ptr sprite); void update(double deltaTime); void draw(); void hookEventManager(std::weak_ptr eventManager); const std::vector> getBullets() const { return bullets; } private: std::vector> bullets; std::weak_ptr eventManager; }; #endif