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