LeviLamina
Loading...
Searching...
No Matches
BehaviorFactory.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
8class BehaviorNode;
10namespace Json { class Value; }
11// clang-format on
12
14public:
15 // BehaviorFactory inner types define
16 using DefinitionCreator = ::std::function<::std::unique_ptr<::BehaviorDefinition>()>;
17
18 using NodeCreator = ::std::function<::std::unique_ptr<::BehaviorNode>()>;
19
20public:
21 // member variables
22 // NOLINTBEGIN
23 ::ll::TypedStorage<
24 8,
25 64,
26 ::std::unordered_map<
27 ::std::string,
28 ::std::pair<
29 ::std::function<::std::unique_ptr<::BehaviorDefinition>()>,
30 ::std::function<::std::unique_ptr<::BehaviorNode>()>>>>
31 mFactoryPairs;
32 // NOLINTEND
33
34public:
35 // member functions
36 // NOLINTBEGIN
37 MCAPI void _initNodes();
38
39 MCAPI ::std::unique_ptr<::BehaviorDefinition>
40 loadNodeDefinition(::std::string const& name, ::Json::Value root, ::BehaviorTreeDefinitionPtr& ptr) const;
41
42 MCAPI void registerNodePair(
43 ::std::string const& id,
44 ::std::function<::std::unique_ptr<::BehaviorDefinition>()> definitionCreator,
45 ::std::function<::std::unique_ptr<::BehaviorNode>()> nodeCreator
46 );
47 // NOLINTEND
48};
Definition BehaviorDefinition.h:17
Definition BehaviorFactory.h:13
Definition BehaviorNode.h:17
Definition BehaviorTreeDefinitionPtr.h:11
Definition Value.h:16