#pragma once #include #include #include #include #include #include "Entity.h" class Vector2D; class Manager; enum class PowerupType { HEART, WALKINGSPEED, SHOOTINGSPEED }; class AssetManager { public: AssetManager(Manager* manager); ~AssetManager(); void createProjectile(Vector2D pos, Vector2D velocity, int scale, int range, int speed, const char* texturePath, Entity* owner); void createPowerup(Vector2D pos, std::function pickupFunc, std::string texturePath); Vector2D calculateSpawnPosition(); PowerupType calculateType(); //texture management void addTexture(std::string id, const char* path); // sound management void addSoundEffect(std::string id, const char* path); SDL_Texture* getTexture(std::string id); Mix_Chunk* getSound(std::string id); private: Manager* man; std::map textures; std::map soundEffects; };