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