#include "components/CollectibleComponent.hpp" #include "Entity.hpp" #include "components/ColliderComponent.hpp" #include "components/MeterComponent.hpp" void CollectibleComponent::Setup() { auto selfCollider = entity->GetComponent(); if (!selfCollider) { return; } selfCollider->get().monitoring = true; selfCollider->get().AddCollisionListener([this](Entity &other) { if (entity->queuedForFree || !context || !context->probeEntity || &other != context->probeEntity) { return; } context->EmitCollectiblePicked(*entity); entity->QueueFree(); if (!context->hudEntity) { return; } auto meter = context->hudEntity->GetComponent(); if (!meter) { return; } meter->get().AddValue(meter->get().gainPerStar); }); } void CollectibleComponent::Update(float) {} void CollectibleComponent::Cleanup() {}