LeviLamina
Loading...
Searching...
No Matches
VaultBlockActor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/AutomaticID.h"
7#include "mc/deps/ecs/WeakEntityRef.h"
8#include "mc/deps/shared_types/legacy/LevelSoundEvent.h"
9#include "mc/world/item/ItemStack.h"
10#include "mc/world/level/Tick.h"
11#include "mc/world/level/block/VaultBlockState.h"
12#include "mc/world/level/block/actor/BlockActor.h"
13
14// auto generated forward declare list
15// clang-format off
16class Actor;
17class ActorRuntimeID;
19class BlockPos;
20class BlockSource;
21class CompoundTag;
22class DataLoadHelper;
23class Dimension;
24class ILevel;
25class Level;
26class Player;
27class SaveContext;
28class Vec3;
29struct ActorUniqueID;
30// clang-format on
31
32class VaultBlockActor : public ::BlockActor {
33public:
34 // VaultBlockActor inner types declare
35 // clang-format off
36 struct VaultClientData;
37 struct VaultConfig;
38 struct VaultServerData;
39 struct VaultSharedData;
40 class Client;
41 class Server;
42 // clang-format on
43
44 // VaultBlockActor inner types define
46 public:
47 // member variables
48 // NOLINTBEGIN
49 ::ll::TypedStorage<4, 4, float> currentSpin;
50 ::ll::TypedStorage<4, 4, float> previousSpin;
51 ::ll::TypedStorage<8, 24, ::WeakEntityRef> displayEntity;
52 // NOLINTEND
53
54 public:
55 // member functions
56 // NOLINTBEGIN
57 MCAPI ~VaultClientData();
58 // NOLINTEND
59
60 public:
61 // destructor thunk
62 // NOLINTBEGIN
63 MCFOLD void $dtor();
64 // NOLINTEND
65 };
66
67 struct VaultConfig {
68 public:
69 // member variables
70 // NOLINTBEGIN
71 ::ll::TypedStorage<8, 32, ::std::string> lootTable;
72 ::ll::TypedStorage<4, 4, float> activationRange;
73 ::ll::TypedStorage<4, 4, float> deactivationRange;
74 ::ll::TypedStorage<8, 152, ::ItemStack> keyItem;
75 ::ll::TypedStorage<8, 32, ::std::string> overrideLootTableToDisplay;
76 // NOLINTEND
77
78 public:
79 // member functions
80 // NOLINTBEGIN
81 MCAPI ~VaultConfig();
82 // NOLINTEND
83
84 public:
85 // destructor thunk
86 // NOLINTBEGIN
87 MCAPI void $dtor();
88 // NOLINTEND
89 };
90
92 public:
93 // member variables
94 // NOLINTBEGIN
95 ::ll::TypedStorage<8, 8, ::Tick> stateUpdateResumesAt;
96 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStack>> itemsToEject;
97 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> rewardedPlayers;
98 ::ll::TypedStorage<1, 1, bool> doesBlockNeedToBeSaved;
99 ::ll::TypedStorage<8, 8, ::Tick> serverTick;
100 ::ll::TypedStorage<8, 8, ::Tick> lastInsertFailTimestamp;
101 ::ll::TypedStorage<4, 4, int> totalEjectionsNeeded;
102 // NOLINTEND
103
104 public:
105 // member functions
106 // NOLINTBEGIN
107 MCAPI ~VaultServerData();
108 // NOLINTEND
109
110 public:
111 // destructor thunk
112 // NOLINTBEGIN
113 MCAPI void $dtor();
114 // NOLINTEND
115 };
116
118 public:
119 // member variables
120 // NOLINTBEGIN
121 ::ll::TypedStorage<8, 152, ::ItemStack> displayItem;
122 ::ll::TypedStorage<8, 24, ::std::vector<::ActorRuntimeID>> connectedPlayers;
123 ::ll::TypedStorage<4, 4, float> connectedParticlesRange;
124 ::ll::TypedStorage<1, 1, bool> isSharedDataDirty;
125 // NOLINTEND
126
127 public:
128 // member functions
129 // NOLINTBEGIN
130 MCAPI ~VaultSharedData();
131 // NOLINTEND
132
133 public:
134 // destructor thunk
135 // NOLINTBEGIN
136 MCAPI void $dtor();
137 // NOLINTEND
138 };
139
140 class Client {
141 public:
142 // static functions
143 // NOLINTBEGIN
144 MCAPI static void emitConnectedParticles(
145 ::BlockSource& region,
146 ::BlockPos pos,
147 ::VaultBlockActor::VaultSharedData const& sharedData
148 );
149
150 MCAPI static void emitIdleParticles(
151 ::BlockSource const& region,
152 ::VaultBlockActor::VaultSharedData const& sharedData,
153 ::BlockPos pos
154 );
155
156 MCAPI static void
157 playIdleSounds(::BlockSource& region, ::BlockPos pos, ::VaultBlockActor::VaultSharedData const& sharedData);
158
159 MCAPI static void removeDisplayEntity(::VaultBlockActor::VaultClientData& clientData);
160 // NOLINTEND
161 };
162
163 class Server {
164 public:
165 // static functions
166 // NOLINTBEGIN
167 MCAPI static void cycleDisplayItemFromLootTable(
168 ::BlockSource& region,
169 ::VaultBlockState blockState,
170 ::VaultBlockActor::VaultConfig const& config,
172 );
173
174 MCAPI static void ejectResultItem(
175 ::BlockSource& region,
176 ::BlockPos blockPos,
177 ::ItemStack const& item,
178 float ejectionSoundProgress
179 );
180
181 MCAPI static ::ItemStack
182 getRandomDisplayItemFromLootTable(::BlockSource& region, ::std::string const& lootTable);
183
184 MCAPI static ::std::vector<::ItemStack> getRandomLootTableItems(
185 ::Level& level,
186 ::DimensionType dimensionType,
187 ::std::string const& lootTableName,
188 ::Player& player,
189 ::BlockPos pos
190 );
191
192 MCAPI static void onTransitionBetweenStates(
193 ::BlockSource& region,
194 ::BlockPos pos,
195 ::VaultBlockActor::VaultConfig const& config,
197 ::VaultBlockState oldState,
198 ::VaultBlockState newState
199 );
200
201 MCAPI static void playInsertFailSound(
202 ::BlockSource& region,
203 ::BlockPos pos,
205 ::SharedTypes::Legacy::LevelSoundEvent sound
206 );
207
208 MCAPI static void tick(
209 ::BlockSource& region,
210 ::BlockPos pos,
211 ::VaultBlockActor::VaultConfig const& config,
214 );
215
216 MCAPI static ::VaultBlockState tickStateAndGetNext(
217 ::BlockSource& region,
218 ::BlockPos pos,
219 ::VaultBlockActor::VaultConfig const& config,
222 ::VaultBlockState oldState
223 );
224
225 MCAPI static void tryInsertKey(
226 ::BlockSource& region,
227 ::Player& player,
228 ::BlockPos pos,
229 ::VaultBlockActor::VaultConfig const& config,
232 );
233
234 MCAPI static void updateConnectedPlayersWithinRange(
235 ::BlockSource& region,
236 ::BlockPos pos,
237 ::VaultBlockActor::VaultServerData const& serverData,
239 float range
240 );
241 // NOLINTEND
242 };
243
244public:
245 // member variables
246 // NOLINTBEGIN
247 ::ll::TypedStorage<8, 224, ::VaultBlockActor::VaultConfig> mConfig;
248 ::ll::TypedStorage<8, 32, ::VaultBlockActor::VaultClientData> mClientData;
249 ::ll::TypedStorage<8, 184, ::VaultBlockActor::VaultSharedData> mSharedData;
250 ::ll::TypedStorage<8, 88, ::VaultBlockActor::VaultServerData> mServerData;
251 // NOLINTEND
252
253public:
254 // prevent constructor by default
255 VaultBlockActor();
256
257public:
258 // virtual functions
259 // NOLINTBEGIN
260 virtual ~VaultBlockActor() /*override*/;
261
262 virtual void tick(::BlockSource& region) /*override*/;
263
264 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
265
266 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
267
268 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
269
270 virtual void _onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region) /*override*/;
271 // NOLINTEND
272
273public:
274 // member functions
275 // NOLINTBEGIN
276 MCAPI explicit VaultBlockActor(::BlockPos const& pos);
277
278 MCAPI_C void clientEmitActivationParticles(::BlockSource& region) const;
279
280 MCAPI_C void clientEmitConnectedParticles(::BlockSource& region) const;
281
282 MCAPI_C void clientEmitDeactivationParticles(::BlockSource& region) const;
283
284 MCAPI_C ::Actor* tryGetOrCreateDisplayEntity(::BlockSource& region);
285 // NOLINTEND
286
287public:
288 // static functions
289 // NOLINTBEGIN
290 MCAPI static void
291 _javaSpawnItem(::BlockSource& region, ::ItemStack const& item, int accuracy, uchar direction, ::Vec3 position);
292 // NOLINTEND
293
294public:
295 // constructor thunks
296 // NOLINTBEGIN
297 MCAPI void* $ctor(::BlockPos const& pos);
298 // NOLINTEND
299
300public:
301 // destructor thunk
302 // NOLINTBEGIN
303 MCAPI void $dtor();
304 // NOLINTEND
305
306public:
307 // virtual function thunks
308 // NOLINTBEGIN
309 MCAPI void $tick(::BlockSource& region);
310
311 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
312
313 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
314
315 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
316
317 MCAPI void $_onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region);
318
319
320 // NOLINTEND
321
322public:
323 // vftables
324 // NOLINTBEGIN
325 MCNAPI static void** $vftable();
326 // NOLINTEND
327};
Definition ActorRuntimeID.h:5
Definition Actor.h:105
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition CompoundTag.h:23
Definition DataLoadHelper.h:20
Definition Dimension.h:85
Definition ILevel.h:214
Definition ItemStack.h:26
Definition Level.h:249
Definition Player.h:125
Definition SaveContext.h:5
Definition VaultBlockActor.h:140
Definition VaultBlockActor.h:163
static MCAPI void ** $vftable()
Definition Vec3.h:10
Definition ActorUniqueID.h:5
Definition VaultBlockActor.h:45
Definition VaultBlockActor.h:67
Definition VaultBlockActor.h:91
Definition VaultBlockActor.h:117