3 #ifndef GRAIL_BLUEPRINT_H
4 #define GRAIL_BLUEPRINT_H
11 #include "../GrailCore/Blackboard.hh"
12 #include "../GrailCore/EntityBlackboardPair.hh"
20 template <
typename InstanceType,
typename ContexType = EntityBlackboardPair,
typename DataType =
class AIEntity>
39 std::function<std::vector<ContexType>(
const DataType&)> contextProducer,
40 std::function<std::unique_ptr<InstanceType>(
const ContexType&)> instanceProducer)
41 : name{name}, contextProducer{contextProducer}, instanceProducer{instanceProducer}
60 return contextProducer(data);
70 return instanceProducer(context);
77 std::string
GetName()
const {
return name; }
80 const std::string name =
"";
81 const std::function<std::vector<ContexType>(
const DataType&)> contextProducer{};
82 const std::function<std::unique_ptr<InstanceType>(
const ContexType&)> instanceProducer{};
87 #endif //GRAIL_BLUEPRINT_H