LeviLamina
Loading...
Searching...
No Matches
ITrait.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7class BlockType;
8class CompoundTag;
9namespace cereal { struct ReflectionCtx; }
10// clang-format on
11
12namespace BlockTrait {
13
14class ITrait {
15public:
16 // virtual functions
17 // NOLINTBEGIN
18 virtual ~ITrait() = default;
19
20 virtual void applyToBlockType(::BlockType& blockType) const = 0;
21
22 virtual void initializeFromNetwork(::CompoundTag const& tag, ::cereal::ReflectionCtx const& ctx) = 0;
23
24 virtual ::std::unique_ptr<::CompoundTag> _buildNetworkTag(::cereal::ReflectionCtx const& ctx) const = 0;
25
26 virtual ::std::string const& _getName() const = 0;
27 // NOLINTEND
28
29public:
30 // member functions
31 // NOLINTBEGIN
32 MCAPI ::std::unique_ptr<::CompoundTag> buildNetworkTag(::cereal::ReflectionCtx const& ctx) const;
33 // NOLINTEND
34};
35
36} // namespace BlockTrait
Definition ITrait.h:14
Definition BlockType.h:79
Definition CompoundTag.h:18
Definition ReflectionCtx.h:11
Definition ctx.h:5