Overview
ThePluginManager class is the core plugin manager responsible for loading and managing plugin extensions in Frosty Toolsuite. It discovers plugins from the Plugins/ directory, validates them, and provides access to various extension types.
Constructor
PluginManager
ILogger
required
The logging interface the plugin manager should use
PluginManagerType
required
The context which this plugin should load for (Editor, ModManager, or Both)
Properties
ManagerType
Plugins
LoadedPlugins
MenuExtensions
TabExtensions
DataExplorerContextMenuExtensions
ExecutionActions
OptionsExtensions
Profiles
StartupActions
Methods
Initialize
GetAssetDefinition
AssetDefinition for the specified asset type.
string
required
The type of the asset definition to obtain (case-insensitive)
AssetDefinition
The AssetDefinition for the specified type, or null if not found
GetTypeEditor
string
required
The lookup name of the type editor to obtain (case-insensitive)
Type
The Type of the type editor, or null if not found
GetTypeOverride
string
required
The lookup name of the type override to obtain (case-insensitive)
Type
The Type of the type override, or null if not found
GetCustomHandler
string
The EBX type name to get a handler for
uint
The FNV1 hash of the EBX type
ResourceType
The resource type to get a handler for
ICustomActionHandler
A new instance of the custom handler, or null if not found
GetPluginAssembly
string
required
The name of the plugin to obtain
Assembly
The Assembly of the plugin, or null if not found
GetLocalizedStringDatabase
ILocalizedStringDatabase
The constructed localized string database instance
GetShader
ShaderType
required
The type of shader (VertexShader, PixelShader, or ComputeShader)
string
required
The resource name of the shader
byte[]
The bytecode of the shader, or null if not found
GetUserShaders
IEnumerable<string>
Collection of user shader descriptors
IsThirdPartyDll
string
required
The name of the DLL to check (case-insensitive)
bool
True if the DLL is registered as third-party
IsManagerType
PluginManagerType
required
The manager type to check (Editor, ModManager, or Both)
bool
True if the manager type matches
LoadPlugin
string
required
The path to the target plugin DLL
PluginLoadType?
Optional. Determines what should be loaded from the plugin (Startup or Initialize)
Plugin
A Plugin instance. Check the Status property for load success/failure
Enumerations
PluginManagerType
PluginLoadType
- Startup: Loaded before profile initialization (profiles, type overrides, global editors)
- Initialize: Loaded after profile initialization (asset definitions, menu extensions, handlers)