internal ScriptFunctions(ScriptReturnData srd, string dataFilesPath, string pluginsPath, Framework _f, IScriptRunnerFunctions scriptRunnerFunctions) { f = _f; //Warn = scriptRunnerFunctions.Warn; IDialogYesNo = scriptRunnerFunctions.DialogYesNo; ExistsFile = scriptRunnerFunctions.ExistsFile; GetFileVersion = scriptRunnerFunctions.GetFileVersion; DialogSelect = scriptRunnerFunctions.DialogSelect; IMessage = scriptRunnerFunctions.Message; IDisplayImage = scriptRunnerFunctions.DisplayImage; IDisplayText = scriptRunnerFunctions.DisplayText; IInputString = scriptRunnerFunctions.InputString; IGetActiveESPNames = scriptRunnerFunctions.GetActiveESPNames; IGetFile = scriptRunnerFunctions.GetFileFromPath; IGetExistingESPNames = scriptRunnerFunctions.GetExistingESPNames; IUncheckESP = scriptRunnerFunctions.UncheckESP; IRegisterBSA = scriptRunnerFunctions.RegisterBSA; IUnregisterBSA = scriptRunnerFunctions.UnregisterBSA; IReadINI = scriptRunnerFunctions.ReadINI; IReadRendererInfo = scriptRunnerFunctions.ReadRendererInfo; this.srd = srd; DataFiles = dataFilesPath; Plugins = pluginsPath; }
/// <summary> /// The ScriptRunner is responsible for running a script inside an OMOD /// </summary> /// <param name="omod">The OMOD with the script to be executed</param> /// <param name="scriptRunnerFunctions">All callback functions for execution</param> public ScriptRunner(ref OMOD omod, IScriptRunnerFunctions scriptRunnerFunctions) { OMOD = omod; ScriptRunnerFunctions = scriptRunnerFunctions; script = omod.GetScript(); if ((byte)script[0] >= (byte)ScriptType.Count) { type = ScriptType.obmmScript; } else { type = (ScriptType)script[0]; script = script.Substring(1); } DataPath = omod.ExtractDataFiles(); PluginsPath = omod.ExtractPlugins(); }