/// <summary>
/// Load the plugin given.
/// </summary>
/// <param name="name">The name of the plugin instance.</param>
/// <param name="type">The plugin type to load.</param>
/// <param name="pluginLoadData">The data for this plugin.</param>
/// <param name="backupLoadData">The data for this plugin if the first fails.</param>
/// <param name="createResourceDirectory">Whether to create a resource directory or not.</param>
protected virtual T LoadPlugin(string name, Type type, PluginBaseLoadData pluginLoadData, PluginLoadData backupLoadData, bool createResourceDirectory)
{
//Ensure the resource directory is present
if (createResourceDirectory)
{
dataManager.CreateResourceDirectory(type.Name);
}
T plugin = pluginFactory.Create <T>(type, pluginLoadData);
plugins.Add(name, plugin);
return(plugin);
}