mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Add ModMetadata API (#5131)
* mod can create a ModMetadata object where store its values and retrieve it. * Modmetadata object can only be fetched at mod loading * Save when modified using same time as map interval or at server stop * add helper function to get mod storage path * ModMetadata has exactly same calls than all every other Metadata
This commit is contained in:
parent
0680c47d6c
commit
ef6feca501
12 changed files with 384 additions and 12 deletions
|
@ -299,7 +299,8 @@ public:
|
|||
const ModSpec* getModSpec(const std::string &modname) const;
|
||||
void getModNames(std::vector<std::string> &modlist);
|
||||
std::string getBuiltinLuaPath();
|
||||
inline std::string getWorldPath() const { return m_path_world; }
|
||||
inline const std::string &getWorldPath() const { return m_path_world; }
|
||||
std::string getModStoragePath() const;
|
||||
|
||||
inline bool isSingleplayer()
|
||||
{ return m_simple_singleplayer_mode; }
|
||||
|
@ -360,6 +361,9 @@ public:
|
|||
void SendInventory(PlayerSAO* playerSAO);
|
||||
void SendMovePlayer(u16 peer_id);
|
||||
|
||||
bool registerModStorage(ModMetadata *storage);
|
||||
void unregisterModStorage(const std::string &name);
|
||||
|
||||
// Bind address
|
||||
Address m_bind_addr;
|
||||
|
||||
|
@ -650,6 +654,9 @@ private:
|
|||
// value = "" (visible to all players) or player name
|
||||
std::map<std::string, std::string> m_detached_inventories_player;
|
||||
|
||||
UNORDERED_MAP<std::string, ModMetadata *> m_mod_storages;
|
||||
float m_mod_storage_save_timer;
|
||||
|
||||
DISABLE_CLASS_COPY(Server);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue