This commit is contained in:
aozhiwei 2023-06-23 20:10:08 +08:00
parent 66a9a3b210
commit 59d5a0680f
2 changed files with 4 additions and 3 deletions

View File

@ -14,7 +14,7 @@ class Context : public BtContext \
~Context() { if (_destory_cb) { _destory_cb(); };}; \
}; \
auto context = std::make_shared<Context>(); \
context->owner = owner; \
context->SetOwner(owner); \
return context; \
}(GetOwner()->GetWeakPtrRef(), this)

View File

@ -7,15 +7,16 @@ class BtContext : public std::enable_shared_from_this<BtContext>
{
public:
CreatureWeakPtr owner;
virtual ~BtContext();
void SetOwner(CreatureWeakPtr owner) { owner_ = owner;}
CreatureWeakPtr GetOwner() { return owner_; }
void AddHandler(CreatureWeakPtr target, std::weak_ptr<EventHandlerPtr> handler);
void AddEvent(std::shared_ptr<BtEvent> event);
bool HasEvent();
void FireEvent(BaseAgent* agent);
private:
CreatureWeakPtr owner_;
std::vector<std::shared_ptr<BtEvent>> events_;
std::vector<std::tuple<CreatureWeakPtr, std::weak_ptr<EventHandlerPtr>>> handlers_;