示例#1
0
    public static string ExportTimeline(TimelineAsset timeline, bool prettyPrint = false)
    {
        List <TrackAsset>  tracks             = new List <TrackAsset>(timeline.GetOutputTracks());
        SequenceCollection sequenceCollection = new SequenceCollection();

        foreach (TrackAsset track in tracks)
        {
            if (track is CrazyflieTrack)
            {
                CrazyflieTrack crazyflieTrack = track as CrazyflieTrack;
                SequenceTrack  sequenceTrack  = new SequenceTrack();

                IEnumerable <IMarker> markers = crazyflieTrack.GetMarkers();
                Tuple <List <ColorKeyframe>, List <Waypoint> > processedKeyframes = ProcessKeyframes(sequenceTrack, markers);
                List <ColorKeyframe> sortedColorKeyframes = processedKeyframes.Item1;
                List <Waypoint>      sortedWaypoints      = processedKeyframes.Item2;

                sequenceTrack.LedTimings           = ColorExporter.Process(sortedColorKeyframes);
                sequenceTrack.CompressedTrajectory = TrajectoryExporter.Process(sortedWaypoints);
                sequenceTrack.StartPosition        = GetStart(sortedWaypoints);
                sequenceTrack.StartColor           = GetStart(sortedColorKeyframes);
                sequenceTrack.Name = crazyflieTrack.name;
                sequenceCollection.Tracks.Add(sequenceTrack);
            }
        }

        sequenceCollection.Length     = (float)timeline.duration;
        sequenceCollection.DroneCount = sequenceCollection.Tracks.Count;
        string jsonText = JsonUtility.ToJson(sequenceCollection, prettyPrint);

        return(jsonText);
    }
示例#2
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
            DontDestroyOnLoad(gameObject);
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        ALL_SEQUENCES[HeroAction.Idle]          = idle;
        ALL_SEQUENCES[HeroAction.MoveForward]   = moveForward;
        ALL_SEQUENCES[HeroAction.MoveBackwards] = moveBackwards;
        ALL_SEQUENCES[HeroAction.Attack]        = attack;
        ALL_SEQUENCES[HeroAction.Defend]        = defend;
        ALL_SEQUENCES[HeroAction.Heal]          = heal;
        ALL_SEQUENCES[HeroAction.Buff]          = buff;

        POOL_OF_BEATS[HeroAction.Attack] = attackPool;
        POOL_OF_BEATS[HeroAction.Defend] = defendPool;
        POOL_OF_BEATS[HeroAction.Heal]   = healPool;
        POOL_OF_BEATS[HeroAction.Buff]   = buffPool;
    }
