LeviLamina
Loading...
Searching...
No Matches
BlockTraitFactory.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/sem_ver/SemVersion.h"
7#include "mc/util/Factory.h"
8
9// auto generated forward declare list
10// clang-format off
12namespace BlockTrait { class ITrait; }
13namespace cereal { struct ReflectionCtx; }
14// clang-format on
15
16class BlockTraitFactory : public ::Factory<::BlockTrait::ITrait> {
17public:
18 // BlockTraitFactory inner types declare
19 // clang-format off
20 struct TraitMetadata;
21 // clang-format on
22
23 // BlockTraitFactory inner types define
24 struct TraitMetadata {
25 public:
26 // TraitMetadata inner types define
27 using Ctor = ::std::unique_ptr<::BlockTrait::ITrait> (*)();
28
29 public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockTrait::ITrait> (*)()> makeUnique;
33 ::ll::TypedStorage<8, 24, ::std::vector<::PackLoadRequirement>> requirements;
34 ::ll::TypedStorage<8, 32, ::std::optional<::SemVersion>> releasedMinFormatVersion;
35 // NOLINTEND
36
37 public:
38 // prevent constructor by default
39 TraitMetadata& operator=(TraitMetadata const&);
40 TraitMetadata();
41
42 public:
43 // member functions
44 // NOLINTBEGIN
45 MCAPI TraitMetadata(::BlockTraitFactory::TraitMetadata const&);
46
47 MCAPI ::BlockTraitFactory::TraitMetadata& operator=(::BlockTraitFactory::TraitMetadata&&);
48
49 MCAPI ~TraitMetadata();
50 // NOLINTEND
51
52 public:
53 // constructor thunks
54 // NOLINTBEGIN
55 MCAPI void* $ctor(::BlockTraitFactory::TraitMetadata const&);
56 // NOLINTEND
57
58 public:
59 // destructor thunk
60 // NOLINTBEGIN
61 MCAPI void $dtor();
62 // NOLINTEND
63 };
64
65 using RegisteredTraitsMap = ::std::unordered_map<::std::string, ::BlockTraitFactory::TraitMetadata>;
66
67public:
68 // member variables
69 // NOLINTBEGIN
70 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::BlockTraitFactory::TraitMetadata>>
71 mRegisteredTraits;
72 // NOLINTEND
73
74public:
75 // prevent constructor by default
76 BlockTraitFactory(BlockTraitFactory const&);
77 BlockTraitFactory();
78
79public:
80 // member functions
81 // NOLINTBEGIN
82 MCAPI ::std::unique_ptr<::BlockTrait::ITrait>
83 createTrait(::std::string const& name, ::cereal::ReflectionCtx const& ctx) const;
84
85 MCAPI ::BlockTraitFactory& operator=(::BlockTraitFactory const&);
86
87 MCAPI ~BlockTraitFactory();
88 // NOLINTEND
89
90public:
91 // static functions
92 // NOLINTBEGIN
93 MCAPI static void registerAllTraits(::cereal::ReflectionCtx& ctx);
94
95 MCAPI static ::std::unordered_map<::std::string, ::BlockTraitFactory::TraitMetadata> const*
96 registeredTraits(::cereal::ReflectionCtx const& ctx);
97
98 MCAPI static ::BlockTraitFactory& setupContextInstanceIfRequired(::cereal::ReflectionCtx& ctx);
99 // NOLINTEND
100
101public:
102 // destructor thunk
103 // NOLINTBEGIN
104 MCAPI void $dtor();
105 // NOLINTEND
106};
Definition ITrait.h:14
Definition Factory.h:6
Definition PackLoadRequirement.h:13
Definition BlockTraitFactory.h:24
Definition ReflectionCtx.h:11
Definition ctx.h:5