game2006/server/gameserver/btcontext.h
aozhiwei 3cb4c5160d 1
2023-11-04 19:24:29 +08:00

22 lines
527 B
C++

#pragma once
class HeroAgent;
class BaseAgent;
class BtEvent;
class EventHandler;
class BtContext : public std::enable_shared_from_this<BtContext>
{
public:
virtual ~BtContext();
void AddHandler(CreatureWeakPtr target, std::weak_ptr<EventHandler> handler);
void AddEvent(std::shared_ptr<BtEvent> event);
bool HasEvent();
void FireEvent(BaseAgent* agent);
private:
std::vector<std::shared_ptr<BtEvent>> events_;
std::vector<std::tuple<CreatureWeakPtr, std::weak_ptr<EventHandler>>> handlers_;
};