示例#3
0
        /// <summary>
        /// Object Hash code
        /// </summary>
        /// <returns></returns>
        public override int GetHashCode()
        {
            unchecked
            {
                var hashCode = CVList != null?CVList.GetHashCode() : 0;

                hashCode = (hashCode * 397) ^ (AnalysisSoftwareList != null ? AnalysisSoftwareList.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Provider != null ? Provider.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (AuditCollection != null ? AuditCollection.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^
                           (AnalysisSampleCollection != null ? AnalysisSampleCollection.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (SequenceCollection != null ? SequenceCollection.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (AnalysisCollection != null ? AnalysisCollection.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^
                           (AnalysisProtocolCollection != null ? AnalysisProtocolCollection.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (DataCollection != null ? DataCollection.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^
                           (BibliographicReferences != null ? BibliographicReferences.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ CreationDate.GetHashCode();
                hashCode = (hashCode * 397) ^ (Version != null ? Version.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Id != null ? Id.GetHashCode() : 0);
                hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0);
                return(hashCode);
            }
        }
示例#4
0
        public SequenceCollection <TValue> GetCollection(bool ascending = false)
        {
            long start = this.start;
            long end   = getEndRecord();

            SequenceCollection <TValue> collection = new SequenceCollection <TValue>(this, ascending, start, end);

            return(collection);
        }
示例#5
0
 /// <summary>
 ///     Rebuild some of the internal lists using object references
 /// </summary>
 public void RebuildLists()
 {
     // TODO: Not Implementing for now
     //_auditCollection.Clear();
     //_analysisSoftwareList.Clear();
     //_analysisSampleCollection.Clear();
     AnalysisProtocolCollection.RebuildSIPList();
     SequenceCollection.RebuildLists();
     DataCollection.RebuildLists();
 }
示例#6
0
        public void Match()
        {
            var name = "test";
            var keys = new InputKey[] { Keys.A, Keys.B, Keys.C };

            var sequences = new SequenceCollection();

            sequences.Add(name, keys);

            var match = sequences.Match(out var hit, keys);

            Assert.True(match);
            Assert.Equal(name, hit.Name);
            Assert.Equal(keys, hit.Keys);
        }
示例#7
0
        public void FuzzySearch()
        {
            var name = "test";
            var keys = new InputKey[] { Keys.A, Keys.B, Keys.C };

            var sequences = new SequenceCollection();

            sequences.Add(name, keys);

            var matches = sequences.FuzzySearch(2, Keys.A, Keys.B);

            Assert.Equal(1, matches.Length);
            Assert.Equal(name, matches[0].Name);
            Assert.Equal(keys, matches[0].Keys);
        }
示例#8
0
 /// <summary>
 ///     Cascade the identData reference throughout the entire set of objects.
 /// </summary>
 internal void CascadeProperties()
 {
     if (Provider != null)
     {
         Provider.CascadeProperties();
     }
     if (SequenceCollection != null)
     {
         SequenceCollection.CascadeProperties();
     }
     if (AnalysisCollection != null)
     {
         AnalysisCollection.CascadeProperties();
     }
     if (AnalysisProtocolCollection != null)
     {
         AnalysisProtocolCollection.CascadeProperties();
     }
     if (DataCollection != null)
     {
         DataCollection.CascadeProperties();
     }
     if (CVList != null)
     {
         CVList.CascadeProperties();
     }
     if (AnalysisSoftwareList != null)
     {
         AnalysisSoftwareList.CascadeProperties();
     }
     if (AuditCollection != null)
     {
         AuditCollection.CascadeProperties();
     }
     if (AnalysisSampleCollection != null)
     {
         AnalysisSampleCollection.CascadeProperties();
     }
     if (BibliographicReferences != null)
     {
         BibliographicReferences.CascadeProperties();
     }
 }
 public void Can_add_named_type_sequence()
 {
     var collection = new SequenceCollection();
     collection.Add<Rabbit>("sequence");
     Assert.Equal(0, collection.Next<Rabbit>("sequence"));
 }
示例#10
0
 public void Can_add_type_sequence_with_seed()
 {
     var collection = new SequenceCollection();
     collection.Add<Rabbit>(100);
     Assert.Equal(100, collection.Next<Rabbit>());
 }
示例#11
0
 public void Cannot_get_next_from_missing_sequence()
 {
     var collection = new SequenceCollection();
     Assert.Throws<MissingSequenceException>(() => collection.Next("sequence"));
 }
示例#12
0
 public void Can_add_named_sequence_with_seed()
 {
     var collection = new SequenceCollection();
     collection.Add("sequence", 100);
     Assert.Equal(100, collection.Next("sequence"));
 }
示例#13
0
 public void Has_default_sequence()
 {
     var collection = new SequenceCollection();
     Assert.Equal(0, collection.Next());
     Assert.Equal(1, collection.Next());
 }
示例#14
0
 public void Clear_resets_default_sequence()
 {
     var collection = new SequenceCollection();
     collection.Next();
     collection.Clear();
     Assert.Equal(0, collection.Next());
 }
示例#15
0
 //- ~LoadSequenceData -//
 internal static void LoadSequenceData(SequenceDataList data, SequenceCollection collection)
 {
     List<SequenceElement> elementList = collection.ToList();
     foreach (SequenceElement element in elementList)
     {
         if (data.Any(p => p.Name == element.Name))
         {
             throw new ConfigurationErrorsException(String.Format(CultureInfo.CurrentCulture, Resource.Sequence_DuplicateNameInConfig, element.Name));
         }
         var sequenceData = new SequenceData
                            {
                                Name = element.Name
                            };
         sequenceData.ViewList = new ViewDataList();
         data.Add(sequenceData);
         foreach (ViewElement viewElement in element.Views)
         {
             var viewData = new ViewData
                            {
                                Name = viewElement.Name,
                                ViewUsed = viewElement.ViewUsed
                            };
             sequenceData.ViewList.Add(viewData);
         }
         sequenceData.VersionList = new VersionDataList();
         sequenceData.VersionList.ExplicitVersion = element.ExplicitVersion;
         foreach (VersionElement versionElement in element.Versions)
         {
             sequenceData.VersionList.Add(new VersionData
                                          {
                                              Name = versionElement.Name,
                                              Weight = versionElement.Weight
                                          });
         }
     }
 }
示例#16
0
 public void Can_clear_named_sequences()
 {
     var collection = new SequenceCollection();
     collection.Add("sequence");
     collection.Clear();
     Assert.False(collection.Exists("sequence"));
 }
示例#17
0
 public void Can_check_if_sequence_exists()
 {
     var collection = new SequenceCollection();
     collection.Add("sequence");
     Assert.True(collection.Exists("sequence"));
 }
示例#18
0
 public void Can_check_if_sequence_not_exists()
 {
     var collection = new SequenceCollection();
     Assert.False(collection.Exists("sequence"));
 }
示例#19
0
 public void Cannot_add_duplicate_sequence()
 {
     var collection = new SequenceCollection();
     collection.Add("sequence");
     Assert.Throws<DuplicateSequenceException>(() => collection.Add("sequence"));
 }
示例#20
0
 public void Can_reset_default_sequence()
 {
     var collection = new SequenceCollection();
     var value = collection.Next();
     collection.Reset();
     Assert.Equal(0, collection.Next());
 }
示例#21
0
 public void Can_reset_named_sequence()
 {
     var collection = new SequenceCollection();
     collection.Add("sequence");
     var value = collection.Next("sequence");
     collection.Reset();
     Assert.Equal(0, collection.Next("sequence"));
 }