Skip to content
LeviMC
English
AutoLightDark
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 MCNAPI void _initNodes();
38
39 MCNAPI ::std::unique_ptr<::BehaviorDefinition>
40 loadNodeDefinition(::std::string const& name, ::Json::Value root, ::BehaviorTreeDefinitionPtr& ptr) const;
41
42 MCNAPI 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
MCAPI void registerNodePair(::std::string const &id, ::std::function<::std::unique_ptr<::BehaviorDefinition >()> definitionCreator, ::std::function<::std::unique_ptr<::BehaviorNode >()> nodeCreator)
MCAPI ::std::unique_ptr<::BehaviorDefinition > loadNodeDefinition(::std::string const &name, ::Json::Value root, ::BehaviorTreeDefinitionPtr &ptr) const
MCAPI void _initNodes()
Definition BehaviorNode.h:17
Definition BehaviorTreeDefinitionPtr.h:11
Definition Value.h:16