3 #ifndef GRAIL_BLUEPRINT_H
4 #define GRAIL_BLUEPRINT_H
12 #include "../GrailCore/Blackboard.hh"
13 #include "../GrailCore/EntityBlackboardPair.hh"
21 template <
typename InstanceType,
typename ContexType = EntityBlackboardPair,
typename DataType =
class AIEntity>
40 std::function<std::vector<ContexType>(
const DataType&)> contextProducer,
41 std::function<std::unique_ptr<InstanceType>(
const ContexType&)> instanceProducer)
42 : name{name}, contextProducer{contextProducer}, instanceProducer{instanceProducer}
61 return contextProducer(data);
71 return instanceProducer(context);
78 std::string
GetName()
const {
return name; }
81 const std::string name =
"";
82 const std::function<std::vector<ContexType>(
const DataType&)> contextProducer{};
83 const std::function<std::unique_ptr<InstanceType>(
const ContexType&)> instanceProducer{};
88 #endif //GRAIL_BLUEPRINT_H