LeviLamina
Loading...
Searching...
No Matches
BlockComponentDescription.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/util/json_util/JsonSchemaObjectNode.h"
7
8// auto generated forward declare list
9// clang-format off
12class BlockType;
13class CompoundTag;
14class SemVersion;
16namespace JsonUtil { class EmptyClass; }
17namespace cereal { struct ReflectionCtx; }
18// clang-format on
19
21public:
22 // BlockComponentDescription inner types declare
23 // clang-format off
25 // clang-format on
26
27 // BlockComponentDescription inner types define
28 struct InitializationContext {
29 public:
30 // member variables
31 // NOLINTBEGIN
32 ::ll::TypedStorage<8, 8, ::BlockComponentStorage&> mBlockComponentStorage;
33 ::ll::TypedStorage<8, 8, ::BlockType&> mBlockType;
34 // NOLINTEND
35
36 public:
37 // prevent constructor by default
38 InitializationContext& operator=(InitializationContext const&);
39 InitializationContext(InitializationContext const&);
40 InitializationContext();
41 };
42
43public:
44 // member variables
45 // NOLINTBEGIN
46 ::ll::TypedStorage<1, 1, bool> mInitializedFromCode;
47 // NOLINTEND
48
49public:
50 // virtual functions
51 // NOLINTBEGIN
52 virtual ~BlockComponentDescription() = default;
53
54 virtual ::std::string const& getName() const;
55
56 virtual void initializeComponent(::BlockComponentDescription::InitializationContext& context) const;
57
58 virtual void initializeComponent(::BlockComponentStorage& blockComponentStorage) const;
59
60 virtual void initializeComponentFromCode(::BlockComponentDescription::InitializationContext& context) const;
61
62 virtual void initializeComponentFromCode(::BlockComponentStorage& blockComponentStorage) const;
63
64 virtual void buildSchema(
66 componentSchema,
67 ::BlockComponentFactory const& factory
68 ) const;
69
70 virtual bool isNetworkComponent() const;
71
72 virtual ::std::unique_ptr<::CompoundTag> buildNetworkTag(::cereal::ReflectionCtx const& ctx) const;
73
74 virtual void initializeFromNetwork(::CompoundTag const& tag, ::cereal::ReflectionCtx const& ctx);
75
76 virtual void handleVersionBasedInitialization(::SemVersion const& originalJsonVersion);
77 // NOLINTEND
78
79public:
80 // virtual function thunks
81 // NOLINTBEGIN
82 MCFOLD ::std::string const& $getName() const;
83
84 MCAPI void $initializeComponent(::BlockComponentDescription::InitializationContext& context) const;
85
86 MCFOLD void $initializeComponent(::BlockComponentStorage& blockComponentStorage) const;
87
88 MCAPI void $initializeComponentFromCode(::BlockComponentDescription::InitializationContext& context) const;
89
90 MCFOLD void $initializeComponentFromCode(::BlockComponentStorage& blockComponentStorage) const;
91
92 MCFOLD void $buildSchema(
94 componentSchema,
95 ::BlockComponentFactory const& factory
96 ) const;
97
98 MCFOLD bool $isNetworkComponent() const;
99
100 MCFOLD ::std::unique_ptr<::CompoundTag> $buildNetworkTag(::cereal::ReflectionCtx const& ctx) const;
101
102 MCFOLD void $initializeFromNetwork(::CompoundTag const& tag, ::cereal::ReflectionCtx const& ctx);
103
104 MCFOLD void $handleVersionBasedInitialization(::SemVersion const& originalJsonVersion);
105
106
107 // NOLINTEND
108
109public:
110 // vftables
111 // NOLINTBEGIN
112 MCNAPI static void** $vftable();
113 // NOLINTEND
114};
Definition BlockComponentFactory.h:25
Definition BlockComponentStorage.h:67
Definition BlockType.h:79
Definition CompoundTag.h:18
Definition EmptyClass.h:7
Definition JsonSchemaObjectNode.h:8
Definition SemVersion.h:15
Definition BlockComponentDescription.h:28
Definition BlockComponentDescription.h:20
static MCAPI void ** $vftable()
Definition BlockComponentGroupDescription.h:13
Definition ReflectionCtx.h:11
Definition context.h:5
Definition ctx.h:5