3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/screens/controllers/ClientInstanceScreenController.h"
7#include "mc/world/events/EventResult.h"
8#include "mc/world/events/NpcEventListener.h"
17namespace Json {
class Value; }
25 enum class InteractionState : schar {};
30 ::ll::TypedStorage<8, 8, ::Player&> mPlayer;
31 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::INpcDialogueData>> mDialogueData;
32 ::ll::TypedStorage<1, 1, ::NpcDialogScreenController::InteractionState> mState;
37 NpcDialogScreenController& operator=(NpcDialogScreenController
const&);
38 NpcDialogScreenController(NpcDialogScreenController
const&);
39 NpcDialogScreenController();
44 virtual ~NpcDialogScreenController() =
default;
46 virtual void onCreation() ;
48 virtual void addStaticScreenVars(::Json::Value& globalVars) ;
50 virtual ::EventResult onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> data) ;
52 virtual ::EventResult onNpcInteractScreenClose(::ActorUniqueID npcId,
bool performClosingActions) ;
58 MCAPI NpcDialogScreenController(
59 ::std::shared_ptr<::ClientInstanceScreenModel> model,
61 ::std::shared_ptr<::INpcDialogueData> dialogueData
64 MCAPI ::Actor* _getActor()
const;
66 MCAPI
void _leaveScreen(
bool performClosingActions);
68 MCAPI
void _openUrl(::std::string
const& url);
70 MCAPI
void _performAction(::std::variant<::npc::CommandAction, ::npc::UrlAction>
const* action,
int index);
72 MCAPI
void _registerBindings();
74 MCAPI
void _registerEventHandlers();
76 MCAPI
void _runCloseActions();
78 MCAPI
void _runOpenActions();
85 ::std::shared_ptr<::ClientInstanceScreenModel> model,
87 ::std::shared_ptr<::INpcDialogueData> dialogueData
94 MCAPI
void $onCreation();
96 MCFOLD
void $addStaticScreenVars(::Json::Value& globalVars);
98 MCAPI ::EventResult $onNpcDialogueDataChange(::std::shared_ptr<::INpcDialogueData> data);
100 MCAPI ::EventResult $onNpcInteractScreenClose(::ActorUniqueID npcId,
bool performClosingActions);
Definition ClientInstanceScreenController.h:5
Definition ClientInstanceScreenModel.h:5
Definition NpcDialogScreenController.h:5
static MCAPI void ** $vftable()
static MCAPI void ** $vftableForScreenController()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition NpcEventListener.h:14
Definition ActorUniqueID.h:5
Definition INpcDialogueData.h:12
Definition CommandAction.h:17
Definition UrlAction.h:11