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
13class BehaviorFactory {
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 BehaviorFactory();
38
39 MCAPI void _initNodes();
40
41 MCAPI ::std::unique_ptr<::BehaviorDefinition>
42 loadNodeDefinition(::std::string const& name, ::Json::Value root, ::BehaviorTreeDefinitionPtr& ptr) const;
43
44 MCAPI void registerNodePair(
45 ::std::string const& id,
46 ::std::function<::std::unique_ptr<::BehaviorDefinition>()> definitionCreator,
47 ::std::function<::std::unique_ptr<::BehaviorNode>()> nodeCreator
48 );
49
50 MCAPI ::std::unique_ptr<::BehaviorDefinition> tryGetDefinition(::std::string const& id) const;
51
52 MCAPI ::std::unique_ptr<::BehaviorNode> tryGetNode(::std::string const& id) const;
53 // NOLINTEND
54
55public:
56 // constructor thunks
57 // NOLINTBEGIN
58 MCAPI void* $ctor();
59 // NOLINTEND
60};
Definition BehaviorDefinition.h:17
Definition BehaviorNode.h:17
Definition BehaviorTreeDefinitionPtr.h:11
Definition Value.h:16