示例#1
0
        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));
     }
 }
示例#6
0
        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[] { });
 }
示例#8
0
        public ScriptingModule()
        {
            Instance = this;

            FindAllScripts();
        }