3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
8#include "mc/deps/core/utility/pub_sub/Subscription.h"
17namespace Json {
class Value; }
23 enum class BookView : uchar {};
28 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BookScreenManager>> mBookScreenManager;
29 ::ll::TypedStorage<1, 1, bool const> mEditable;
30 ::ll::TypedStorage<1, 1, bool> mEditingLeft;
31 ::ll::TypedStorage<1, 1, bool> mEditingRight;
32 ::ll::TypedStorage<1, 2, ::std::array<bool, 2>> mPageHasCursor;
33 ::ll::TypedStorage<8, 24, ::std::vector<::PageContent>> mPages;
34 ::ll::TypedStorage<4, 4, int> mCurrentPage;
35 ::ll::TypedStorage<4, 4, int> mCurrentPageIndex;
36 ::ll::TypedStorage<8, 32, ::std::string> mTitle;
37 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mFilteredTitle;
38 ::ll::TypedStorage<8, 32, ::std::string> mAuthor;
39 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mFilteredAuthor;
40 ::ll::TypedStorage<8, 32, ::std::string> mAuthorXUID;
41 ::ll::TypedStorage<1, 1, ::BookScreenController::BookView> mCurrentView;
42 ::ll::TypedStorage<1, 1, bool> mForceUIRefresh;
43 ::ll::TypedStorage<4, 4, int> mPickPageIndex;
44 ::ll::TypedStorage<8, 32, ::std::string> mPageBlockedText;
45 ::ll::TypedStorage<1, 1, bool> mShouldRefreshText;
46 ::ll::TypedStorage<1, 1, bool> mShouldUseFilteredText;
47 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mProfanityToggleSubscription;
52 BookScreenController();
57 virtual ~BookScreenController() ;
59 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
61 virtual void preFrameTick() ;
63 virtual ::ui::DirtyFlag tick() ;
65 virtual bool _isStillValid() const ;
67 virtual ::std::
string _getButtonBDescription() ;
73 MCAPI BookScreenController(
74 ::std::shared_ptr<::ClientInstanceScreenModel> model,
81 MCAPI
void _addPageAt(
int index, ::PageContent const& page);
83 MCAPI
void _addPhotoPageAt(
int index, ::std::
string const& photoName);
85 MCAPI
void _deletePage(
int index);
87 MCAPI
void _editPageText(
int index);
89 MCAPI ::std::
string const& _getPageText(
int index,
bool isBeingEdited);
91 MCAPI
int _getPickIndex(
char const* collectionPrefix, ::UIPropertyBag& bag);
93 MCAPI
void _loadAuthorFromBook();
95 MCAPI
void _loadTextFromBook();
97 MCAPI
void _loadTitleFromBook();
99 MCAPI
void _parsePageText(
int index);
101 MCAPI
void _registerBindings();
103 MCAPI
void _registerEventHandlers();
105 MCAPI
void _swapPages(
int page1Index,
int page2Index);
107 MCAPI
void _tickExport();
109 MCAPI
void _tryFirePageTurnSound(::UIPropertyBag const& bag) const;
111 MCAPI
void _viewPage(
int pageIndex);
118 ::std::shared_ptr<::ClientInstanceScreenModel> model,
122 ::BlockActor* lectern
135 MCAPI
void $addStaticScreenVars(::Json::Value& globalVars);
137 MCAPI
void $preFrameTick();
139 MCAPI ::ui::DirtyFlag $tick();
141 MCAPI
bool $_isStillValid() const;
143 MCAPI ::std::
string $_getButtonBDescription();
Definition BlockActor.h:32
Definition BookScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForScreenController()
Definition BookScreenManager.h:5
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition PageContent.h:10
Definition UIPropertyBag.h:5