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