public ScriptEventListener(ScriptInterpreter interp, BotClient client) { taskInterperter = interp; taskInterperter.Intern("Client", client); taskInterperter.Intern("thisClient", client); if (client != null) WorldSystem = client.WorldSystem; thrJobQueue = new Thread(jobManager); thrJobQueue.Name = string.Format("ScriptEventListener Thread for {0}", (client ?? (Object)"ClientManager")); thrJobQueue.Start(); }
public ScriptEventListener(ScriptInterpreter interp, BotClient client) { taskInterperter = interp; taskInterperter.Intern("Client", client); taskInterperter.Intern("thisClient", client); if (client != null) { WorldSystem = client.WorldSystem; } thrJobQueue = new Thread(jobManager); thrJobQueue.Name = string.Format("ScriptEventListener Thread for {0}", (client ?? (Object)"ClientManager")); thrJobQueue.Start(); }
public void Intern(string n, object v) { if (_LispTaskInterperter != null) { _LispTaskInterperter.Intern(n, v); } var PrevCode = CatchUpInterns; CatchUpInterns = () => { PrevCode(); _LispTaskInterperter.Intern(n, v); }; }
private static bool IsCodeMatch(SimObject obj, object smatch) { ScriptInterpreter interp = GetScriptInterpreter(); lock (interp) { interp.Intern("this", obj); interp.Intern("thisClient", WorldObjects.GridMaster.client); string res = interp.Str(interp.Eval(smatch)); if (res.ToLower().StartsWith("t")) { return(true); } return(false); } }
public void initTaskInterperter() { lock (LispTaskInterperterLock) { if (_lispTaskInterperter == null) { if (!LispTaskInterperterNeedLoad) { return; throw new NullReferenceException("_lispTaskInterperter"); } LispTaskInterperterNeedLoad = false; try { DebugWriteLine(OpenMetaverse.Helpers.LogLevel.Debug, "Start Loading Main TaskInterperter ... '" + taskInterpreterType + "' \n"); _lispTaskInterperter = ScriptManager.LoadScriptInterpreter(taskInterpreterType, this, null); _lispTaskInterperter.LoadFile("cogbot.lisp",WriteLine); _lispTaskInterperter.Intern("clientManager", this); _scriptEventListener = new ScriptEventListener(_lispTaskInterperter, null); ///_lispTaskInterperter.Intern("thisClient", this); DebugWriteLine(OpenMetaverse.Helpers.LogLevel.Debug,"Completed Loading TaskInterperter '" + taskInterpreterType + "'\n"); // load the initialization string } catch (Exception e) { WriteLine("!Exception: " + e.GetBaseException().Message); WriteLine("error occured: " + e.Message); WriteLine(" Stack: " + e.StackTrace.ToString()); } } else { return;// _lispTaskInterperter; } } return;// _lispTaskInterperter; }