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