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/VanillaBlockActor.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 Player;
24class SaveContext;
25struct ActorUniqueID;
26// clang-format on
27
28class VaultBlockActor : public ::VanillaBlockActor {
29public:
30 // VaultBlockActor inner types declare
31 // clang-format off
32 struct VaultClientData;
33 struct VaultConfig;
34 struct VaultServerData;
35 struct VaultSharedData;
36 class Client;
37 class Server;
38 // clang-format on
39
40 // VaultBlockActor inner types define
42 public:
43 // member variables
44 // NOLINTBEGIN
45 ::ll::TypedStorage<4, 4, float> currentSpin;
46 ::ll::TypedStorage<4, 4, float> previousSpin;
47 ::ll::TypedStorage<8, 24, ::WeakEntityRef> displayEntity;
48 // NOLINTEND
49 };
50
51 struct VaultConfig {
52 public:
53 // member variables
54 // NOLINTBEGIN
55 ::ll::TypedStorage<8, 32, ::std::string> lootTable;
56 ::ll::TypedStorage<4, 4, float> activationRange;
57 ::ll::TypedStorage<4, 4, float> deactivationRange;
58 ::ll::TypedStorage<8, 152, ::ItemStack> keyItem;
59 ::ll::TypedStorage<8, 32, ::std::string> overrideLootTableToDisplay;
60 // NOLINTEND
61 };
62
64 public:
65 // member variables
66 // NOLINTBEGIN
67 ::ll::TypedStorage<8, 8, ::Tick> stateUpdateResumesAt;
68 ::ll::TypedStorage<8, 24, ::std::vector<::ItemStack>> itemsToEject;
69 ::ll::TypedStorage<8, 24, ::std::vector<::ActorUniqueID>> rewardedPlayers;
70 ::ll::TypedStorage<1, 1, bool> doesBlockNeedToBeSaved;
71 ::ll::TypedStorage<8, 8, ::Tick> serverTick;
72 ::ll::TypedStorage<8, 8, ::Tick> lastInsertFailTimestamp;
73 ::ll::TypedStorage<4, 4, int> totalEjectionsNeeded;
74 // NOLINTEND
75 };
76
78 public:
79 // member variables
80 // NOLINTBEGIN
81 ::ll::TypedStorage<8, 152, ::ItemStack> displayItem;
82 ::ll::TypedStorage<8, 24, ::std::vector<::ActorRuntimeID>> connectedPlayers;
83 ::ll::TypedStorage<4, 4, float> connectedParticlesRange;
84 ::ll::TypedStorage<1, 1, bool> isSharedDataDirty;
85 // NOLINTEND
86 };
87
88 class Client {
89 public:
90 // static functions
91 // NOLINTBEGIN
92#ifdef LL_PLAT_C
93 MCAPI static void emitActivationParticles(::BlockSource& region, ::BlockPos pos);
94
95 MCAPI static void emitConnectedParticles(
96 ::BlockSource& region,
97 ::BlockPos pos,
99 );
100
101 MCAPI static void emitDeactivationParticles(::BlockSource& region, ::BlockPos pos);
102#endif
103
104 MCAPI static void removeDisplayEntity(::VaultBlockActor::VaultClientData& clientData);
105 // NOLINTEND
106 };
107
108 class Server {
109 public:
110 // static functions
111 // NOLINTBEGIN
112 MCAPI static void cycleDisplayItemFromLootTable(
113 ::BlockSource& region,
114 ::VaultBlockActor::VaultConfig const& config,
116 );
117
118 MCAPI static void onTransitionBetweenStates(
119 ::BlockSource& region,
120 ::BlockPos pos,
121 ::VaultBlockActor::VaultConfig const& config,
123 ::VaultBlockState oldState,
124 ::VaultBlockState newState
125 );
126
127 MCAPI static void playInsertFailSound(
128 ::BlockSource& region,
129 ::BlockPos pos,
131 ::SharedTypes::Legacy::LevelSoundEvent sound
132 );
133
134 MCAPI static void tryInsertKey(
135 ::BlockSource& region,
136 ::Player& player,
137 ::BlockPos pos,
138 ::VaultBlockActor::VaultConfig const& config,
141 );
142
143 MCAPI static void updateConnectedPlayersWithinRange(
144 ::BlockSource& region,
145 ::BlockPos pos,
146 ::VaultBlockActor::VaultServerData const& serverData,
148 float range
149 );
150 // NOLINTEND
151 };
152
153public:
154 // member variables
155 // NOLINTBEGIN
156 ::ll::TypedStorage<8, 224, ::VaultBlockActor::VaultConfig> mConfig;
157 ::ll::TypedStorage<8, 32, ::VaultBlockActor::VaultClientData> mClientData;
158 ::ll::TypedStorage<8, 184, ::VaultBlockActor::VaultSharedData> mSharedData;
159 ::ll::TypedStorage<8, 88, ::VaultBlockActor::VaultServerData> mServerData;
160 // NOLINTEND
161
162public:
163 // prevent constructor by default
164 VaultBlockActor();
165
166public:
167 // virtual functions
168 // NOLINTBEGIN
169 virtual ~VaultBlockActor() /*override*/;
170
171 virtual void tick(::BlockSource& region) /*override*/;
172
173 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
174
175 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
176
177 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
178
179 virtual void _onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region) /*override*/;
180 // NOLINTEND
181
182public:
183 // member functions
184 // NOLINTBEGIN
185 MCAPI explicit VaultBlockActor(::BlockPos const& pos);
186
187#ifdef LL_PLAT_C
188 MCAPI ::Actor* tryGetOrCreateDisplayEntity(::BlockSource& region);
189#endif
190 // NOLINTEND
191
192public:
193 // constructor thunks
194 // NOLINTBEGIN
195 MCAPI void* $ctor(::BlockPos const& pos);
196 // NOLINTEND
197
198public:
199 // destructor thunk
200 // NOLINTBEGIN
201 MCAPI void $dtor();
202 // NOLINTEND
203
204public:
205 // virtual function thunks
206 // NOLINTBEGIN
207 MCAPI void $tick(::BlockSource& region);
208
209 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
210
211 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
212
213 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
214
215 MCAPI void $_onUpdatePacket(::CompoundTag const& tag, ::BlockSource& region);
216
217
218 // NOLINTEND
219};
Definition ActorRuntimeID.h:5
Definition Actor.h:113
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition ILevel.h:221
Definition Player.h:129
Definition SaveContext.h:5
Definition VaultBlockActor.h:88
Definition VaultBlockActor.h:108
Definition ActorUniqueID.h:5
Definition VaultBlockActor.h:41
Definition VaultBlockActor.h:51
Definition VaultBlockActor.h:63
Definition VaultBlockActor.h:77