#include <object/components/boxcollider.hpp>

namespace Game::Object::Components {
    BoxCollider::BoxCollider(const BoxCollider& other) : Component(other) {
        LOG("Copied BoxCollider Component: " << mName);
    }

    BoxCollider& BoxCollider::operator=(const BoxCollider& other) {
        if (this != &other) {
            Component::operator=(other);
        }
        return *this;
    }

    BoxCollider::BoxCollider(BoxCollider&& other) noexcept : Component(std::move(other)) {
        LOG("Moved BoxCollider Component: " << mName);
    }

    BoxCollider& BoxCollider::operator=(BoxCollider&& other) noexcept {
        if (this != &other) {
            Component::operator=(std::move(other));
        }
        return *this;
    }

    BoxCollider::~BoxCollider() = default;

    void BoxCollider::start(Object::Entity* thisEntity) {
        // Initialization code for the box collider can go here
    }

    void BoxCollider::update(float deltaTime, Object::Entity* thisEntity) {
        // Collision detection and response logic can go here
    }
}