LeviLamina
Loading...
Searching...
No Matches
StructureTemplateData.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/world/level/BlockPos.h"
7#include "mc/world/level/chunk/NeighborAwareBlockUpgradeVersionType.h"
8#include "mc/world/level/levelgen/structure/StructureLoadResult.h"
9
10// auto generated forward declare list
11// clang-format off
12class CompoundTag;
14// clang-format on
15
16class StructureTemplateData {
17public:
18 // member variables
19 // NOLINTBEGIN
20 ::ll::TypedStorage<4, 4, int> mFormatVersion;
21 ::ll::TypedStorage<4, 4, ::NeighborAwareBlockUpgradeVersionType> mNeighborAwareBlockUpgradeVersion;
22 ::ll::TypedStorage<4, 12, ::BlockPos> mSize;
23 ::ll::TypedStorage<4, 12, ::BlockPos> mStructureWorldOrigin;
24 ::ll::TypedStorage<8, 24, ::std::vector<int>> mBlockIndices;
25 ::ll::TypedStorage<8, 24, ::std::vector<int>> mExtraBlockIndices;
26 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::StructureBlockPalette>> mPalettes;
27 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::CompoundTag>>> mEntityData;
28 // NOLINTEND
29
30public:
31 // prevent constructor by default
32 StructureTemplateData& operator=(StructureTemplateData const&);
33 StructureTemplateData(StructureTemplateData const&);
34 StructureTemplateData();
35
36public:
37 // virtual functions
38 // NOLINTBEGIN
39 virtual ~StructureTemplateData();
40 // NOLINTEND
41
42public:
43 // member functions
44 // NOLINTBEGIN
45 MCAPI ::StructureLoadResult _parseBlockIndices(::CompoundTag const& structureTag);
46
47 MCAPI ::StructureLoadResult _parseEntities(::CompoundTag const& structureTag);
48
49 MCAPI ::StructureLoadResult _parseFormatVersion(::CompoundTag const& tag);
50
51 MCAPI ::StructureLoadResult _parseNeighborAwareBlockUpgradeVersion(::CompoundTag const& tag);
52
53 MCAPI ::StructureLoadResult _parsePalettes(::CompoundTag const& structureTag);
54
55 MCAPI ::StructureLoadResult _parseSize(::CompoundTag const& tag);
56
57 MCAPI ::CompoundTag const* _parseStructureTag(::CompoundTag const& tag);
58
59 MCAPI ::StructureLoadResult _parseStructureWorldOrigin(::CompoundTag const& tag);
60
61 MCAPI void _saveBlockIndices(::CompoundTag& structureTag) const;
62
63 MCAPI void _saveEntities(::CompoundTag& structureTag) const;
64
65 MCAPI void _savePalettes(::CompoundTag& structureTag) const;
66
67 MCAPI void _saveSize(::CompoundTag& tag) const;
68
69 MCAPI void _saveStructureTag(::CompoundTag& tag) const;
70
71 MCAPI void _saveStructureWorldOrigin(::CompoundTag& tag) const;
72
73 MCAPI ::StructureLoadResult _validateSizeAndBlockIndicesSize() const;
74
75 MCAPI void addPalette(::std::string const& name, ::StructureBlockPalette blockPalette);
76
77 MCAPI void clear();
78
79 MCFOLD ::std::unordered_map<::std::string, ::StructureBlockPalette> const& getAllPalettes() const;
80
81 MCFOLD ::std::vector<int> const& getBlockIndices() const;
82
83 MCFOLD ::std::vector<int> const& getExtraBlockIndices() const;
84
85 MCAPI ::StructureBlockPalette const* getPalette(::std::string const& name) const;
86
87 MCFOLD ::BlockPos const& getSize() const;
88
89 MCFOLD ::BlockPos const& getStructureWorldOrigin() const;
90
91 MCAPI bool load(::CompoundTag const& tag);
92
93 MCAPI ::StructureTemplateData& operator=(::StructureTemplateData&&);
94
95 MCAPI bool operator==(::StructureTemplateData const& other) const;
96
97 MCAPI ::std::unique_ptr<::CompoundTag> save() const;
98
99 MCAPI void setBlockIndices(::std::vector<int> blockIndices);
100
101 MCAPI void setExtraBlockIndices(::std::vector<int> extraBlockIndices);
102
103 MCFOLD void setSize(::BlockPos const& size);
104
105 MCAPI void setStructureWorldOrigin(::BlockPos const& structureWorldOrigin);
106 // NOLINTEND
107
108public:
109 // static variables
110 // NOLINTBEGIN
111 MCAPI static int const& CURRENT_FORMAT_VERSION();
112
113 MCAPI static ::std::string const& DEFAULT_PALETTE_NAME();
114 // NOLINTEND
115
116public:
117 // destructor thunk
118 // NOLINTBEGIN
119 MCAPI void $dtor();
120 // NOLINTEND
121
122public:
123 // vftables
124 // NOLINTBEGIN
125 MCNAPI static void** $vftable();
126 // NOLINTEND
127};
Definition BlockPos.h:21
Definition CompoundTag.h:23
Definition StructureBlockPalette.h:17
static MCAPI void ** $vftable()