#pragma once #include "Component.h" #include #include namespace dae { class ColliderComponent; class LevelComponent : public Component { public: LevelComponent(int levelId); ~LevelComponent(); virtual void Initialize() override; const std::vector& GetNearbyLevelTileColliders() { return m_pTilesColliders; } const std::vector& GetBorderColliders() { return m_pBorderColliders; } const std::vector& GetTopLevelTileColliders() { return m_pTopColliders; } void AddPlayerCollider(ColliderComponent* pPlayerCollider) { if (std::find(m_pPlayersColliders.begin(), m_pPlayersColliders.end(), pPlayerCollider) == m_pPlayersColliders.end()) { m_pPlayersColliders.emplace_back(pPlayerCollider); } } const std::vector& GetPlayersColliders() { return m_pPlayersColliders; } void DeleteTiles(); void Update(float deltaTime) override; void FixedUpdate(float deltaTime) override; void Render() const override {}; int GetLevelId() { return m_LevelId; } private: const unsigned int LEVEL_LINE_SIZE{ 32 }; const float TILE_SIZE{ 16.f }; std::string m_LevelPath; int m_LevelId; std::vector m_pTilesColliders{}; std::vector m_pBorderColliders{}; std::vector m_pTopColliders{}; std::vector m_pPlayersColliders{}; }; }