public static bool reload() { var oldeva = Evaluator; Evaluator = MonoScript.New(new Reporter(), typeof(Script), (oldeva == null && Patchwork.settings.cacheScripts)?Dir.cache:null); Output = Evaluator.tw; Error = Evaluator.tw; Assembly sass = null; try { sass = ScriptEntry.CompileScripts(); } catch (Exception ex) { print(ex); } if (sass == null) { print("Script reload failed; trying to retain old script base."); Evaluator.Dispose(); Evaluator = oldeva; return(false); } oldeva?.Dispose(); var newbase = sass.GetType("ScriptEnv"); if (newbase != null) { Evaluator.InteractiveBaseClass = newbase; } if (!firstRun) { firstRun = true; MBProxy.Attach(); ScriptEntry.RunDLLs(); } print("Scripts reloaded"); return(true); }