3#include "mc/_HeaderOutputPredefine.h"
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"
32class SignBlockActor :
public ::VanillaBlockActor {
47 ::ll::TypedStorage<8, 32, ::std::string> text;
48 ::ll::TypedStorage<4, 4, int> lineLength;
52 struct CachedMessageData {
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;
69 CachedMessageData& operator=(CachedMessageData
const&);
81 MCNAPI ~CachedMessageData();
106 ::ll::TypedStorage<1, 1, bool> mIsWaitingForChangeClear;
107 ::ll::TypedStorage<8, 72, ::OpenSignPacket> mOpenSignPacket;
115 enum class LoadMode :
int {
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;
138 MCAPI ::std::string
const& getMessage()
const;
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;
183 virtual ~SignBlockActor() ;
185 virtual bool isTypeOrDerived(::BlockActorType type)
const ;
195 virtual ::std::string getImmersiveReaderText(
::BlockSource& region) ;
199 virtual ::std::vector<::std::string> getUgcStrings(
::CompoundTag const& tag)
const ;
201 virtual ::std::vector<::std::string> getFilteredUgcStrings(
::CompoundTag const& tag)
const ;
203 virtual void setUgcStrings(
::CompoundTag& tag, ::std::vector<::std::string>
const& list)
const ;
205 virtual void setFilteredUgcStrings(
::CompoundTag& tag, ::std::vector<::std::string>
const& list)
const ;
209 virtual ::std::unique_ptr<::BlockActorDataPacket> _getUpdatePacket(
::BlockSource&) ;
213 virtual bool _playerCanUpdate(
::Player const& fromPlayer)
const ;
221 MCAPI ::std::string
const& getMessage(::SignTextSide side)
const;
223 MCAPI ::SignTextSide getSideFacingPlayer(
::Player const& player)
const;
229 MCNAPI
void setMessage(::SignTextSide side, ::std::string message);
234 MCAPI
void setMessageForServerScripingOnly(::SignTextSide side, ::std::string message, ::std::string ownerID);
242 MCNAPI
void*
$ctor(
::BlockPos const& pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId);
282 MCAPI
bool $_playerCanUpdate(
::Player const& fromPlayer)
const;
Definition BlockActorDataPacket.h:19
Definition BlockSource.h:72
Definition CompoundTag.h:18
Definition DataLoadHelper.h:20
Definition EntityContext.h:15
Definition OpenSignPacket.h:19
Definition SaveContext.h:5
Definition SignBlockActor.h:112
static MCAPI ::std::add_lvalue_reference_t< char const[18]> SIGN_PERSIST_FORMATTING_TAG()
MCAPI void load(::CompoundTag const &tag, ::SignBlockActor::Text::LoadMode load)
MCAPI void setMessage(::std::string message)
MCAPI bool save(::CompoundTag &tag) const
MCAPI void setMessage(::TextObjectRoot message)
MCAPI void * $ctor(::BlockPos const &pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId)
MCAPI SignBlockActor(::BlockPos const &pos, ::BlockActorType blockActorType, ::BlockActorRendererId rendererId)
MCAPI bool $isTypeOrDerived(::BlockActorType type) const
MCAPI ::std::vector<::std::string > $getUgcStrings(::CompoundTag const &tag) const
MCAPI void $_onUpdatePacket(::CompoundTag const &data, ::BlockSource ®ion)
MCAPI ::std::vector<::std::string > $getFilteredUgcStrings(::CompoundTag const &tag) const
MCAPI void requestToSendOpenSignPacket(::WeakRef<::EntityContext > entityRef, ::BlockPos const &position, bool isFrontSide)
MCAPI void $onChanged(::BlockSource ®ion)
MCAPI void $tick(::BlockSource ®ion)
static MCAPI void ** $vftableForIVanillaTickBlockActorComponent()
static MCAPI void ** $vftableForIVanillaRenderBlockActorComponent()
MCAPI void $load(::ILevel &level, ::CompoundTag const &tag, ::DataLoadHelper &dataLoadHelper)
MCAPI float $getShadowRadius(::BlockSource ®ion) const
MCAPI void $setFilteredUgcStrings(::CompoundTag &tag, ::std::vector<::std::string > const &list) const
MCAPI void setMessageForServerScripingOnly(::SignTextSide side, ::TextObjectRoot message, ::std::string ownerID)
MCAPI bool $save(::CompoundTag &tag, ::SaveContext const &saveContext) const
static MCAPI void ** $vftableForIVanillaMainBlockActorComponent()
static MCAPI void ** $vftableForBlockActor()
MCAPI ::std::unique_ptr<::BlockActorDataPacket > $_getUpdatePacket(::BlockSource &)
MCAPI void $setUgcStrings(::CompoundTag &tag, ::std::vector<::std::string > const &list) const
MCAPI::std::string $getImmersiveReaderText(::BlockSource ®ion)
MCAPI bool $validateData(::CompoundTag const &tag) const
Definition TextObjectRoot.h:14
Definition move_only_function.h:9
Definition SignBlockActor.h:43
Definition SignBlockActor.h:52
Definition SignBlockActor.h:102