#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, TexturesEnum textureEnum, Entity* owner); void createPowerup(Vector2D pos, std::function pickupFunc, TexturesEnum texture); Vector2D calculateSpawnPosition(); PowerupType calculateType(); //texture management void addTexture(std::string id, const char* path); // sound management void addSoundEffect(std::string id, const char* path); void addMusic(std::string id, const char* path); SDL_Texture* getTexture(std::string id); Mix_Chunk* getSound(std::string id); Mix_Music* getMusic(std::string id); private: Manager* man; std::map textures; std::map soundEffects; std::map music; };