73enum class PetrichorLogLevel : uint8_t { Info = 0, Warn, Error, Debug };
90 virtual void log(PetrichorLogLevel level,
const char* tag,
const char* msg)
const = 0;
103 virtual const char*
store_dir()
const {
return nullptr; }
113 virtual const char*
version()
const {
return "unversioned"; }
160void petrichor_run(
IPetrichorHost& host, std::vector<std::string> formats = {
"prm",
"zip"});
186void petrichor_unload_mod(
const char*
id);
195void petrichor_reload_mod(
const char*
id);
204std::vector<std::string> petrichor_poll_changes();
212void petrichor_rescan_dir(
IPetrichorHost& host, std::vector<std::string> formats = {
"prm",
"zip"});
219std::vector<PetrichorManifest> petrichor_get_mods();
231 using ModuleFactory = int(*)(lua_State*);
242 void luau_register_module(
const char* name, ModuleFactory factory);
250 lua_State* lua_state();
Petrichor consumer-level interface.
Definition petrichor.h:83
virtual const char * temp_dir() const =0
Returns the host's temporary working directory.
virtual const char * mods_dir() const =0
Returns the root directory containing installed packages.
virtual const char * version() const
Returns the current project version.
Definition petrichor.h:113
virtual const char * store_dir() const
Returns the directory used for persistent package storage.
Definition petrichor.h:103
virtual const char * project_name() const
Returns the current project name.
Definition petrichor.h:144
virtual void mod_ctx_exit()
Notifies the host that the current mod context is ending.
Definition petrichor.h:135
virtual void log(PetrichorLogLevel level, const char *tag, const char *msg) const =0
Writes a log message through the host.
virtual ~IPetrichorHost()=default
Virtual destructor.
virtual void mod_ctx_enter(const char *dir, const char *id)
Notifies the host that a mod's context is becoming active.
Definition petrichor.h:127
Manifest describing a Petrichor package.
Definition petrichor.h:32
char name[128]
Human-readable package name.
Definition petrichor.h:37
char entry[128]
Relative path to the package entry point.
Definition petrichor.h:46
char version[32]
Package version string.
Definition petrichor.h:52
std::vector< std::string > conflicts
List of incompatible package IDs.
Definition petrichor.h:64
std::string dir
Absolute path to the package's root directory.
Definition petrichor.h:67
char hostVersion[32]
Host-project version string.
Definition petrichor.h:55
char engineVersion[32]
Petrichor engine version string.
Definition petrichor.h:58
char kind[16]
Package kind: "code", "asset", or "mixed".
Definition petrichor.h:40
char author[128]
Package author.
Definition petrichor.h:49
char type[32]
Package type or category.
Definition petrichor.h:43
std::string desc
Package description.
Definition petrichor.h:61