3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DirtyFlag.h"
7#include "mc/client/gui/ViewRequest.h"
8#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
9#include "mc/world/events/EventResult.h"
10#include "mc/world/events/NpcEventListener.h"
22namespace Json {
class Value; }
33 enum class Section : uchar {};
35 enum class NpcTextEdit :
int {};
37 enum class NpcTextErrorStatus : uchar {};
44 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
45 ::ll::TypedStorage<1, 1, ::NpcInteractScreenController::Section> mVisibleSection;
46 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::INpcDialogueData>> mDialogueData;
47 ::ll::TypedStorage<1, 1, bool> mShouldRefresh;
48 ::ll::TypedStorage<1, 1, bool> mHasActionWarning;
49 ::ll::TypedStorage<1, 1, bool> mSaveToServer;
50 ::ll::TypedStorage<4, 4, int> mMaxSkinsPerRow;
51 ::ll::TypedStorage<4, 4, int> mStartSkinIndex;
52 ::ll::TypedStorage<4, 4, int> mMaxSkinButtonIndex;
53 ::ll::TypedStorage<4, 4, int> mMaxSkinIndex;
54 ::ll::TypedStorage<4, 4, int> mSelectedSkinIndex;
55 ::ll::TypedStorage<4, 4, int> mHoverSkin;
56 ::ll::TypedStorage<4, 4, int> mMaximizedEditIndex;
57 ::ll::TypedStorage<4, 4, int> mActionDeleteIndex;
58 ::ll::TypedStorage<4, 4, int> mActionCollectionIndex;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DeferredTextObject>> mDeferredNameText;
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DeferredTextObject>> mDeferredInteractText;
61 ::ll::TypedStorage<8, 24, ::std::vector<::NpcInteractScreenController::NpcActionEditData>> mDeferredActionTexts;
66 NpcInteractScreenController& operator=(NpcInteractScreenController
const&);
67 NpcInteractScreenController(NpcInteractScreenController
const&);
68 NpcInteractScreenController();
73 virtual ~NpcInteractScreenController() ;
75 virtual ::ui::DirtyFlag tick() ;
77 virtual void onTerminate() ;
79 virtual void onCreation() ;
81 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
83 virtual ::EventResult onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> data) ;
85 virtual ::EventResult onNpcInteractScreenClose(::ActorUniqueID npcId,
bool performClosingActions) ;
87 virtual bool _isStillValid() const ;
93 MCAPI NpcInteractScreenController(
94 ::std::shared_ptr<::ClientInstanceScreenModel> model,
96 ::std::shared_ptr<::INpcDialogueData> dialogueData
99 MCAPI
void _addNewDeferredButtonTexts(uint64 actionIndex);
101 MCAPI ::Actor* _getActor() const;
103 MCAPI ::std::
string _getDialogText() const;
105 MCAPI
void _handleTextChanged(::NpcInteractScreenController::NpcTextEdit edit,
int index);
107 MCAPI
bool _isAddActionAllowed();
109 MCAPI ::ui::ViewRequest _leaveFrom(::NpcInteractScreenController::Section fromSection);
111 MCAPI
void _registerBindings();
113 MCAPI
void _registerEventHandlers();
119 MCFOLD static
void _bagVecs(::UIPropertyBag& bag, ::NpcGUIOffset const& offsets);
126 ::std::shared_ptr<::ClientInstanceScreenModel> model,
128 ::std::shared_ptr<::INpcDialogueData> dialogueData
141 MCAPI ::ui::DirtyFlag $tick();
143 MCAPI
void $onTerminate();
145 MCAPI
void $onCreation();
147 MCFOLD
void $addStaticScreenVars(::Json::Value& globalVars);
149 MCAPI ::EventResult $onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> data);
151 MCAPI ::EventResult $onNpcInteractScreenClose(::ActorUniqueID npcId,
bool performClosingActions);
153 MCAPI
bool $_isStillValid() const;
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition NpcEventListener.h:14
Definition NpcInteractScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftable()
static MCAPI void ** $vftableForScreenController()
Definition ActorUniqueID.h:5
Definition DeferredTextObject.h:5
Definition INpcDialogueData.h:12
Definition NpcGUIOffset.h:5
Definition NpcInteractScreenController.h:19
Definition UIPropertyBag.h:5