28 using TextFilter = ::std::function<::std::string(::std::string
const&)>;
33 ::ll::TypedStorage<4, 4, int> mCurrentSkin;
34 ::ll::TypedStorage<4, 36, ::NpcGUIOffset> mPortraitOffsets;
35 ::ll::TypedStorage<4, 36, ::NpcGUIOffset> mPickerOffsets;
36 ::ll::TypedStorage<8, 24, ::std::vector<::SkinData>> mNPCSkins;
37 ::ll::TypedStorage<8, 48, ::npc::ActionContainer> mActionsContainer;
38 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ActorUniqueID, ::std::string>> mPlayerSceneState;
39 ::ll::TypedStorage<8, 32, ::std::string> mDefaultSceneId;
40 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mInteractText;
41 ::ll::TypedStorage<8, 64, ::std::function<::std::string(::std::string
const&)>> mInteractTextFilter;
42 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::NpcI18nObserver>> mNpcI18nObserver;
43 ::ll::TypedStorage<1, 1, bool> mIsGloballyAccessed;
48 NpcComponent& operator=(NpcComponent
const&);
49 NpcComponent(NpcComponent
const&);
55 virtual ~NpcComponent();
61 MCAPI NpcComponent(::NpcComponent&& rhs);
63 MCAPI
void _defineEntityDataString(
::Actor& owner, ::ActorDataIDs
id);
67 MCAPI
void _loadData(
::Actor& owner);
71 MCAPI
void executeClosingCommands(
::Actor& owner,
::Player& sourcePlayer, ::std::string
const& sceneName);
74 executeCommandAction(
::Actor& owner,
::Player& sourcePlayer,
int actionIndex, ::std::string
const& sceneName);
76 MCAPI
void executeOpeningCommands(
::Actor& owner,
::Player& sourcePlayer, ::std::string
const& sceneName);
78 MCAPI ::std::vector<int> getCommandCounts()
const;
82 MCAPI_C ::std::string
const& getInteractiveRawText(
::Actor const& owner)
const;
84 MCAPI ::std::string
const& getInteractiveText(
::Actor& owner)
const;
86 MCAPI_C ::std::string
const& getName(
::Actor const& owner)
const;
88 MCAPI ::std::string
const& getSceneStateForPlayer(
::ActorUniqueID const& playerID)
const;
90 MCAPI
void initClientOnlyData(
::Actor& owner);
92 MCAPI
void initFromDefinition(
::Actor& owner);
94 MCAPI
void loadActions(
::Actor& owner);
96 MCAPI
void loadInteractiveRawText(
::Actor& owner);
98 MCAPI ::NpcComponent& operator=(::NpcComponent&& rhs);
102 MCAPI ::std::string sanitizeRawText(::std::string
const& rawText)
const;
105 setActions(
::Actor& owner, ::std::vector<::std::variant<::npc::CommandAction, ::npc::UrlAction>>&& newActions);
107 MCAPI
bool setDialogueScene(
::Actor& owner, ::std::string
const& sceneName);
109 MCAPI
void setInteractiveText(
::Actor& owner, ::std::string
const& text,
bool setLocal);
112 setInteractiveTextFilter(::std::function<::std::string(::std::string
const&)> filter,
bool shouldRunFilter);
114 MCAPI
void setName(
::Actor& owner, ::std::string
const& name,
bool setLocal);
116 MCAPI
bool setSkinIndex(
::Actor& owner,
int skinIndex,
bool setLocal);
118 MCAPI_C
void syncActionsWithServer(
::Actor& owner)
const;
124 MCAPI static ::std::string
const& ACTIONS_TAG();
126 MCAPI static ::std::string
const& INTERACTIVE_TAG();
128 MCAPI static ::std::string
const& NAME_RAW_TEXT_TAG();
130 MCAPI static ::std::string
const& PLAYER_ID_TAG();
132 MCAPI static ::std::string
const& PLAYER_SCENE_MAPPING_TAG();
134 MCAPI static ::std::string
const& SCENE_NAME_TAG();
136 MCAPI static ::std::string
const& URL_TAG();
142 MCAPI
void* $ctor(::NpcComponent&& rhs);