29 using TextFilter = ::std::function<::std::string(::std::string
const&)>;
34 ::ll::TypedStorage<4, 4, int> mCurrentSkin;
35 ::ll::TypedStorage<4, 36, ::NpcGUIOffset> mPortraitOffsets;
36 ::ll::TypedStorage<4, 36, ::NpcGUIOffset> mPickerOffsets;
37 ::ll::TypedStorage<8, 24, ::std::vector<::SkinData>> mNPCSkins;
38 ::ll::TypedStorage<8, 48, ::npc::ActionContainer> mActionsContainer;
39 ::ll::TypedStorage<8, 64, ::std::unordered_map<::ActorUniqueID, ::std::string>> mPlayerSceneState;
40 ::ll::TypedStorage<8, 32, ::std::string> mDefaultSceneId;
41 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mInteractText;
42 ::ll::TypedStorage<8, 64, ::std::function<::std::string(::std::string
const&)>> mInteractTextFilter;
43 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::NpcI18nObserver>> mNpcI18nObserver;
44 ::ll::TypedStorage<1, 1, bool> mIsGloballyAccessed;
49 NpcComponent& operator=(NpcComponent
const&);
50 NpcComponent(NpcComponent
const&);
55 virtual ~NpcComponent();
63 MCAPI NpcComponent(::NpcComponent&& rhs);
65 MCAPI
void _defineEntityDataString(
::Actor& owner, ::ActorDataIDs
id);
69 MCAPI
void _loadData(
::Actor& owner);
72 MCAPI
void addAction(::std::variant<::npc::CommandAction, ::npc::UrlAction>&& action);
77 MCAPI
void clearSceneStateForAllPlayers();
79 MCAPI
void executeClosingCommands(
::Actor& owner,
::Player& sourcePlayer, ::std::string
const& sceneName);
82 executeCommandAction(
::Actor& owner,
::Player& sourcePlayer,
int actionIndex, ::std::string
const& sceneName);
84 MCAPI
void executeOpeningCommands(
::Actor& owner,
::Player& sourcePlayer, ::std::string
const& sceneName);
87 MCAPI ::std::variant<::npc::CommandAction, ::npc::UrlAction>* getActionAt(uint64 index);
89 MCAPI uint64 getActionCount()
const;
92 MCFOLD ::npc::ActionContainer& getActionsContainer();
94 MCAPI ::std::vector<int> getCommandCounts()
const;
96 MCFOLD ::std::string
const& getDefaultSceneId()
const;
101 MCAPI ::std::string
const& getInteractiveRawText(
::Actor const& owner)
const;
104 MCAPI ::std::string
const& getInteractiveText(
::Actor& owner)
const;
106 MCAPI ::std::string
const& getName(
::Actor const& owner)
const;
108 MCAPI ::std::string
const& getNameRawText(
::Actor const& owner)
const;
111 MCFOLD ::NpcGUIOffset
const& getPickerOffset()
const;
113 MCFOLD ::NpcGUIOffset
const& getPortraitOffset()
const;
116 MCAPI ::std::string
const& getSceneStateForPlayer(
::ActorUniqueID const& playerID)
const;
119 MCAPI ::SkinData
const& getSelectedSkinData()
const;
122 MCAPI uint64 getSkinCount()
const;
125 MCAPI ::SkinData
const& getSkinData(
int index)
const;
128 MCAPI
int getSkinIndex()
const;
130 MCAPI
int getUrlCount()
const;
132 MCAPI
void initClientOnlyData(
::Actor& owner);
134 MCAPI
void initFromDefinition(
::Actor& owner);
136 MCFOLD
bool isGloballyAccessed()
const;
138 MCAPI
void loadActions(
::Actor& owner);
140 MCAPI
void loadInteractiveRawText(
::Actor& owner);
142 MCAPI
void loadNPCData(
::Actor& owner);
144 MCAPI
void loadNameRawText(
::Actor& owner);
146 MCAPI ::NpcComponent& operator=(::NpcComponent&& rhs);
151 MCAPI
void removeActionAt(uint64 index);
153 MCAPI
void removeInteractiveTextFilter();
156 MCAPI ::std::string sanitizeRawText(::std::string
const& rawText)
const;
158 MCAPI
void setDefaultSceneId(::std::string sceneId);
160 MCAPI
bool setDialogueScene(
::Actor& owner, ::std::string
const& sceneName);
162 MCAPI
void setInteractiveText(
::Actor& owner, ::std::string
const& text,
bool setLocal);
166 setInteractiveTextFilter(::std::function<::std::string(::std::string
const&)> filter,
bool shouldRunFilter);
169 MCAPI
void setIsGloballyAccessed();
171 MCAPI
void setName(
::Actor& owner, ::std::string
const& name,
bool setLocal);
173 MCAPI
void setSceneStateForPlayer(
::Actor& owner,
::ActorUniqueID const& playerID, ::std::string
const& sceneName);
175 MCAPI
bool setSkinIndex(
::Actor& owner,
int skinIndex,
bool setLocal);
177 MCAPI
void syncActionsWithClient(
::Actor& owner);
180 MCAPI
void syncActionsWithServer(
::Actor& owner)
const;
187 MCAPI static ::std::string
const& ACTIONS_TAG();
189 MCAPI static ::std::string
const& INTERACTIVE_TAG();
191 MCAPI static ::std::string
const& NAME_RAW_TEXT_TAG();
193 MCAPI static ::std::string
const& PLAYER_ID_TAG();
195 MCAPI static ::std::string
const& PLAYER_SCENE_MAPPING_TAG();
197 MCAPI static ::std::string
const& SCENE_NAME_TAG();
199 MCAPI static ::std::string
const& URL_TAG();
207 MCAPI
void* $ctor(::NpcComponent&& rhs);