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"
22namespace Json {
class Value; }
33 enum class Section : uchar {
36 MaximizedActionEdit = 2,
40 enum class NpcTextEdit :
int {
47 enum class NpcTextErrorStatus : uchar {
49 ButtonSetUriEmpty = 1,
58 ::ll::TypedStorage<1, 1, ::npc::_ActionType::Enum> type;
59 ::ll::TypedStorage<8, 104, ::DeferredTextObject> name;
60 ::ll::TypedStorage<8, 104, ::DeferredTextObject> text;
61 ::ll::TypedStorage<1, 1, ::NpcInteractScreenController::NpcTextErrorStatus> state;
68 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
69 ::ll::TypedStorage<1, 1, ::NpcInteractScreenController::Section> mVisibleSection;
70 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::INpcDialogueData>> mDialogueData;
71 ::ll::TypedStorage<1, 1, bool> mShouldRefresh;
72 ::ll::TypedStorage<1, 1, bool> mHasActionWarning;
73 ::ll::TypedStorage<1, 1, bool> mSaveToServer;
74 ::ll::TypedStorage<4, 4, int> mMaxSkinsPerRow;
75 ::ll::TypedStorage<4, 4, int> mStartSkinIndex;
76 ::ll::TypedStorage<4, 4, int> mMaxSkinButtonIndex;
77 ::ll::TypedStorage<4, 4, int> mMaxSkinIndex;
78 ::ll::TypedStorage<4, 4, int> mSelectedSkinIndex;
79 ::ll::TypedStorage<4, 4, int> mHoverSkin;
80 ::ll::TypedStorage<4, 4, int> mMaximizedEditIndex;
81 ::ll::TypedStorage<4, 4, int> mActionDeleteIndex;
82 ::ll::TypedStorage<4, 4, int> mActionCollectionIndex;
83 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DeferredTextObject>> mDeferredNameText;
84 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DeferredTextObject>> mDeferredInteractText;
85 ::ll::TypedStorage<8, 24, ::std::vector<::NpcInteractScreenController::NpcActionEditData>> mDeferredActionTexts;
90 NpcInteractScreenController& operator=(NpcInteractScreenController
const&);
91 NpcInteractScreenController(NpcInteractScreenController
const&);
92 NpcInteractScreenController();
97 virtual ~NpcInteractScreenController() =
default;
99 virtual ::ui::DirtyFlag tick() ;
101 virtual void onTerminate() ;
103 virtual void onCreation() ;
105 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
107 virtual ::EventResult onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> dialogueData) ;
109 virtual ::EventResult onNpcInteractScreenClose(::ActorUniqueID npcId,
bool) ;
111 virtual bool _isStillValid() const ;
117 MCNAPI NpcInteractScreenController(
129 MCNAPI ::ui::ViewRequest
_leaveFrom(::NpcInteractScreenController::Section fromSection);
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition NpcEventListener.h:5
Definition NpcInteractScreenController.h:5
MCAPI void _addNewDeferredButtonTexts(uint64 actionIndex)
MCAPI::ui::ViewRequest _leaveFrom(::NpcInteractScreenController::Section fromSection)
MCAPI::EventResult $onNpcInteractScreenClose(::ActorUniqueID npcId, bool)
MCAPI bool $_isStillValid() const
MCAPI::EventResult $onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData > dialogueData)
MCAPI void * $ctor(::std::shared_ptr<::ClientInstanceScreenModel > model, ::Player &player, ::std::shared_ptr<::INpcDialogueData > dialogueData)
MCAPI void $onTerminate()
static MCAPI void _bagVecs(::UIPropertyBag &bag, ::NpcGUIOffset const &offsets)
MCAPI void $addStaticScreenVars(::Json::Value &globalVars)
MCAPI::ui::DirtyFlag $tick()
MCAPI void _saveEditsToServer()
MCAPI void _handleTextChanged(::NpcInteractScreenController::NpcTextEdit edit, int index)
MCAPI bool _isAddActionAllowed()
Definition UIPropertyBag.h:5
Definition ActorUniqueID.h:5
Definition INpcDialogueData.h:12
Definition NpcGUIOffset.h:8
Definition NpcInteractScreenController.h:19