Plugins

Covers Engine Plugin SDK 2.0.0 · Interface Plugin SDK 0.2.0

BasePlugin

Root object implemented by an engine plugin.

Registration and runtime operations are both exposed by API::SDK_API.

Declaration

class BasePlugin {
    public:
        virtual ~BasePlugin() = default;
        BasePlugin(nlohmann::json cfg, API::SDK_API* drtw) : config(std::move(cfg)), dartwic(drtw) {}
        virtual void onPluginLoaded() {}
        virtual Modules::BaseModule* createModule(
            const std::string& module_type_id,
            nlohmann::json cfg,
            API::SDK_API* drtw
        ) {
            (void)module_type_id;
            (void)cfg;
            (void)drtw;
            return nullptr;
        }
        void setPluginId(const std::string& plugin_id_value) {
            plugin_id = plugin_id_value;
        }
        const std::string& getPluginId() const {
            return plugin_id;
        }

        nlohmann::json config = nlohmann::json::object();
        API::SDK_API* dartwic = nullptr;

    protected:
        std::string plugin_id;
    };