Table of Contents

Namespace RisingV.Shared.Plugins

Classes

PluginComponentsManager

Manages shared components across plugins.

PluginConfig

Represents a plugin configuration class.

PluginConfigManager

Manages plugin configurations.

PluginContext

Represents the context for a plugin, providing access to plugin information, configuration, and Harmony instance.

PluginInfo

Represents information about a plugin.

PluginManager

Manages plugins in the RisingV framework.

RisingPluginBase

Base class for RisingV plugins.

Example Usage:

using BepInEx;
using RisingV.Shared.Plugins;
using RisingV.Shared.Engines;
using RisingV.Core.Engines;

public class MyCoolPluginConfig() : PluginConfig(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_GUID)
{
    public ConfigEntry<float> AttackModifier { get; set; } =
        new("Gameplay", "AttackModifier", 1f, "Modifier for attack damage");
}

public class MyCoolPluginContext() : PluginContext(typeof(MyPluginInfo), new MyCoolPluginConfig());

[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
[BepInDependency("RisingV.Core")]
[BepInDependency("RisingV.Scripting")]
public class Plugin : RisingPlugin<MyCoolPluginContext>
{
    protected override void OnInitialize()
    {
        EngineManager.AddEngine<ScriptingEngine>(this);
        EngineManager.AddEngine<DamageEngine>(this);
        EngineManager.AddEngine<DeathEngine>(this);

        // You can also register other systems, databases, or processors here
    }

    protected override void OnLoad()
    {
        // Plugin startup logic (pre-initialization)
    }

    protected override bool OnUnload()
    {
        return true;
    }
}
RisingSharedPlugin<TContext>

Base class for shared RisingV plugins with a specific context.

Interfaces

IHasPlugin

Represents an interface for objects that have a plugin associated with them.

IHasPluginContext<T>

Represents a plugin context that provides access to a specific type of plugin context.

IHasPlugin<T>

Represents an interface for objects that have a plugin associated with them, with a specific plugin type.

IPlugin

Represents a plugin in the RisingV framework.

IPluginComponent

Represents a component of a plugin that can be managed by the PluginComponentsManager.

IPluginConfig

Represents a plugin configuration interface.

IPluginContext

Represents the context in which a plugin operates.

IPlugin<T>

Represents a plugin in the RisingV framework with a specific plugin context.

Enums

PluginInfoType

Represents the type of plugin information.

PluginTarget

Represents the plugin target environments.