3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/DeferredTextObject.h"
7#include "mc/client/gui/DirtyFlag.h"
8#include "mc/client/gui/ViewRequest.h"
9#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
10#include "mc/world/actor/npc/action_type/Enum.h"
11#include "mc/world/events/EventResult.h"
12#include "mc/world/events/NpcEventListener.h"
23namespace Json {
class Value; }
34 enum class Section : uchar {
37 MaximizedActionEdit = 2,
41 enum class NpcTextEdit :
int {
48 enum class NpcTextErrorStatus : uchar {
50 ButtonSetUriEmpty = 1,
59 ::ll::TypedStorage<1, 1, ::npc::_ActionType::Enum> type;
60 ::ll::TypedStorage<8, 104, ::DeferredTextObject> name;
61 ::ll::TypedStorage<8, 104, ::DeferredTextObject> text;
62 ::ll::TypedStorage<1, 1, ::NpcInteractScreenController::NpcTextErrorStatus> state;
67 NpcActionEditData& operator=(NpcActionEditData
const&);
68 NpcActionEditData(NpcActionEditData
const&);
74 MCAPI NpcActionEditData(::NpcInteractScreenController::NpcActionEditData&&);
76 MCAPI ~NpcActionEditData();
82 MCAPI
void* $ctor(::NpcInteractScreenController::NpcActionEditData&&);
95 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
96 ::ll::TypedStorage<1, 1, ::NpcInteractScreenController::Section> mVisibleSection;
97 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::INpcDialogueData>> mDialogueData;
98 ::ll::TypedStorage<1, 1, bool> mShouldRefresh;
99 ::ll::TypedStorage<1, 1, bool> mHasActionWarning;
100 ::ll::TypedStorage<1, 1, bool> mSaveToServer;
101 ::ll::TypedStorage<4, 4, int> mMaxSkinsPerRow;
102 ::ll::TypedStorage<4, 4, int> mStartSkinIndex;
103 ::ll::TypedStorage<4, 4, int> mMaxSkinButtonIndex;
104 ::ll::TypedStorage<4, 4, int> mMaxSkinIndex;
105 ::ll::TypedStorage<4, 4, int> mSelectedSkinIndex;
106 ::ll::TypedStorage<4, 4, int> mHoverSkin;
107 ::ll::TypedStorage<4, 4, int> mMaximizedEditIndex;
108 ::ll::TypedStorage<4, 4, int> mActionDeleteIndex;
109 ::ll::TypedStorage<4, 4, int> mActionCollectionIndex;
110 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DeferredTextObject>> mDeferredNameText;
111 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DeferredTextObject>> mDeferredInteractText;
112 ::ll::TypedStorage<8, 24, ::std::vector<::NpcInteractScreenController::NpcActionEditData>> mDeferredActionTexts;
117 NpcInteractScreenController& operator=(NpcInteractScreenController
const&);
118 NpcInteractScreenController(NpcInteractScreenController
const&);
119 NpcInteractScreenController();
124 virtual ~NpcInteractScreenController() ;
126 virtual ::ui::DirtyFlag tick() ;
128 virtual void onTerminate() ;
130 virtual void onCreation() ;
132 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
134 virtual ::EventResult onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> dialogueData) ;
136 virtual ::EventResult onNpcInteractScreenClose(::ActorUniqueID npcId,
bool performClosingActions) ;
138 virtual bool _isStillValid() const ;
144 MCAPI NpcInteractScreenController(
145 ::std::shared_ptr<::ClientInstanceScreenModel> model,
147 ::std::shared_ptr<::INpcDialogueData> dialogueData
150 MCAPI
void _addNewDeferredButtonTexts(uint64 actionIndex);
152 MCAPI ::Actor* _getActor() const;
154 MCAPI ::std::
string _getDialogText() const;
156 MCAPI
void _handleTextChanged(::NpcInteractScreenController::NpcTextEdit edit,
int index);
158 MCAPI
bool _isAddActionAllowed();
160 MCAPI ::ui::ViewRequest _leaveFrom(::NpcInteractScreenController::Section fromSection);
162 MCAPI
void _registerBindings();
164 MCAPI
void _registerEventHandlers();
170 MCFOLD static
void _bagVecs(::UIPropertyBag& bag, ::NpcGUIOffset const& offsets);
177 ::std::shared_ptr<::ClientInstanceScreenModel> model,
179 ::std::shared_ptr<::INpcDialogueData> dialogueData
192 MCAPI ::ui::DirtyFlag $tick();
194 MCAPI
void $onTerminate();
196 MCAPI
void $onCreation();
198 MCFOLD
void $addStaticScreenVars(::Json::Value& globalVars);
200 MCAPI ::EventResult $onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> dialogueData);
202 MCAPI ::EventResult $onNpcInteractScreenClose(::ActorUniqueID npcId,
bool performClosingActions);
204 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 UIPropertyBag.h:5
Definition ActorUniqueID.h:5
Definition INpcDialogueData.h:12
Definition NpcGUIOffset.h:8
Definition NpcInteractScreenController.h:19