public ScriptingModule() { Instance = this; PredefinedHooks = new HashSet <string>(StringComparer.OrdinalIgnoreCase); PredefinedHooks.SetupFromEnum <ScriptHook>(); FindAllScripts(); }
private static void ListAll() { var scripts = ScriptingModule.GetCallableMethods(); StringBuilder sb = new StringBuilder(scripts.Count * 64); foreach (var s in scripts) { sb.AppendLine(string.Format("{0} : {1}", s.Key, s.Value.ToString())); } ConsoleModule.WriteLine(sb.ToString()); }
private static void CallHooked(string hook) { if (Enum.TryParse <ScriptHook>(hook, out ScriptHook parsedHook)) { ScriptingModule.CallHooked(parsedHook, null, new object[] { }); } else { ConsoleModule.WriteLine($"Failed to call hooked scripts because \"{hook}\" is not a valid built-in hook (were you looking for CallNamedHooked instead?)"); } }
private static void Call(string script, string arg0, string arg1, string arg2) { try { ScriptingModule.Call(script, new ScriptExecutionContext { Activator = null, Caller = null }, arg0, arg1, arg2); } catch (Exception e) { ConsoleModule.WriteLine(string.Format("Error in script {0}\n{1}\n{2}", script, e.ToString(), e.StackTrace)); } }
private static void CallForResult(string script, string arg0) { try { var result = ScriptingModule.CallForResult(script, new ScriptExecutionContext { Activator = null, Caller = null }, arg0); ConsoleModule.WriteLine($"Returned '{result?.ToString() ?? "null"}' [{result?.GetType().Name}]"); } catch (Exception e) { ConsoleModule.WriteLine(string.Format("Error in script {0}\n{1}\n{2}", script, e.ToString(), e.StackTrace)); } }
private static void RegisterTestDelegate() { Func <ScriptExecutionContext, string> func = (sec) => { Debug.Log("Hello world! (from an anonymous method)"); return("TestDelegateResult"); }; ScriptingModule.Register(func, "Test", "Delegate"); }
private static void CallNamedHooked(string hook) { ScriptingModule.CallNamedHooked(hook, null, new object[] { }); }
public ScriptingModule() { Instance = this; FindAllScripts(); }