#include "WanderingVendor.h" #include "MovementAIComponent.h" #include "ProximityMonitorComponent.h" void WanderingVendor::OnStartup(Entity* self) { auto movementAIComponent = self->GetComponent(); if (!movementAIComponent) return; movementAIComponent->Resume(); self->SetProximityRadius(10, "playermonitor"); } void WanderingVendor::OnProximityUpdate(Entity* self, Entity* entering, std::string name, std::string status) { if (status == "ENTER" && entering->IsPlayer()) { auto movementAIComponent = self->GetComponent(); if (!movementAIComponent) return; movementAIComponent->Pause(); self->CancelTimer("startWalking"); } else if (status == "LEAVE") { auto* proximityMonitorComponent = self->GetComponent(); if (!proximityMonitorComponent) { Game::logger->LogDebug("MovementAIComponent::HandleWaypointCommandRemoveNPC", "Proximity monitor component not found!"); return; } const auto proxObjs = proximityMonitorComponent->GetProximityObjects("playermonitor"); if (proxObjs.empty()) self->AddTimer("startWalking", 1.5); } } void WanderingVendor::OnTimerDone(Entity* self, std::string timerName) { if (timerName == "startWalking") { auto movementAIComponent = self->GetComponent(); if (!movementAIComponent) return; movementAIComponent->Resume(); } }