public override void SetFromString(string inlist) { string[] strings = null; if (inlist == "<xor></xor>") { return; } if (IsORSyntax(inlist)) { inlist = inlist.Substring(1, inlist.Length - 2); strings = inlist.Split(new[] { "|" }, StringSplitOptions.None); } else { inlist = inlist.Replace("<ligt", "<li>"); strings = inlist.Split(new[] { "<xor><li>", "</li><li>", "</li></xor>" }, StringSplitOptions.RemoveEmptyEntries); } if (strings.Length == 0) { return; } foreach (string s in strings) { var u = (Unifiable)s; List.Add(u); Flags = u.Flags; } //best = strings[0]; }
/// <summary> /// /// </summary> /// <param name="objects"></param> private void AddKnowns(IEnumerable <SimObject> objects) { lock (objects) { foreach (SimObject obj in objects) { if (obj != this) { if (obj.IsRoot || obj.Affordances.IsTyped) { //lock (KnownSimObjects) if (!KnownSimObjects.Contains(obj)) { KnownSimObjects.Add(obj); IList <SimTypeUsage> uses = obj.Affordances.GetTypeUsages(); foreach (SimTypeUsage use in uses) { lock (_knownTypeUsages) if (!_knownTypeUsages.Contains(use)) { _knownTypeUsages.Add(use); } } } } } } } }
private bool SkippedVerb(string verb) { KnownSet.Add(verb); if (Always.Contains(verb)) { return(false); } if (Never.Contains(verb)) { return(true); } return(!DefaultUse); }
public ListAsSet <Abortable> AllTaskQueues() { ListAsSet <Abortable> all = ClientManager.AllTaskQueues(); foreach (var tq in TaskQueueHandler.TaskQueueHandlers) { if (tq.Owner == this) { all.Add(tq); } } all.AddRange(botCommandThreads); return(all); }
static public void RegisterThread(NativeThread systhread) { if (!AllThreads.Contains(systhread)) { AllThreads.Add(systhread); } else { } if (ThreadAdded != null) { ThreadAdded(systhread); } //AllThreads2Safe.Remove(systhread); }
public ListAsSet <SimObject> GetRelations(ICollection re) { var more = new ListAsSet <SimObject>(); foreach (var OP in re) { SimObject O = AsSimObject(OP); if (O == null) { continue; } more.Add(O); AsPrimitives(more, O.Children); SimObject P = O.Parent; if (P != O) { AsPrimitives(more, P.Children); } } return(more); }
public SimObject GetNextInterestingObject() { SimObject mostInteresting = null; if (InterestingObjects.Count < 2) { InterestingObjects = Actor.GetKnownObjects(); lock (InterestingObjects) InterestingObjects.Remove(Actor); } int count = InterestingObjects.Count - 2; foreach (BotMentalAspect cAspect in InterestingObjects) { if (cAspect is SimObject) { if (mostInteresting == null) { mostInteresting = (SimObject)cAspect; /// break; } else { mostInteresting = (SimObject)CompareTwo(mostInteresting, cAspect); } count--; if (count < 0) { break; } } } lock (InterestingObjects) { InterestingObjects.Remove(mostInteresting); InterestingObjects.Add(mostInteresting); } return(mostInteresting); }
public void EnsureSimulator(Simulator simulator) { if (simulator == null || simulator.Handle == 0) { return; } if (!Monitor.TryEnter(_AllSimulators, 10000)) { WriteLine("Cant lock _AllSimulators"); return; } lock (SimMaster) { if (!SimMaster.ContainsKey(simulator.Handle)) { SimMaster[simulator.Handle] = this; MasteringRegions.AddTo(simulator.Handle); } } try { { foreach (Simulator set in _AllSimulators) { if (set.Handle == simulator.Handle && set.Client == simulator.Client) { return; } } _AllSimulators.Add(simulator); } SimRegion.GetRegion(simulator); } finally { Monitor.Exit(_AllSimulators); } }
public ListAsSet<Abortable> AllTaskQueues() { var all = new ListAsSet<Abortable>(); foreach (var tq in TaskQueueHandler.TaskQueueHandlers) { if (tq.Owner == null) all.Add(tq); } return all; }
public void Network_OnSimConnectedHook(object sender, SimConnectedEventArgs e) { Simulator simulator = e.Simulator; ///base.Network_OnSimConnected(simulator); lock (WorldObjectsMasterLock) { if (simulator.Handle == 0) { Debug("Simulator Handle==0 for " + simulator); return; } EnsureSimulator(simulator); IsConnected = true; if (SimRegion.IsMaster(simulator, client.gridClient)) { Debug("---SIMMASTER---------" + client + " region: " + simulator); SetWorldMaster(true); SimMaster[simulator.Handle] = this; //client.Grid.RequestMapRegion(simulator.Name, GridLayerType.Objects); if (simulator.Name.Length > 0) { client.Grid.RequestMapRegion(simulator.Name, GridLayerType.Terrain); } else { Debug("no sim bname " + simulator); } client.Estate.RequestInfo(); //client.Grid.RequestMapRegion(simulator.Name, GridLayerType.LandForSale); //client.Grid.RequestMapItems(simulator.Handle,OpenMetaverse.GridItemType.Classified,GridLayerType.Terrain); MasteringRegions.Add(simulator.Handle); var MaintainSimCollisionsList = WorldPathSystem.MaintainSimCollisionsList; if (simulator == client.Network.CurrentSim) { lock (MaintainSimCollisionsList) { if (!MaintainSimCollisionsList.Contains(simulator.Handle)) { MaintainSimCollisionsList.Add(simulator.Handle); } } } //RequestGridInfos(simulator.Handle); } else { Debug("-----NOT SIMMASTER-------" + client + " region: " + simulator); MasteringRegions.Remove(simulator.Handle); if (MasteringRegions.Count == 0) { SetWorldMaster(false); Debug("------UNREGISTERING------" + client); } } } if (simulator == client.Network.CurrentSim) { StartupPostLoginQueues(); // new Thread(() => client.Appearance.SetPreviousAppearance(true)).Start(); } //if (simulator == client.Network.CurrentSim) { new Thread(() => { Thread.Sleep(30000); client.Appearance.SetPreviousAppearance(true); }).Start(); } }