From eecede10734bff6594a8b5498250b8bade2a310e Mon Sep 17 00:00:00 2001 From: mavnn Date: Thu, 11 Dec 2025 18:29:45 +0100 Subject: [PATCH] Allow IPlugins to be passed directly to the compiler --- compiler/Compiler.cs | 8 ++++++-- compiler/Plugins/PluginManager.cs | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/compiler/Compiler.cs b/compiler/Compiler.cs index dab1ddaa..79bfc5b5 100644 --- a/compiler/Compiler.cs +++ b/compiler/Compiler.cs @@ -10,6 +10,7 @@ public class Options { public string sourceFilename; public List pluginDirectories; + public List plugins; public bool countAllVisits; public Ink.ErrorHandler errorHandler; public Ink.IFileHandler fileHandler; @@ -25,8 +26,11 @@ public Compiler (string inkSource, Options options = null) { _inputString = inkSource; _options = options ?? new Options(); - if( _options.pluginDirectories != null ) - _pluginManager = new PluginManager (_options.pluginDirectories); + if( _options.pluginDirectories != null || _options.plugins != null) + { + var directories = _options.pluginDirectories != null ? _options.pluginDirectories : new List(); + _pluginManager = new PluginManager(directories, _options.plugins); + } } public Parsed.Story Parse() diff --git a/compiler/Plugins/PluginManager.cs b/compiler/Plugins/PluginManager.cs index fa3f42ea..3f9547f9 100644 --- a/compiler/Plugins/PluginManager.cs +++ b/compiler/Plugins/PluginManager.cs @@ -7,11 +7,11 @@ namespace Ink { public class PluginManager { - public PluginManager (List pluginDirectories) + public PluginManager (List pluginDirectories, List plugins = null) { - _plugins = new List (); + _plugins = plugins != null ? plugins : new List(); - foreach (string pluginName in pluginDirectories) + foreach (string pluginName in pluginDirectories) { foreach (string file in Directory.GetFiles(pluginName, "*.dll")) {