#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) self->AddComponent(); 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(); } }