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;
14class Tag;
15// clang-format on
16
17class StructureTemplateData {
18public:
19 // member variables
20 // NOLINTBEGIN
21 ::ll::TypedStorage<4, 4, int> mFormatVersion;
22 ::ll::TypedStorage<4, 4, ::NeighborAwareBlockUpgradeVersionType> mNeighborAwareBlockUpgradeVersion;
23 ::ll::TypedStorage<4, 12, ::BlockPos> mSize;
24 ::ll::TypedStorage<4, 12, ::BlockPos> mStructureWorldOrigin;
25 ::ll::TypedStorage<8, 24, ::std::vector<int>> mBlockIndices;
26 ::ll::TypedStorage<8, 32, ::std::optional<::std::vector<int>>> mExtraBlockIndices;
27 ::ll::TypedStorage<8, 64, ::std::unordered_map<::std::string, ::StructureBlockPalette>> mPalettes;
28 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::CompoundTag>>> mEntityData;
29 // NOLINTEND
30
31public:
32 // prevent constructor by default
33 StructureTemplateData& operator=(StructureTemplateData const&);
34 StructureTemplateData(StructureTemplateData const&);
35 StructureTemplateData();
36
37public:
38 // virtual functions
39 // NOLINTBEGIN
40 virtual ~StructureTemplateData();
41 // NOLINTEND
42
43public:
44 // member functions
45 // NOLINTBEGIN
46 MCAPI ::StructureLoadResult _parseBlockIndices(::CompoundTag const& structureTag);
47
48 MCAPI ::StructureLoadResult _parseEntities(::CompoundTag const& structureTag);
49
50 MCAPI ::StructureLoadResult _parseFormatVersion(::CompoundTag const& tag);
51
52 MCAPI ::StructureLoadResult _parseNeighborAwareBlockUpgradeVersion(::CompoundTag const& tag);
53
54 MCAPI ::StructureLoadResult _parsePalettes(::CompoundTag const& structureTag);
55
56 MCAPI ::StructureLoadResult _parseSize(::CompoundTag const& tag);
57
58 MCAPI ::CompoundTag const* _parseStructureTag(::CompoundTag const& tag);
59
60 MCAPI ::StructureLoadResult _parseStructureWorldOrigin(::CompoundTag const& tag);
61
62 MCAPI void _saveBlockIndices(::CompoundTag& structureTag) const;
63
64 MCAPI void _saveEntities(::CompoundTag& structureTag) const;
65
66 MCAPI void _savePalettes(::CompoundTag& structureTag) const;
67
68 MCAPI void _saveSize(::CompoundTag& tag) const;
69
70 MCAPI void _saveStructureTag(::CompoundTag& tag) const;
71
72 MCAPI void _saveStructureWorldOrigin(::CompoundTag& tag) const;
73
74 MCAPI ::StructureLoadResult _validateSizeAndBlockIndicesSize() const;
75
76 MCAPI void clear();
77
78 MCAPI ::StructureBlockPalette const* getPalette(::std::string const& name) const;
79
80 MCAPI bool load(::CompoundTag const& tag);
81
82 MCAPI ::StructureTemplateData& operator=(::StructureTemplateData&&);
83
84 MCAPI bool operator==(::StructureTemplateData const& other) const;
85
86 MCAPI ::std::unique_ptr<::CompoundTag> save() const;
87
88 MCAPI void setBlockIndices(::std::vector<int> blockIndices);
89 // NOLINTEND
90
91public:
92 // static functions
93 // NOLINTBEGIN
94 MCAPI static bool _readBlockIndexArray(::Tag const& tag, int formatVersion, ::std::vector<int>& blockIndices);
95 // NOLINTEND
96
97public:
98 // static variables
99 // NOLINTBEGIN
100 MCAPI static int const& CURRENT_FORMAT_VERSION();
101
102 MCAPI static ::std::string const& DEFAULT_PALETTE_NAME();
103
104 MCAPI static int const& NO_BLOCK_INDEX_VALUE();
105 // NOLINTEND
106
107public:
108 // destructor thunk
109 // NOLINTBEGIN
110 MCAPI void $dtor();
111 // NOLINTEND
112
113public:
114 // vftables
115 // NOLINTBEGIN
116 MCNAPI static void** $vftable();
117 // NOLINTEND
118};
Definition CompoundTag.h:18
Definition StructureBlockPalette.h:17
static MCAPI void ** $vftable()
Definition Tag.h:42