Пример #1
0
        public BaseEvent AddEvent(int _time, int _length)
        {
            BaseEvent baseEvent = (BaseEvent)Activator.CreateInstance(this.eventType);

            baseEvent.time = _time;
            if (this.isDurationEvent)
            {
                (baseEvent as DurationEvent).length = _length;
            }
            int num = 0;

            if (this.LocateInsertPos(_time, out num))
            {
                if (num > this.trackEvents.get_Count())
                {
                    num = this.trackEvents.get_Count();
                }
                this.trackEvents.Insert(num, baseEvent);
            }
            else
            {
                this.trackEvents.Add(baseEvent);
            }
            baseEvent.track = this;
            BaseEvent baseEvent2 = baseEvent.Clone();

            baseEvent2.Release();
            return(baseEvent);
        }
Пример #2
0
        public Track Clone()
        {
            Track track = ClassObjPool <Track> .Get();

            track.CopyData(this);
            int count = this.trackEvents.get_Count();

            for (int i = 0; i < count; i++)
            {
                BaseEvent baseEvent  = this.trackEvents.get_Item(i);
                BaseEvent baseEvent2 = baseEvent.Clone();
                baseEvent2.track = track;
                track.trackEvents.Add(baseEvent2);
            }
            track.waitForConditions     = this.waitForConditions;
            track.enabled               = this.enabled;
            track.color                 = this.color;
            track.trackName             = this.trackName;
            track.execOnActionCompleted = this.execOnActionCompleted;
            track.execOnForceStopped    = this.execOnForceStopped;
            return(track);
        }