コード例 #1
0
 internal void AddType(string anims)
 {
     lock (Meanings)
     {
         if (!Meanings.Contains(anims))
         {
             anims = string.Intern(anims);
             Meanings.Add(anims);
             List <UUID> AMeanings = SimAssetStore.MeaningUUIDs(anims);
             if (!AMeanings.Contains(AssetID))
             {
                 AMeanings.Add(AssetID);
             }
         }
     }
 }
コード例 #2
0
        //private delegate bool AnimationTest(ICollection<UUID> thisEvent);

        private void StartOrStopAnimEvent(IDictionary <UUID, int> RemovedThisEvent, IDictionary <UUID, int> AddedThisEvent, string name, IList <CogbotEvent> startStops)
        {
            int         wasStarted = 0;
            int         wasStopped = 0;
            List <UUID> e          = SimAssetStore.MeaningUUIDs(name);

            //  if (e.Count==0) throw new NoSuchElementException(name);
            foreach (UUID list in e)
            {
                if (AddedThisEvent.ContainsKey(list))
                {
                    wasStarted = AddedThisEvent[list];
                    AddedThisEvent.Remove(list);
                }
            }
            foreach (UUID list in e)
            {
                if (RemovedThisEvent.ContainsKey(list))
                {
                    wasStopped = RemovedThisEvent[list];
                    RemovedThisEvent.Remove(list);
                }
            }
            if (wasStarted != 0 && wasStopped != 0)
            {
                return;
            }
            if (wasStarted != 0)
            {
                CogbotEvent simEvent = CreateAEvent(SimEventType.Start, name, SimEventType.ANIM | SimEventType.REGIONAL,
                                                    WorldObjects.ToParameter("doneBy", this),
                                                    WorldObjects.ToParameter("eventOccursAt", GetHeading()));
                simEvent.Serial = wasStarted;
                startStops.Add(simEvent);
            }
            if (wasStopped != 0)
            {
                CogbotEvent simEvent = CreateAEvent(SimEventType.Stop, name, SimEventType.ANIM | SimEventType.REGIONAL,
                                                    WorldObjects.ToParameter("doneBy", this),
                                                    WorldObjects.ToParameter("toLocation", GetHeading()));
                simEvent.Serial = wasStopped;
                startStops.Insert(0, simEvent);
            }
        }