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 save(::CompoundTag& tag, ::SaveContext const& saveContext) const /*override*/;
186
187 virtual void load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper) /*override*/;
188
189 virtual void onChanged(::BlockSource& region) /*override*/;
190
191 virtual float getShadowRadius(::BlockSource& region) const /*override*/;
192
193 virtual ::std::string getImmersiveReaderText(::BlockSource& region) /*override*/;
194
195 virtual void tick(::BlockSource& region) /*override*/;
196
197 virtual ::std::vector<::std::string> getUgcStrings(::CompoundTag const& tag) const /*override*/;
198
199 virtual ::std::vector<::std::string> getFilteredUgcStrings(::CompoundTag const& tag) const /*override*/;
200
201 virtual void setUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const /*override*/;
202
203 virtual void setFilteredUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const /*override*/;
204
205 virtual bool validateData(::CompoundTag const& tag) const /*override*/;
206
207 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(::BlockSource&) /*override*/;
208
209 virtual void _onUpdatePacket(::CompoundTag const& data, ::BlockSource& region) /*override*/;
210
211 virtual bool _playerCanUpdate(::Player const& fromPlayer) const /*override*/;
212 // NOLINTEND
213
214public:
215 // member functions
216 // NOLINTBEGIN
217 MCAPI SignBlockActor(::BlockPos const& pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId);
218
219 MCAPI ::std::string const& getMessage(::SignTextSide side) const;
220
221 MCAPI ::SignTextSide getSideFacingPlayer(::Player const& player) const;
222
223 MCAPI void
224 requestToSendOpenSignPacket(::WeakRef<::EntityContext> entityRef, ::BlockPos const& position, bool isFrontSide);
225
226#ifdef LL_PLAT_C
227 MCAPI void setMessage(::SignTextSide side, ::std::string message);
228
229 MCAPI void setMessage(::SignTextSide side, ::TextObjectRoot message);
230#endif
231
232 MCAPI void setMessageForServerScripingOnly(::SignTextSide side, ::std::string message, ::std::string ownerID);
233
234 MCAPI void setMessageForServerScripingOnly(::SignTextSide side, ::TextObjectRoot message, ::std::string ownerID);
235 // NOLINTEND
236
237public:
238 // constructor thunks
239 // NOLINTBEGIN
240 MCAPI void* $ctor(::BlockPos const& pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId);
241 // NOLINTEND
242
243public:
244 // destructor thunk
245 // NOLINTBEGIN
246 MCAPI void $dtor();
247 // NOLINTEND
248
249public:
250 // virtual function thunks
251 // NOLINTBEGIN
252 MCAPI bool $save(::CompoundTag& tag, ::SaveContext const& saveContext) const;
253
254 MCAPI void $load(::ILevel& level, ::CompoundTag const& tag, ::DataLoadHelper& dataLoadHelper);
255
256 MCFOLD void $onChanged(::BlockSource& region);
257
258 MCAPI float $getShadowRadius(::BlockSource& region) const;
259
260 MCAPI ::std::string $getImmersiveReaderText(::BlockSource& region);
261
262 MCAPI void $tick(::BlockSource& region);
263
264 MCAPI ::std::vector<::std::string> $getUgcStrings(::CompoundTag const& tag) const;
265
266 MCAPI ::std::vector<::std::string> $getFilteredUgcStrings(::CompoundTag const& tag) const;
267
268 MCAPI void $setUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const;
269
270 MCAPI void $setFilteredUgcStrings(::CompoundTag& tag, ::std::vector<::std::string> const& list) const;
271
272 MCAPI bool $validateData(::CompoundTag const& tag) const;
273
274 MCAPI ::std::unique_ptr<::BlockActorDataPacket> $_getUpdatePacket(::BlockSource&);
275
276 MCAPI void $_onUpdatePacket(::CompoundTag const& data, ::BlockSource& region);
277
278 MCAPI bool $_playerCanUpdate(::Player const& fromPlayer) const;
279
280
281 // NOLINTEND
282
283public:
284 // vftables
285 // NOLINTBEGIN
287
289
290 MCNAPI static void** $vftableForBlockActor();
291
293 // NOLINTEND
294};
Definition BlockActorDataPacket.h:19
Definition BlockPos.h:21
Definition BlockSource.h:71
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition EntityContext.h:15
Definition ILevel.h:220
Definition OpenSignPacket.h:19
Definition Player.h:128
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