LeviLamina
Loading...
Searching...
No Matches
SignBlockActor.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/math/Color.h"
7#include "mc/deps/game_refs/WeakRef.h"
8#include "mc/deps/input/InputMode.h"
9#include "mc/input/NewInteractionModel.h"
10#include "mc/legacy/ActorUniqueID.h"
11#include "mc/network/packet/OpenSignPacket.h"
12#include "mc/platform/brstd/move_only_function.h"
13#include "mc/textobject/TextObjectRoot.h"
14#include "mc/world/level/block/actor/BlockActorRendererId.h"
15#include "mc/world/level/block/actor/BlockActorType.h"
16#include "mc/world/level/block/actor/SignTextSide.h"
17#include "mc/world/level/block/actor/VanillaBlockActor.h"
18
19// auto generated forward declare list
20// clang-format off
22class BlockPos;
23class BlockSource;
24class CompoundTag;
25class DataLoadHelper;
26class EntityContext;
27class ILevel;
28class Player;
29class SaveContext;
30// clang-format on
31
32class SignBlockActor : public ::VanillaBlockActor {
33public:
34 // SignBlockActor inner types declare
35 // clang-format off
36 struct CachedLineData;
37 struct CachedMessageData;
38 struct OpenSignRequest;
39 class Text;
40 // clang-format on
41
42 // SignBlockActor inner types define
44 public:
45 // member variables
46 // NOLINTBEGIN
47 ::ll::TypedStorage<8, 32, ::std::string> text;
48 ::ll::TypedStorage<4, 4, int> lineLength;
49 // NOLINTEND
50 };
51
52 struct CachedMessageData {
53 public:
54 // member variables
55 // NOLINTBEGIN
56 ::ll::TypedStorage<8, 160, ::SignBlockActor::CachedLineData[4]> lineData;
57 ::ll::TypedStorage<4, 4, uint> numLines;
58 ::ll::TypedStorage<8, 32, ::std::string> filteredMessage;
59 ::ll::TypedStorage<8, 8, void const*> cachedFontCompare;
60 ::ll::TypedStorage<1, 1, bool> dirty;
61 ::ll::TypedStorage<4, 4, ::InputMode> inputMode;
62 ::ll::TypedStorage<4, 4, ::NewInteractionModel> interactionModel;
63 // NOLINTEND
64
65#ifdef LL_PLAT_S
66#else // LL_PLAT_C
67 public:
68 // prevent constructor by default
69 CachedMessageData& operator=(CachedMessageData const&);
70 CachedMessageData();
71
72#endif
73 public:
74 // member functions
75 // NOLINTBEGIN
76#ifdef LL_PLAT_C
77 MCAPI CachedMessageData(::SignBlockActor::CachedMessageData const&);
78
79 MCAPI ::SignBlockActor::CachedMessageData& operator=(::SignBlockActor::CachedMessageData&&);
80
81 MCAPI ~CachedMessageData();
82#endif
83 // NOLINTEND
84
85 public:
86 // constructor thunks
87 // NOLINTBEGIN
88#ifdef LL_PLAT_C
89 MCAPI void* $ctor(::SignBlockActor::CachedMessageData const&);
90#endif
91 // NOLINTEND
92
93 public:
94 // destructor thunk
95 // NOLINTBEGIN
96#ifdef LL_PLAT_C
97 MCAPI void $dtor();
98#endif
99 // NOLINTEND
100 };
101
103 public:
104 // member variables
105 // NOLINTBEGIN
106 ::ll::TypedStorage<1, 1, bool> mIsWaitingForChangeClear;
107 ::ll::TypedStorage<8, 72, ::OpenSignPacket> mOpenSignPacket;
108 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<void(::OpenSignPacket&)>> mSendPacket;
109 // NOLINTEND
110 };
111
112 class Text {
113 public:
114 // Text inner types define
115 enum class LoadMode : int {
116 TextOnly = 0,
117 AllData = 1,
118 };
119
120 public:
121 // member variables
122 // NOLINTBEGIN
123 ::ll::TypedStorage<8, 32, ::std::string> mMessage;
124 ::ll::TypedStorage<8, 32, ::std::string> mFilteredMessage;
125 ::ll::TypedStorage<8, 32, ::TextObjectRoot> mTextObjectMessage;
126 ::ll::TypedStorage<8, 224, ::SignBlockActor::CachedMessageData> mCachedMessage;
127 ::ll::TypedStorage<4, 16, ::mce::Color> mSignTextColor;
128 ::ll::TypedStorage<1, 1, bool> mGlowing;
129 ::ll::TypedStorage<1, 1, bool> mHideGlowOutline;
130 ::ll::TypedStorage<1, 1, bool> mShouldPersistFormatting;
131 ::ll::TypedStorage<8, 32, ::std::string> mLastEditXuid;
132 ::ll::TypedStorage<8, 32, ::std::string> mTextObjectString;
133 // NOLINTEND
134
135 public:
136 // member functions
137 // NOLINTBEGIN
138 MCAPI ::std::string const& getMessage() const;
139
140 MCAPI void load(::CompoundTag const& tag, ::SignBlockActor::Text::LoadMode load);
141
142 MCAPI bool save(::CompoundTag& tag) const;
143
144 MCAPI void setMessage(::std::string message);
145
146 MCAPI void setMessage(::TextObjectRoot message);
147
148 MCAPI ~Text();
149 // NOLINTEND
150
151 public:
152 // static variables
153 // NOLINTBEGIN
154 MCAPI static ::std::add_lvalue_reference_t<char const[18]> SIGN_PERSIST_FORMATTING_TAG();
155 // NOLINTEND
156
157 public:
158 // destructor thunk
159 // NOLINTBEGIN
160 MCAPI void $dtor();
161 // NOLINTEND
162 };
163
164public:
165 // member variables
166 // NOLINTBEGIN
167 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SignBlockActor::Text>> mTextFront;
168 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::SignBlockActor::Text>> mTextBack;
169 ::ll::TypedStorage<1, 1, bool> mIsWaxed;
170 ::ll::TypedStorage<8, 8, ::ActorUniqueID> mLockedForEditingBy;
171 ::ll::TypedStorage<8, 152, ::std::optional<::SignBlockActor::OpenSignRequest>> mOpenSignRequest;
172 ::ll::TypedStorage<1, 1, bool> mIsRemoteProfanityFilterEnabled;
173 ::ll::TypedStorage<1, 1, bool> mIsLocalProfanityFilterEnabled;
174 // NOLINTEND
175
176public:
177 // prevent constructor by default
178 SignBlockActor();
179
180public:
181 // virtual functions
182 // NOLINTBEGIN
183 virtual ~SignBlockActor() /*override*/;
184
185 virtual bool isTypeOrDerived(::BlockActorType type) const /*override*/;
186
187 virtual bool save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
188
189 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
190
191 virtual void onChanged(::BlockSource& region) /*override*/;
192
193 virtual float getShadowRadius(::BlockSource& region) const /*override*/;
194
195 virtual ::std::string getImmersiveReaderText(::BlockSource& region) /*override*/;
196
197 virtual void tick(::BlockSource& region) /*override*/;
198
199 virtual ::std::vector<::std::string> getUgcStrings(::CompoundTag const& tag) const /*override*/;
200
201 virtual ::std::vector<::std::string> getFilteredUgcStrings(::CompoundTag const& tag) const /*override*/;
202
203 virtual void setUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const /*override*/;
204
205 virtual void setFilteredUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const /*override*/;
206
207 virtual bool validateData(::CompoundTag const& tag) const /*override*/;
208
209 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
210
211 virtual void _onUpdatePacket(::CompoundTag const& data, ::BlockSource& region) /*override*/;
212
213 virtual bool _playerCanUpdate(::Player const& fromPlayer) const /*override*/;
214 // NOLINTEND
215
216public:
217 // member functions
218 // NOLINTBEGIN
219 MCAPI SignBlockActor(::BlockPos const& pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId);
220
221 MCAPI ::std::string const& getMessage(::SignTextSide side) const;
222
223 MCAPI ::SignTextSide getSideFacingPlayer(::Player const& player) const;
224
225 MCAPI void
226 requestToSendOpenSignPacket(::WeakRef<::EntityContext> entityRef, ::BlockPos const& position, bool isFrontSide);
227
228#ifdef LL_PLAT_C
229 MCAPI void setMessage(::SignTextSide side, ::std::string message);
230
231 MCAPI void setMessage(::SignTextSide side, ::TextObjectRoot message);
232#endif
233
234 MCAPI void setMessageForServerScripingOnly(::SignTextSide side, ::std::string message, ::std::string ownerID);
235
236 MCAPI void setMessageForServerScripingOnly(::SignTextSide side, ::TextObjectRoot message, ::std::string ownerID);
237 // NOLINTEND
238
239public:
240 // constructor thunks
241 // NOLINTBEGIN
242 MCAPI void* $ctor(::BlockPos const& pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId);
243 // NOLINTEND
244
245public:
246 // destructor thunk
247 // NOLINTBEGIN
248 MCAPI void $dtor();
249 // NOLINTEND
250
251public:
252 // virtual function thunks
253 // NOLINTBEGIN
254 MCAPI bool $isTypeOrDerived(::BlockActorType type) const;
255
256 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
257
258 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
259
260 MCFOLD void $onChanged(::BlockSource& region);
261
262 MCAPI float $getShadowRadius(::BlockSource& region) const;
263
264 MCAPI ::std::string $getImmersiveReaderText(::BlockSource& region);
265
266 MCAPI void $tick(::BlockSource& region);
267
268 MCAPI ::std::vector<::std::string> $getUgcStrings(::CompoundTag const& tag) const;
269
270 MCAPI ::std::vector<::std::string> $getFilteredUgcStrings(::CompoundTag const& tag) const;
271
272 MCAPI void $setUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const;
273
274 MCAPI void $setFilteredUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const;
275
276 MCAPI bool $validateData(::CompoundTag const& tag) const;
277
278 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
279
280 MCAPI void $_onUpdatePacket(::CompoundTag const& data, ::BlockSource& region);
281
282 MCAPI bool $_playerCanUpdate(::Player const& fromPlayer) const;
283
284
285 // NOLINTEND
286
287public:
288 // vftables
289 // NOLINTBEGIN
291
293
294 MCNAPI static void** $vftableForBlockActor();
295
297 // NOLINTEND
298};
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:17
Definition BlockSource.h:71
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition EntityContext.h:15
Definition ILevel.h:221
Definition OpenSignPacket.h:19
Definition Player.h:129
Definition SaveContext.h:5
Definition SignBlockActor.h:112
static MCAPI void ** $vftableForIVanillaTickBlockActorComponent()
static MCAPI void ** $vftableForIVanillaRenderBlockActorComponent()
static MCAPI void ** $vftableForIVanillaMainBlockActorComponent()
static MCAPI void ** $vftableForBlockActor()
Definition TextObjectRoot.h:14
Definition WeakRef.h:8
Definition move_only_function.h:9
Definition SignBlockActor.h:43
Definition SignBlockActor.h:52
Definition SignBlockActor.h:102