LeviLamina
Loading...
Searching...
No Matches
PillagerOutpostPieces.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/util/Rotation.h"
8#include "mc/world/level/BlockPos.h"
9#include "mc/world/level/levelgen/structure/TemplateStructurePiece.h"
10
11// auto generated forward declare list
12// clang-format off
13class BlockSource;
14class BoundingBox;
15class Dimension;
16class LevelChunk;
17class Random;
19class StructurePiece;
21// clang-format on
22
24public:
25 // PillagerOutpostPieces inner types declare
26 // clang-format off
28 // clang-format on
29
30 // PillagerOutpostPieces inner types define
31 class PillagerOutpostPiece : public ::TemplateStructurePiece {
32 public:
33 // member variables
34 // NOLINTBEGIN
35 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mPillagerPositions;
36 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mAllayGroupPositions;
37 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mCaptainPositions;
38 ::ll::TypedStorage<8, 24, ::std::vector<::BlockPos>> mIronGolemPositions;
39 ::ll::TypedStorage<8, 32, ::std::string> mTemplateName;
40 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::StructureManager>> mStructureManager;
41 ::ll::TypedStorage<4, 12, ::BlockPos> mPosition;
42 ::ll::TypedStorage<4, 4, float> mIntegrity;
43 ::ll::TypedStorage<1, 1, ::Rotation> mRotation;
44 ::ll::TypedStorage<1, 1, bool> mIsSatellite;
45 ::ll::TypedStorage<1, 1, bool> mHeightSet;
46 ::ll::TypedStorage<4, 4, int> mMaxNumberOfAllays;
47 // NOLINTEND
48
49 public:
50 // prevent constructor by default
51 PillagerOutpostPiece();
52
53 public:
54 // virtual functions
55 // NOLINTBEGIN
56 virtual bool postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB) /*override*/;
57
58 virtual void postProcessMobsAt(::BlockSource& region, ::Random& chunkBB, ::BoundingBox const&) /*override*/;
59
60 virtual void addHardcodedSpawnAreas(::LevelChunk& chunk) const /*override*/;
61
62 virtual void _handleDataMarker(
63 ::std::string const& markerId,
64 ::BlockPos const& position,
65 ::BlockSource& region,
66 ::Random& random,
67 ::BoundingBox const& chunkBB
68 ) /*override*/;
69 // NOLINTEND
70
71 public:
72 // member functions
73 // NOLINTBEGIN
74 MCAPI PillagerOutpostPiece(
75 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
76 ::std::string templateName,
77 ::BlockPos const& origin,
78 ::Rotation rotation,
79 float integrity,
80 bool isSatellite,
81 ::Dimension& dimension
82 );
83
84 MCAPI void _addMobsFromPositions(
85 ::BoundingBox const& chunkBB,
86 ::ActorDefinitionIdentifier const& definition,
87 ::BlockSource& region,
88 ::std::vector<::BlockPos> const& entityPositions
89 );
90
91 MCAPI void _loadTemplate();
92 // NOLINTEND
93
94 public:
95 // constructor thunks
96 // NOLINTBEGIN
97 MCAPI void* $ctor(
98 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
99 ::std::string templateName,
100 ::BlockPos const& origin,
101 ::Rotation rotation,
102 float integrity,
103 bool isSatellite,
104 ::Dimension& dimension
105 );
106 // NOLINTEND
107
108 public:
109 // virtual function thunks
110 // NOLINTBEGIN
111 MCAPI bool $postProcess(::BlockSource& region, ::Random& random, ::BoundingBox const& chunkBB);
112
113 MCAPI void $postProcessMobsAt(::BlockSource& region, ::Random& chunkBB, ::BoundingBox const&);
114
115 MCAPI void $addHardcodedSpawnAreas(::LevelChunk& chunk) const;
116
117 MCAPI void $_handleDataMarker(
118 ::std::string const& markerId,
119 ::BlockPos const& position,
120 ::BlockSource& region,
121 ::Random& random,
122 ::BoundingBox const& chunkBB
123 );
124
125
126 // NOLINTEND
127
128 public:
129 // vftables
130 // NOLINTBEGIN
131 MCNAPI static void** $vftable();
132 // NOLINTEND
133 };
134
135public:
136 // static functions
137 // NOLINTBEGIN
138 MCAPI static void _addPiece(
139 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
140 ::BlockPos const& position,
141 ::Rotation const& rotation,
142 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
143 ::Random& random,
144 ::Dimension& dimension
145 );
146
147 MCAPI static void _addScatteredPieces(
148 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
149 ::Random& random,
150 ::Rotation const& rotation,
151 ::BlockPos const& parentPos,
152 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
153 ::Dimension& dimension
154 );
155
156 MCAPI static ::std::vector<::BlockPos> _getPiecePositions(::Random& random);
157
158 MCAPI static void addPieces(
159 ::Bedrock::NotNullNonOwnerPtr<::StructureManager> structureManager,
160 ::BlockPos const& position,
161 ::Rotation const& rotation,
162 ::std::vector<::std::unique_ptr<::StructurePiece>>& pieces,
163 ::Random& random,
164 ::Dimension& dimension
165 );
166 // NOLINTEND
167
168public:
169 // static variables
170 // NOLINTBEGIN
171 MCAPI static ::std::array<::std::string_view, 7>& MSC_FEATURES();
172
173 MCAPI static ::std::string_view& PILLAGER_LOOT();
174
175 MCAPI static ::std::string_view& STRUCTURE_WATCHTOWER();
176
177 MCAPI static ::std::string_view& STRUCTURE_WATCHTOWER_OVERGROWN();
178 // NOLINTEND
179};
Definition BlockPos.h:21
Definition BlockSource.h:72
Definition BoundingBox.h:13
Definition Dimension.h:88
Definition LevelChunk.h:87
Definition PillagerOutpostPieces.h:31
Definition PillagerOutpostPieces.h:23
Definition Random.h:10
Definition StructureManager.h:46
Definition StructurePiece.h:21
Definition ActorDefinitionIdentifier.h:15