#include "pch.h" #include "Building.h" #include #include #include "colors.h" #include "utils.h" Building::Building(const std::string& filePath, const Vector2f& position, const Rectf& boundingBox, TextureManager* pTextureManager): m_Position(position), m_BoundingBox(boundingBox) { m_Texture = pTextureManager->GetTexture(filePath); m_Size = Vector2f(m_Texture->GetWidth(), m_Texture->GetHeight()); std::cout << "i like kids" << std::endl; } Building::~Building() = default; void Building::Draw() const { m_Texture->Draw(m_Position); utils::SetColor(Colors::GREEN); Rectf temp = m_BoundingBox; temp.left += m_Position.x; temp.bottom += m_Position.y; utils::DrawRect(temp); } void Building::Update(float dt, const Rectf& objectBoundingBox) { if (IsObjectInHitbox(objectBoundingBox)) { if (!m_IsPlayerInHitbox) { //TODO: what m_IsPlayerInHitbox = true; if (m_OnEnterHitbox != nullptr) { m_OnEnterHitbox(); } else { std::cout << "No function set for onEnterHitbox" << std::endl; } } } else { m_IsPlayerInHitbox = false; } } void Building::SetOnEnterHitbox(std::function onEnterHitbox) { m_OnEnterHitbox = std::move(onEnterHitbox); } bool Building::IsObjectInHitbox(const Rectf& objectBoundingBox) const { Rectf temp = m_BoundingBox; temp.left += m_Position.x; temp.bottom += m_Position.y; return utils::IsRectInRect(objectBoundingBox, temp); }