コード例 #1
0
ファイル: Solver.cs プロジェクト: uttaravadina/jackbreacher
        public void AddSequence(string sequence, int value)
        {
            if (String.IsNullOrEmpty(sequence))
            {
                return;
            }

            if (sequence.Length % 2 != 0)
            {
                throw new ArgumentException("Sequence has incorrect string length");
            }

            Sequence s = new Sequence()
            {
                Value = value
            };

            for (int sPos = 0; sPos < sequence.Length; sPos += 2)
            {
                string val = sequence.Substring(sPos, 2);
                Cell   c   = new Cell()
                {
                    Value = val
                };
                s.Cells.Add(c);
            }
            Sequences.Add(s);
        }
コード例 #2
0
        void LoadSequences()
        {
            Sequences.Clear();
            var soundSequences = SoundServiceSingleton.Instance.GetAllSoundSequences();

            soundSequences.ForEach(x => Sequences.Add(x));
        }
コード例 #3
0
ファイル: bitmap.cs プロジェクト: p0lar-bear/Prometheus
            public virtual void ReadChildData(BinaryReader reader)
            {
                int x = 0;

                _compressedColorPlateData.ReadBinary(reader);
                _processedPixelData.ReadBinary(reader);
                for (x = 0; (x < _sequences.Count); x = (x + 1))
                {
                    Sequences.Add(new BitmapGroupSequenceBlock());
                    Sequences[x].Read(reader);
                }
                for (x = 0; (x < _sequences.Count); x = (x + 1))
                {
                    Sequences[x].ReadChildData(reader);
                }
                for (x = 0; (x < _bitmaps.Count); x = (x + 1))
                {
                    Bitmaps.Add(new BitmapDataBlock());
                    Bitmaps[x].Read(reader);
                }
                for (x = 0; (x < _bitmaps.Count); x = (x + 1))
                {
                    Bitmaps[x].ReadChildData(reader);
                }
            }
コード例 #4
0
        private async void OnUpdateSequenceYamlItem()
        {
            if (SelectedSequenceFile == null)
            {
                Log("Sequence File Doesn't exist", Category.Warn);
                return;
            }

            Log("Updating sequences.");

            try
            {
                //Clear sequences and convert the attract configs values to sequence item view models
                await Dispatcher.CurrentDispatcher.InvokeAsync(() =>
                {
                    Sequences?.Clear();
                    _skeletonGameAttract.GetAvailableSequences(SelectedSequenceFile.SequenceYaml);

                    foreach (var sequence in SelectedSequenceFile.SequenceYaml.Sequences)
                    {
                        Sequences.Add(new SequenceItemViewModel(sequence));
                    }
                });
            }
            catch (Exception ex)
            {
                Log(ex.Message, Category.Exception);
                throw;
            }
        }
コード例 #5
0
            public void Populate(ref List <Node> nodes, Func <string, string> GetNodeName, Action <string> printFunc)
            {
                PrintFunc = printFunc;
                string[] ruleSplit = RawRules.Split('|', StringSplitOptions.RemoveEmptyEntries);
                foreach (String curSplit in ruleSplit)
                {
                    List <string> ids = curSplit.Split(' ', StringSplitOptions.RemoveEmptyEntries).ToList();
                    int           intTest;
                    if (!int.TryParse(ids.ElementAt(0), out intTest))
                    {
                        Value = ids.ElementAt(0);
                        continue;
                    }

                    ids = ids.Select(i => GetNodeName(i)).ToList();

                    SubRules.Add(new List <string>());
                    SubRules.Last().AddRange(ids);

                    Sequences.Add(new List <Node>());
                    foreach (string id in ids)
                    {
                        Node curNode = nodes.Where(n => n.ID == id).First();
                        Sequences.Last().Add(curNode);
                    }
                }
            }
コード例 #6
0
        public SectionBase AddSubsection()
        {
            var subsection = new Sequence();

            Sequences.Add(subsection);
            return(subsection);
        }
コード例 #7
0
        public bitmap(CacheBase Cache, int Address)
        {
            EndianReader Reader = Cache.Reader;

            Reader.SeekTo(Address);

            #region Sequence Chunk
            Reader.SeekTo(Address + 60);
            int iCount  = Reader.ReadInt32();
            int iOffset = Reader.ReadInt32() - Cache.Magic;
            for (int i = 0; i < iCount; i++)
            {
                Sequences.Add(new Sequence(Cache, iOffset + 60 * i));
            }
            #endregion

            #region BitmapData Chunk
            Reader.SeekTo(Address + 68);
            iCount  = Reader.ReadInt32();
            iOffset = Reader.ReadInt32() - Cache.Magic;
            for (int i = 0; i < iCount; i++)
            {
                Bitmaps.Add(new BitmapData(Cache, iOffset + 116 * i));
            }
            #endregion
        }
コード例 #8
0
 public int AddSequence(string sequenceName, DefAnimation sequenceType)
 {
     Sequences.Add(new SpriteFrameSequenceViewModel(RegisterCollectionSynchronizationCallback)
     {
         SequenceName = sequenceName,
         SequenceType = sequenceType
     });
     return(Sequences.Count - 1);
 }
コード例 #9
0
 public void InitNewConfig()
 {
     if (FlightGlobals.ActiveVessel != null && !ConfigInfo.Instance.Sequences.ContainsKey(ModuleNASACountdown.CraftName(FlightGlobals.ActiveVessel)))
     {
         Log.Info("InitNewConfig for " + ModuleNASACountdown.CraftName(FlightGlobals.ActiveVessel));
         Sequences.Add(ModuleNASACountdown.CraftName(FlightGlobals.ActiveVessel), Enumerable.Repeat(-1, 10).ToArray());
         VesselOptions.Add(ModuleNASACountdown.CraftName(FlightGlobals.ActiveVessel), new PerVesselOptions());
     }
 }
コード例 #10
0
ファイル: CrozzleSequences.cs プロジェクト: bo1/crozzle1
        private void AddHorizontalSequences(List <String[]> crozzleRows)
        {
            int    rowNumber = 0;
            int    columnIndex;
            String row;

            foreach (String[] crozzleRow in crozzleRows)
            {
                rowNumber++;
                columnIndex = 0;

                // Place all letters into one string, so that we can split it later.
                row = "";
                foreach (String letter in crozzleRow)
                {
                    row = row + letter;
                }

                // Use split to collect all sequences of letters.
                String[] letterSequences = row.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                // Collect and store data about each letter sequence of length > 1, as a sequence of one letter is not a word.
                foreach (String sequence in letterSequences)
                {
                    if (sequence.Length > 1)
                    {
                        // Set column values.
                        int columnNumber = row.IndexOf(sequence, columnIndex) + 1;

                        //////// check for duplicate word
                        //////WordData duplicate = Sequences.Find(x => x.Letters.Equals(sequence));
                        //////if (duplicate != null)
                        //////    ErrorMessages.Add("\"" + sequence + "\" at (" + rowNumber + ", " + columnNumber + ") already exists in the crozzle at (" + duplicate.Location.Row + ", " + duplicate.Location.Column + ")");


                        //////// Check that duplicate words are within limits.
                        //////List<WordData> duplicates = Sequences.FindAll(x => x.Letters.Equals(sequence));
                        //////if (duplicates.Count < Configuration.MinimumNumberOfTheSameWord)
                        //////    ErrorMessages.Add("\"" + sequence + "\" at (" + rowNumber + ", " + columnNumber + ") exists in the crozzle " + duplicates.Count +
                        //////        " times, which is more than the limit of " + Configuration.MinimumNumberOfTheSameWord);
                        //////if (duplicates.Count > Configuration.MaximumNumberOfTheSameWord)
                        //////    ErrorMessages.Add("\"" + sequence + "\" at (" + rowNumber + ", " + columnNumber + ") exists in the crozzle " + duplicates.Count +
                        //////        " times, which is more than the limit of " + Configuration.MaximumNumberOfTheSameWord);

                        // Collect data about the word, and
                        // update the index for the next substring search.
                        WordData word = new WordData(WordData.OrientationRow, rowNumber, row.IndexOf(sequence, columnIndex) + 1, sequence);
                        columnIndex = word.Location.Column - 1 + sequence.Length;

                        // Store data about the word.
                        Sequences.Add(word);
                        HorizontalSequences.Add(word);
                    }
                }
            }
        }
コード例 #11
0
ファイル: BoardConfiguration.cs プロジェクト: Onkeliroh/DSA
 /// <summary>
 /// Adds the sequence.
 /// </summary>
 /// <param name="sequence">Sequence</param>
 public void AddSequence(Sequence sequence)
 {
     if (!Sequences.Contains(sequence))
     {
         Sequences.Add(sequence);
         if (OnSequencesUpdated != null)
         {
             OnSequencesUpdated.Invoke(this, new SequencesUpdatedArgs(UpdateOperation.Add, sequence));
         }
     }
 }
コード例 #12
0
        public override void InitFullEventData(JObject json)
        {
            base.InitFullEventData(json);

            dynamic fullEvent = (dynamic)json;

            foreach (dynamic sequenceData in fullEvent.value[0].Sequences)
            {
                Sequences.Add(new ExerciseEventSequenceItem(sequenceData));
            }
        }
コード例 #13
0
        /// <summary>
        ///     Adds sequence to sequencer.
        /// </summary>
        /// <typeparam name="T">Type of sequence.</typeparam>
        /// <returns>Newly created sequence.</returns>
        public Sequence AddSequence <T>() where T : Sequence
        {
            var newSequence =
                Activator.CreateInstance(typeof(T), this) as Sequence;

            SequencerPanel.Children.Add(newSequence ?? throw new Exception("Cannot create sequence"));
            if (typeof(T) != typeof(ClockSequence))
            {
                Sequences.Add(newSequence);
            }

            return(newSequence);
        }
コード例 #14
0
        public void AddVerticalSequences(List <String[]> crozzleColumns)
        {
            int    columnNumber = 0;
            int    rowIndex;
            String column;

            foreach (String[] crozzleColumn in crozzleColumns)
            {
                columnNumber++;
                rowIndex = 0;

                // Place all letters into one string, so that we can split it later.
                column = "";
                foreach (String letter in crozzleColumn)
                {
                    column = column + letter;
                }

                // Use split to collect all sequences of letters.
                String[] letterSequences = column.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                // Collect and store data about each letter sequence of length > 1, as a sequence of one letter is not a word.
                foreach (String sequence in letterSequences)
                {
                    if (sequence.Length > 1)
                    {
                        // Set row values.
                        int rowNumber = column.IndexOf(sequence, rowIndex) + 1;

                        ////////// Check that duplicate words are within limits.
                        ////////List<WordData> duplicates = Sequences.FindAll(x => x.Letters.Equals(sequence));
                        ////////if (duplicates.Count < Configuration.MinimumNumberOfTheSameWord)
                        ////////    ErrorMessages.Add("\"" + sequence + "\" at (" + rowNumber + ", " + columnNumber + ") exists in the crozzle " + duplicates.Count +
                        ////////        " times, which is more than the limit of " + Configuration.MinimumNumberOfTheSameWord);
                        ////////if (duplicates.Count > Configuration.MaximumNumberOfTheSameWord)
                        ////////    ErrorMessages.Add("\"" + sequence + "\" at (" + rowNumber + ", " + columnNumber + ") exists in the crozzle " + duplicates.Count +
                        ////////        " times, which is more than the limit of " + Configuration.MaximumNumberOfTheSameWord);

                        // Collect data about the word, and
                        // update the index for the next substring search.
                        WordData word = new WordData(WordData.OrientationColumn, rowNumber, columnNumber, sequence);
                        rowIndex = word.Location.Row - 1 + sequence.Length;

                        // Store data about the word.
                        Sequences.Add(word);
                        VerticalSequences.Add(word);
                    }
                }
            }
        }
コード例 #15
0
        public bitmap(CacheBase Cache, int Address)
        {
            EndianReader Reader = Cache.Reader;

            Reader.SeekTo(Address);

            #region Sequence Chunk
            Reader.SeekTo(Address + 84);
            int iCount  = Reader.ReadInt32();
            int iOffset = Reader.ReadInt32() - Cache.Magic;
            for (int i = 0; i < iCount; i++)
            {
                Sequences.Add(new Sequence(Cache, iOffset + 64 * i));
            }
            #endregion

            #region BitmapData Chunk
            Reader.SeekTo(Address + 96);
            iCount  = Reader.ReadInt32();
            iOffset = Reader.ReadInt32() - Cache.Magic;
            for (int i = 0; i < iCount; i++)
            {
                Bitmaps.Add(new BitmapData(Cache, iOffset + 48 * i));
            }
            #endregion

            #region Raw Chunk A
            Reader.SeekTo(Address + 140);
            iCount  = Reader.ReadInt32();
            iOffset = Reader.ReadInt32() - Cache.Magic;
            for (int i = 0; i < iCount; i++)
            {
                RawChunkAs.Add(new RawChunkA(Cache, iOffset + 8 * i));
            }
            #endregion

            #region Raw Chunk B
            Reader.SeekTo(Address + 152);
            iCount  = Reader.ReadInt32();
            iOffset = Reader.ReadInt32() - Cache.Magic;
            for (int i = 0; i < iCount; i++)
            {
                RawChunkBs.Add(new RawChunkB(Cache, iOffset + 8 * i));
            }
            Reader.SeekTo(Address + 164);
            #endregion
        }
コード例 #16
0
ファイル: Animation.cs プロジェクト: jpmac26/LazyShell
        // Read/write ROM
        private void ReadFromBuffer()
        {
            AnimationOffset = Bits.GetInt24(rom, 0x252000 + (Index * 3)) - 0xC00000;

            // Create source buffer for following properties
            int animationLength = Bits.GetShort(rom, AnimationOffset);

            Buffer = Bits.GetBytes(rom, AnimationOffset, animationLength);

            // Get pointers of data types
            int    offset = 2;
            ushort sequencePacketPointer = Bits.GetShort(Buffer, offset); offset += 2;
            ushort moldPacketPointer     = Bits.GetShort(Buffer, offset); offset += 2;
            byte   sequenceCount         = Buffer[offset++];
            byte   moldCount             = Buffer[offset++];

            VramAllocation = (ushort)(Buffer[offset] << 8); offset += 2;
            Unknown        = Bits.GetShort(Buffer, offset);

            // Build sequence collection
            offset         = sequencePacketPointer;
            this.Sequences = new List <Sequence>();
            for (int i = 0; i < sequenceCount; i++)
            {
                var tSequence = new Sequence();
                tSequence.ReadFromBuffer(Buffer, offset);
                Sequences.Add(tSequence);
                offset += 2;
            }

            // Build mold collection
            offset           = moldPacketPointer;
            this.Molds       = new List <Mold>();
            this.UniqueTiles = new List <Mold.Tile>();
            for (int i = 0; i < moldCount; i++)
            {
                var tMold = new Mold();
                tMold.ReadFromBuffer(Buffer, offset, UniqueTiles, Index, AnimationOffset);
                Molds.Add(tMold);
                offset += 2;
            }
        }
コード例 #17
0
        private void AddVerticalSequences(List <String[]> crozzleColumns)
        {
            int    columnNumber = 0;
            int    rowIndex;
            String column;

            foreach (String[] crozzleColumn in crozzleColumns)
            {
                columnNumber++;
                rowIndex = 0;

                // Place all letters into one string, so that we can split it later.
                column = "";
                foreach (String letter in crozzleColumn)
                {
                    column = column + letter;
                }

                // Use split to collect all sequences of letters.
                String[] letterSequences = column.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                // Collect and store data about each letter sequence of length > 1, as a sequence of one letter is not a word.
                foreach (String sequence in letterSequences)
                {
                    if (sequence.Length > 1)
                    {
                        // Set row values.
                        int rowNumber = column.IndexOf(sequence, rowIndex) + 1;

                        // Collect data about the word, and
                        // update the index for the next substring search.
                        WordData word = new WordData(WordData.OrientationColumn, rowNumber, columnNumber, sequence);
                        rowIndex = word.Location.Row - 1 + sequence.Length;

                        // Store data about the word.
                        Sequences.Add(word);
                        VerticalSequences.Add(word);
                    }
                }
            }
        }
コード例 #18
0
        private void AddHorizontalSequences(List <String[]> crozzleRows)
        {
            int    rowNumber = 0;
            int    columnIndex;
            String row;

            foreach (String[] crozzleRow in crozzleRows)
            {
                rowNumber++;
                columnIndex = 0;

                // Place all letters into one string, so that we can split it later.
                row = "";
                foreach (String letter in crozzleRow)
                {
                    row = row + letter;
                }

                // Use split to collect all sequences of letters.
                String[] letterSequences = row.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                // Collect and store data about each letter sequence of length > 1, as a sequence of one letter is not a word.
                foreach (String sequence in letterSequences)
                {
                    if (sequence.Length > 1)
                    {
                        // Set column values.
                        int columnNumber = row.IndexOf(sequence, columnIndex) + 1;

                        // Collect data about the word, and
                        // update the index for the next substring search.
                        WordData word = new WordData(WordData.OrientationRow, rowNumber, row.IndexOf(sequence, columnIndex) + 1, sequence);
                        columnIndex = word.Location.Column - 1 + sequence.Length;

                        // Store data about the word.
                        Sequences.Add(word);
                        HorizontalSequences.Add(word);
                    }
                }
            }
        }
コード例 #19
0
ファイル: BikeEvent.cs プロジェクト: jehy/unBand
        public override void InitFullEventData(JObject json)
        {
            base.InitFullEventData(json);

            dynamic fullEvent = (dynamic)json;

            foreach (dynamic sequenceData in fullEvent.value[0].Sequences)
            {
                Sequences.Add(new BikeEventSequenceItem(sequenceData));
            }

            // parse out map points
            foreach (dynamic mapData in fullEvent.value[0].MapPoints)
            {
                var runMapPoint = new BandMapPoint()
                {
                    Type = mapData.MapPointType,
                    SecondsSinceStart = mapData.SecondsSinceStart,
                    Ordinal           = mapData.MapPointOrdinal,
                    Distance          = mapData.TotalDistance,
                    HeartRate         = mapData.HeartRate,
                    Pace       = ((double)mapData.Pace * 0.001),
                    ScaledPace = mapData.ScaledPace,
                    IsPaused   = mapData.IsPaused,
                    IsResume   = mapData.IsResume
                };

                if (mapData.Location != null)
                {
                    runMapPoint.Latitude  = ((double)mapData.Location.Latitude * 1E-07);
                    runMapPoint.Longitude = ((double)mapData.Location.Longitude * 1E-07);
                    runMapPoint.Altitude  = ((double)mapData.Location.AltitudeFromMSL * 0.01);
                    runMapPoint.EHPE      = ((double)mapData.Location.EHPE * 0.01);
                    runMapPoint.EVPE      = ((double)mapData.Location.EVPE * 0.01);

                    HasGPSPoints = true;
                }

                _mapPoints.Add(runMapPoint);
            }
        }
コード例 #20
0
        private void BuildSequences()
        {
            Sequence sequence1 = new Sequence();

            sequence1.ID              = 1;
            sequence1.ExternalId      = "c2f5f76a-1ee7-4f92-9150-55de4cefa76f";
            sequence1.Name            = "Test Sequence 1";
            sequence1.Description     = "Sequence used for testing";
            sequence1.Project         = Projects.SingleOrDefault(p => p.ID == 1);
            sequence1.SequenceScripts = new List <SequenceScript>();

            Sequences.Add(sequence1);

            Sequence sequence2 = new Sequence();

            sequence2.ID              = 2;
            sequence2.ExternalId      = "a019a262-b469-4f8c-9da2-208d3b61ee12";
            sequence2.Name            = "Test Sequence 2";
            sequence2.Description     = "Another Sequence used for testing";
            sequence2.Project         = Projects.SingleOrDefault(p => p.ID == 1);
            sequence2.SequenceScripts = new List <SequenceScript>();

            Sequences.Add(sequence2);
        }
コード例 #21
0
        /// <summary>
        /// Populates the genome metadata from an XML file
        /// </summary>
        public void Deserialize(string inputFilename)
        {
            // open the XML file
            inputFilename = Path.GetFullPath(inputFilename);
            string directory = Path.GetDirectoryName(inputFilename);

            Length     = 0;
            KnownBases = 0; // initial
            int refIndex = 0;
            IGenomesReferencePath iGenomesReference = IGenomesReferencePath.GetReferenceFromFastaPath(directory);

            // use StreamReader to avoid URI parsing of filename that will cause problems with
            // certain characters in the path (#).
            using (var xmlReader = XmlReader.Create(new StreamReader(inputFilename)))
            {
                while (xmlReader.Read())
                {
                    XmlNodeType nType = xmlReader.NodeType;

                    // handle
                    if (nType == XmlNodeType.Element)
                    {
                        // retrieve the genome variables
                        if (xmlReader.Name == "sequenceSizes")
                        {
                            Name = xmlReader.GetAttribute("genomeName");
                            if (iGenomesReference != null && string.IsNullOrEmpty(Name))
                            {
                                Name = iGenomesReference.ToString();
                            }
                        }

                        // retrieve the chromosome variables
                        if (xmlReader.Name == "chromosome")
                        {
                            SequenceMetadata refSeq = new SequenceMetadata
                            {
                                FastaPath = Path.Combine(directory, xmlReader.GetAttribute("fileName")),
                                Name      = xmlReader.GetAttribute("contigName"),
                                Index     = refIndex++,
                                Length    = long.Parse(xmlReader.GetAttribute("totalBases")),
                                Type      = ParseSequenceType(xmlReader.GetAttribute("type"))
                            };
                            Length += refSeq.Length;

                            refSeq.Build   = xmlReader.GetAttribute("build");
                            refSeq.Species = xmlReader.GetAttribute("species");

                            // update species and build from fasta path if in iGenomes format
                            if (iGenomesReference != null)
                            {
                                if (string.IsNullOrEmpty(refSeq.Build))
                                {
                                    refSeq.Build = iGenomesReference.Build;
                                }
                                if (string.IsNullOrEmpty(refSeq.Species))
                                {
                                    refSeq.Species = iGenomesReference.Species;
                                }
                            }

                            string isCircular = xmlReader.GetAttribute("isCircular");
                            if (!string.IsNullOrEmpty(isCircular))
                            {
                                refSeq.IsCircular = (isCircular == "true");
                            }

                            string ploidy = xmlReader.GetAttribute("ploidy");
                            if (!string.IsNullOrEmpty(ploidy))
                            {
                                refSeq.Ploidy = int.Parse(ploidy);
                            }

                            string md5 = xmlReader.GetAttribute("md5");
                            if (!string.IsNullOrEmpty(md5))
                            {
                                refSeq.Checksum = md5;
                            }

                            string knownBases = xmlReader.GetAttribute("knownBases");
                            if (!string.IsNullOrEmpty(knownBases))
                            {
                                refSeq.KnownBases = long.Parse(knownBases);
                                KnownBases       += refSeq.KnownBases;
                            }

                            Sequences.Add(refSeq);
                        }
                    }
                }
            }
        }
コード例 #22
0
        public void Load()
        {
            try
            {
                var node = ConfigNode.Load(_configPath);

                if (node == null)
                {
                    throw new NullReferenceException("Node not exist");
                }

                if (node.HasValue("isDebug"))
                {
                    IsDebug = bool.Parse(node.GetValue("isDebug"));
                }

                if (node.HasValue("soundEnabled"))
                {
                    IsSoundEnabled = bool.Parse(node.GetValue("soundEnabled"));
                }

                if (node.HasValue("engineControl"))
                {
                    EngineControl = bool.Parse(node.GetValue("engineControl"));
                }

                if (node.HasValue("abort"))
                {
                    AbortExecuted = bool.Parse(node.GetValue("abort"));
                }

                if (node.HasValue("scale"))
                {
                    Scale = float.Parse(node.GetValue("scale"));
                }

                if (node.HasValue("soundSet"))
                {
                    SoundSet = node.GetValue("soundSet");
                }

                if (node.HasValue("position"))
                {
                    WindowPosition = _wrapper.ToRect(node.GetValue("position"));
                    Debug.LogWarning("Position is" + WindowPosition);
                }

                if (node.HasNode("sequence"))
                {
                    var sequences = node.GetNodes("sequence");

                    Sequences.Clear();

                    foreach (var sequence in sequences)
                    {
                        Sequences.Add(new Guid(sequence.GetValue("id")), sequence.GetValue("stages").Split(','));
                    }
                }

                IsLoaded = true;
            }
            catch (Exception ex)
            {
                Debug.LogError("Cannot load config");
                Debug.LogException(ex);
                IsLoaded = false;
            }
        }
コード例 #23
0
        public void Load(ConfigNode node)
        {
            try
            {
                LoadSounds();

                if (node == null)
                {
                    throw new NullReferenceException("Node not exist");
                }

                if (node.HasValue("soundEnabled"))
                {
                    IsSoundEnabled = bool.Parse(node.GetValue("soundEnabled"));
                }

                if (node.HasValue("engineControl"))
                {
                    EngineControl = bool.Parse(node.GetValue("engineControl"));
                }

                if (node.HasValue("abort"))
                {
                    AbortExecuted = bool.Parse(node.GetValue("abort"));
                }

                if (node.HasValue("scale"))
                {
                    Scale = float.Parse(node.GetValue("scale"));
                }

                if (node.HasValue("soundSet"))
                {
                    SoundSet = node.GetValue("soundSet");
                }

                if (node.HasValue("position"))
                {
                    WindowPosition = _wrapper.ToRect(node.GetValue("position"));
                    Debug.LogWarning("Position is" + WindowPosition);
                }

                if (node.HasNode("sequence"))
                {
                    var sequences = node.GetNodes("sequence");

                    Sequences.Clear();

                    foreach (var sequence in sequences)
                    {
                        Sequences.Add(new Guid(sequence.GetValue("id")), sequence.GetValue("stages").Split(',').Select(int.Parse).ToArray());
                    }
                }
                else
                {
                    if (FlightGlobals.ActiveVessel != null && !ConfigInfo.Instance.Sequences.ContainsKey(FlightGlobals.ActiveVessel.id))
                    {
                        Sequences.Add(FlightGlobals.ActiveVessel.id, Enumerable.Repeat(-1, 10).ToArray());
                    }
                }

                IsLoaded = true;
            }
            catch (Exception ex)
            {
                Debug.LogError("Cannot load config");
                Debug.LogException(ex);
                IsLoaded = false;
            }
        }
コード例 #24
0
 public void AddSequence(string lotType, Sequence sequence)
 {
     Sequences.Add(lotType, sequence);
 }
コード例 #25
0
ファイル: Animation.cs プロジェクト: jpmac26/LazyShell
        // Read/write buffer
        private void ReadFromBuffer()
        {
            AnimationOffset = Bits.GetInt24(rom, 0x252C00 + (Index * 3)) - 0xC00000;

            // Create source buffer for following properties
            ushort animationLength = Bits.GetShort(rom, AnimationOffset);

            Buffer = Bits.GetBytes(rom, AnimationOffset, Bits.GetShort(rom, AnimationOffset));

            // Get pointers of data types
            int    offset                = 2;
            ushort graphicSetPointer     = Bits.GetShort(Buffer, offset); offset += 2;
            ushort paletteSetPointer     = Bits.GetShort(Buffer, offset); offset += 2;
            ushort sequencePacketPointer = Bits.GetShort(Buffer, offset); offset += 2;
            ushort moldPacketPointer     = Bits.GetShort(Buffer, offset); offset += 2;

            // Skip 2 unknown bytes
            offset += 2;

            // Get formatting properties
            Width  = Buffer[offset++];
            Height = Buffer[offset++];
            Codec  = Bits.GetShort(Buffer, offset); offset += 2;

            // Get graphics, palette, tileset data
            int tileSetPointer = Bits.GetShort(Buffer, offset);

            GraphicSetLength = paletteSetPointer - graphicSetPointer;
            GraphicSet       = new byte[0x2000];
            System.Buffer.BlockCopy(Buffer, graphicSetPointer, GraphicSet, 0, GraphicSetLength);
            PaletteSetLength = (ushort)(tileSetPointer - paletteSetPointer);
            PaletteSet       = new PaletteSet(Buffer, 0, paletteSetPointer, 8, 16, 32);
            TilesetLength    = sequencePacketPointer - tileSetPointer - 2;
            Tileset_bytes    = new byte[64 * 4 * 2 * 4];
            System.Buffer.BlockCopy(Buffer, tileSetPointer, Tileset_bytes, 0, TilesetLength);

            // Build sequence collection
            this.Sequences = new List <Sequence>();
            offset         = sequencePacketPointer;
            for (int i = 0; Bits.GetShort(Buffer, offset) != 0x0000; i++)
            {
                Sequence tSequence = new Sequence();
                tSequence.ReadFromBuffer(Buffer, offset);
                Sequences.Add(tSequence);
                offset += 2;
            }

            // Build mold collection
            this.Molds = new List <Mold>();
            offset     = moldPacketPointer;
            ushort end = 0;

            for (int i = 0; Bits.GetShort(Buffer, offset) != 0x0000; i++)
            {
                if (Bits.GetShort(Buffer, offset + 2) == 0x0000)
                {
                    end = animationLength;
                }
                else
                {
                    end = Bits.GetShort(Buffer, offset + 2);
                }
                Mold tMold = new Mold();
                tMold.ReadFromBuffer(Buffer, offset, end);
                Molds.Add(tMold);
                offset += 2;
            }
        }
コード例 #26
0
        private void Read(BinaryReader br, Dictionary <string, BinaryReader> sequenceGroups)
        {
            Header = new Header
            {
                ID             = ID.Idst,
                Version        = Version.Goldsource,
                Name           = br.ReadFixedLengthString(Encoding.ASCII, 64),
                Size           = br.ReadInt32(),
                EyePosition    = br.ReadVector3(),
                HullMin        = br.ReadVector3(),
                HullMax        = br.ReadVector3(),
                BoundingBoxMin = br.ReadVector3(),
                BoundingBoxMax = br.ReadVector3(),
                Flags          = br.ReadInt32()
            };

            // Read all the nums/offsets from the header
            var sections = new int[(int)Section.NumSections][];

            for (var i = 0; i < (int)Section.NumSections; i++)
            {
                var sec = (Section)i;

                int indexNum;
                if (sec == Section.Texture || sec == Section.Skin)
                {
                    indexNum = 3;
                }
                else
                {
                    indexNum = 2;
                }

                sections[i] = new int[indexNum];
                for (var j = 0; j < indexNum; j++)
                {
                    sections[i][j] = br.ReadInt32();
                }
            }

            // Bones
            var num      = SeekToSection(br, Section.Bone, sections);
            var numBones = num;

            for (var i = 0; i < num; i++)
            {
                var bone = new Bone
                {
                    Name          = br.ReadFixedLengthString(Encoding.ASCII, 32),
                    Parent        = br.ReadInt32(),
                    Flags         = br.ReadInt32(),
                    Controllers   = br.ReadIntArray(6),
                    Position      = br.ReadVector3(),
                    Rotation      = br.ReadVector3(),
                    PositionScale = br.ReadVector3(),
                    RotationScale = br.ReadVector3()
                };
                Bones.Add(bone);
            }

            // Bone controllers
            num = SeekToSection(br, Section.BoneController, sections);
            for (var i = 0; i < num; i++)
            {
                var boneController = new BoneController
                {
                    Bone  = br.ReadInt32(),
                    Type  = br.ReadInt32(),
                    Start = br.ReadSingle(),
                    End   = br.ReadSingle(),
                    Rest  = br.ReadInt32(),
                    Index = br.ReadInt32()
                };
                BoneControllers.Add(boneController);
            }

            // Hitboxes
            num = SeekToSection(br, Section.Hitbox, sections);
            for (var i = 0; i < num; i++)
            {
                var hitbox = new Hitbox
                {
                    Bone  = br.ReadInt32(),
                    Group = br.ReadInt32(),
                    Min   = br.ReadVector3(),
                    Max   = br.ReadVector3()
                };
                Hitboxes.Add(hitbox);
            }

            // Sequence groups
            num = SeekToSection(br, Section.SequenceGroup, sections);
            for (var i = 0; i < num; i++)
            {
                var group = new SequenceGroup
                {
                    Label = br.ReadFixedLengthString(Encoding.ASCII, 32),
                    Name  = br.ReadFixedLengthString(Encoding.ASCII, 64)
                };
                br.ReadBytes(8); // unused
                SequenceGroups.Add(group);
            }

            // Sequences
            num = SeekToSection(br, Section.Sequence, sections);
            for (var i = 0; i < num; i++)
            {
                var sequence = new Sequence
                {
                    Name                  = br.ReadFixedLengthString(Encoding.ASCII, 32),
                    Framerate             = br.ReadSingle(),
                    Flags                 = br.ReadInt32(),
                    Activity              = br.ReadInt32(),
                    ActivityWeight        = br.ReadInt32(),
                    NumEvents             = br.ReadInt32(),
                    EventIndex            = br.ReadInt32(),
                    NumFrames             = br.ReadInt32(),
                    NumPivots             = br.ReadInt32(),
                    PivotIndex            = br.ReadInt32(),
                    MotionType            = br.ReadInt32(),
                    MotionBone            = br.ReadInt32(),
                    LinearMovement        = br.ReadVector3(),
                    AutoMovePositionIndex = br.ReadInt32(),
                    AutoMoveAngleIndex    = br.ReadInt32(),
                    Min            = br.ReadVector3(),
                    Max            = br.ReadVector3(),
                    NumBlends      = br.ReadInt32(),
                    AnimationIndex = br.ReadInt32(),
                    BlendType      = br.ReadIntArray(2),
                    BlendStart     = br.ReadSingleArray(2),
                    BlendEnd       = br.ReadSingleArray(2),
                    BlendParent    = br.ReadInt32(),
                    SequenceGroup  = br.ReadInt32(),
                    EntryNode      = br.ReadInt32(),
                    ExitNode       = br.ReadInt32(),
                    NodeFlags      = br.ReadInt32(),
                    NextSequence   = br.ReadInt32()
                };

                var seqGroup = SequenceGroups[sequence.SequenceGroup];

                // Only load seqence group 0 for now (others are in other files)
                if (sequence.SequenceGroup == 0)
                {
                    var pos = br.BaseStream.Position;
                    sequence.Blends        = LoadAnimationBlends(br, sequence, numBones);
                    br.BaseStream.Position = pos;
                }
                else if (sequenceGroups.ContainsKey(seqGroup.Name))
                {
                    var reader = sequenceGroups[seqGroup.Name];
                    sequence.Blends = LoadAnimationBlends(reader, sequence, numBones);
                }

                Sequences.Add(sequence);
            }

            // Textures
            num = SeekToSection(br, Section.Texture, sections);
            var firstTextureIndex = Textures.Count;

            for (var i = 0; i < num; i++)
            {
                var texture = new Texture
                {
                    Name   = br.ReadFixedLengthString(Encoding.ASCII, 64),
                    Flags  = (TextureFlags)br.ReadInt32(),
                    Width  = br.ReadInt32(),
                    Height = br.ReadInt32(),
                    Index  = br.ReadInt32()
                };
                Textures.Add(texture);
            }

            // Texture data
            for (var i = firstTextureIndex; i < firstTextureIndex + num; i++)
            {
                var t = Textures[i];
                br.BaseStream.Position = t.Index;
                t.Data      = br.ReadBytes(t.Width * t.Height);
                t.Palette   = br.ReadBytes(256 * 3);
                Textures[i] = t;
            }

            // Skins
            var skinSection     = sections[(int)Section.Skin];
            var numSkinRefs     = skinSection[0];
            var numSkinFamilies = skinSection[1];

            br.BaseStream.Seek(skinSection[2], SeekOrigin.Begin);
            for (var i = 0; i < numSkinFamilies; i++)
            {
                var skin = new SkinFamily
                {
                    Textures = br.ReadShortArray(numSkinRefs)
                };
                Skins.Add(skin);
            }

            // Body parts
            num = SeekToSection(br, Section.BodyPart, sections);
            for (var i = 0; i < num; i++)
            {
                var part = new BodyPart
                {
                    Name       = br.ReadFixedLengthString(Encoding.ASCII, 64),
                    NumModels  = br.ReadInt32(),
                    Base       = br.ReadInt32(),
                    ModelIndex = br.ReadInt32()
                };
                var pos = br.BaseStream.Position;
                part.Models            = LoadModels(br, part);
                br.BaseStream.Position = pos;
                BodyParts.Add(part);
            }

            // Attachments
            num = SeekToSection(br, Section.Attachment, sections);
            for (var i = 0; i < num; i++)
            {
                var attachment = new Attachment
                {
                    Name    = br.ReadFixedLengthString(Encoding.ASCII, 32),
                    Type    = br.ReadInt32(),
                    Bone    = br.ReadInt32(),
                    Origin  = br.ReadVector3(),
                    Vectors = br.ReadVector3Array(3)
                };
                Attachments.Add(attachment);
            }

            // Transitions

            // Sounds & Sound groups aren't used
        }
コード例 #27
0
        /// <inheritdoc/>
        public void LoadBinaryData(byte[] inData)
        {
            using (var ms = new MemoryStream(inData))
                using (var br = new BinaryReader(ms))
                {
                    br.ReadUInt32(); // Signature
                    Version = br.ReadUInt32();
                    Name    = br.ReadMD20String(br.ReadUInt32(), br.ReadUInt32());
                    Flags   = br.ReadUInt32(); // TODO: Implement Flags


                    // Global Sequences
                    UInt32 count     = br.ReadUInt32();
                    UInt32 offset    = br.ReadUInt32();
                    long   headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        UInt32 value = br.ReadUInt32();
                        GlobalSequences.Add(value);
                    }
                    br.BaseStream.Position = headerpos;

                    // Sequences
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Sequence seq = new M2Sequence();

                        seq.AnimationID         = br.ReadUInt16();
                        seq.SubAnimationID      = br.ReadUInt16();
                        seq.Length              = br.ReadUInt32();
                        seq.MovingSpeed         = br.ReadSingle();
                        seq.Flags               = br.ReadUInt32();
                        seq.Probability         = br.ReadInt16();
                        seq.Padding             = br.ReadUInt16();
                        seq.MinimumRepetitions  = br.ReadUInt32();
                        seq.MaximumRepetitions  = br.ReadUInt32();
                        seq.BlendTime           = br.ReadUInt32();
                        seq.BoundsMinimumExtend = new C3Vector(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
                        seq.BoundsMaximumExtend = new C3Vector(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
                        seq.BoundRadius         = br.ReadSingle();
                        seq.NextAnimation       = br.ReadInt16();
                        seq.aliasNext           = br.ReadUInt16();

                        Sequences.Add(seq);
                    }
                    br.BaseStream.Position = headerpos;

                    //SequencesLookups
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        SequencesLookups.Add(br.ReadInt16());
                    }
                    br.BaseStream.Position = headerpos;

                    // Bones
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Bone bone = new M2Bone();

                        bone.KeyBoneID  = br.ReadInt32();
                        bone.Flags      = br.ReadUInt32();
                        bone.ParentBone = br.ReadInt16();
                        bone.SubmeshID  = br.ReadUInt16();

                        bone.CompressData[0] = br.ReadUInt16();
                        bone.CompressData[1] = br.ReadUInt16();

                        //translation

                        M2Track translation = new M2Track();
                        translation.readM2Track(br);
                        bone.translation = translation;

                        // rotation
                        M2Track rotation = new M2Track();
                        rotation.readM2Track(br);
                        bone.rotation = rotation;

                        // Scale
                        M2Track scale = new M2Track();
                        scale.readM2Track(br);
                        bone.scale = scale;

                        bone.pivot = new C3Vector(br.ReadUInt32(), br.ReadUInt32(), br.ReadUInt32());

                        Bones.Add(bone);
                    }
                    br.BaseStream.Position = headerpos;

                    // key_bone_lookup
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        KeyBoneLookup.Add(br.ReadInt16());
                    }
                    br.BaseStream.Position = headerpos;

                    // Vetices
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Vertex temp = new M2Vertex();

                        temp.Pos = new C3Vector(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
                        for (int a = 0; a < 4; a++)
                        {
                            temp.BoneWeights.Add(br.ReadByte());
                        }
                        for (int a = 0; a < 4; a++)
                        {
                            temp.BoneIndices.Add(br.ReadByte());
                        }
                        temp.Normal = new C3Vector(br.ReadSingle(), br.ReadSingle(), br.ReadSingle());
                        temp.TexCords.Add(new C2Vector(br.ReadSingle(), br.ReadSingle()));
                        temp.TexCords.Add(new C2Vector(br.ReadSingle(), br.ReadSingle()));
                    }
                    br.BaseStream.Position = headerpos;

                    // Number of Skin profiles
                    NumberSkinProfiles = br.ReadUInt32();

                    // Colors
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Color temp = new M2Color();

                        // Color
                        M2Track color = new M2Track();
                        color.readM2Track(br);
                        temp.Color = color;

                        // Alpha
                        M2Track alpha = new M2Track();
                        alpha.readM2Track(br);
                        temp.Alpha = alpha;

                        Color.Add(temp);
                    }
                    br.BaseStream.Position = headerpos;

                    // Textures
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Texture temp = new M2Texture();

                        temp.Type  = br.ReadUInt32();
                        temp.Flags = br.ReadUInt32();

                        UInt32 tCount     = br.ReadUInt32();
                        UInt32 tOffset    = br.ReadUInt32();
                        long   tHeaderpos = br.BaseStream.Position;
                        br.BaseStream.Position = tOffset;

                        temp.Filename = "";
                        for (int a = 0; a < tCount; a++)
                        {
                            temp.Filename += br.ReadChar();
                        }
                        br.BaseStream.Position = tHeaderpos;

                        Texture.Add(temp);
                    }
                    br.BaseStream.Position = headerpos;

                    // Texture Weights
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Track temp = new M2Track();
                        temp.readM2Track(br);
                        TextureWeights.Add(temp);
                    }
                    br.BaseStream.Position = headerpos;

                    // UV Animations
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2TextureTransform temp = new M2TextureTransform();

                        M2Track translation = new M2Track();
                        translation.readM2Track(br);
                        temp.Translation = translation;

                        M2Track rotation = new M2Track();
                        rotation.readM2Track(br);
                        temp.Rotation = rotation;

                        M2Track scaling = new M2Track();
                        scaling.readM2Track(br);
                        temp.Scaling = scaling;

                        UvAnimations.Add(temp);
                    }
                    br.BaseStream.Position = headerpos;

                    // Texture Replacements
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        TextureReplacements.Add(br.ReadInt16());
                    }
                    br.BaseStream.Position = headerpos;

                    // Materials
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        M2Material temp = new M2Material();

                        temp.Flags     = br.ReadUInt16();
                        temp.BlendMode = br.ReadUInt16();

                        Materials.Add(temp);
                    }
                    br.BaseStream.Position = headerpos;

                    // Bone Lookups
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        BoneLookups.Add(br.ReadUInt16());
                    }
                    br.BaseStream.Position = headerpos;

                    // Texture Units
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        TextureUnits.Add(br.ReadUInt16());
                    }
                    br.BaseStream.Position = headerpos;

                    // Texture Weights Lookups
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        TextureWeightsLookups.Add(br.ReadUInt16());
                    }
                    br.BaseStream.Position = headerpos;

                    // Animation Lookups
                    count     = br.ReadUInt32();
                    offset    = br.ReadUInt32();
                    headerpos = br.BaseStream.Position;
                    br.BaseStream.Position = offset;
                    for (int i = 0; i < count; i++)
                    {
                        UvAnimationLookups.Add(br.ReadInt16());
                    }
                    br.BaseStream.Position = headerpos;
                }
        }
コード例 #28
0
 /// <summary>
 /// Adds a new sequence to the list
 /// </summary>
 public void AddSequence()
 {
     Sequences.Add(new SequenceViewModel(this));
 }
コード例 #29
0
ファイル: ServiceStub.cs プロジェクト: masthy/nservicestub
 public void AddSequence(IMessageSequence sequence)
 {
     Sequences.Add(sequence);
 }
コード例 #30
0
        private void OnAddSequence(object x)
        {
            if (x == null)
            {
                return;
            }

            var      seqType = (SequenceType)x;
            Sequence seq     = null;

            switch (seqType)
            {
            case SequenceType.LastScores:
                var lastScores = new LastScores()
                {
                    SequenceName = "LastScores", duration = 3.0m
                };
                seq = new Sequence()
                {
                    LastScores = lastScores
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.LastScores);
                Sequences.Add(new SequenceItemViewModel(seq.LastScores));
                break;

            case SequenceType.Combo:
                var combo = new Combo()
                {
                    SequenceName = "Combo", duration = 3.0m
                };
                seq = new Sequence()
                {
                    Combo = combo
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.Combo);
                Sequences.Add(new SequenceItemViewModel(seq.Combo));
                break;

            case SequenceType.TextLayer:
                var txtLayr = new TextLayer()
                {
                    SequenceName = "TextLayer", duration = 3.0m
                };
                seq = new Sequence()
                {
                    text_layer = txtLayr
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.text_layer);
                Sequences.Add(new SequenceItemViewModel(seq.text_layer));
                break;

            case SequenceType.PanningLayer:
                var panning_layer = new PanningLayer()
                {
                    SequenceName = "panning_layer", duration = 3.0m
                };
                seq = new Sequence()
                {
                    panning_layer = panning_layer
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.panning_layer);
                Sequences.Add(new SequenceItemViewModel(seq.panning_layer));
                break;

            case SequenceType.RandomText:
                var rndText = new RandomText()
                {
                    SequenceName = "RandomText", duration = 3.0m
                };
                seq = new Sequence()
                {
                    RandomText = rndText
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.RandomText);
                Sequences.Add(new SequenceItemViewModel(seq.RandomText));
                break;

            case SequenceType.Animation:
                var attAnim = new AttractAnimation()
                {
                    AnimName = "Animation", duration = 3.0m
                };
                seq = new Sequence()
                {
                    AttractAnimation = attAnim
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.AttractAnimation);
                Sequences.Add(new SequenceItemViewModel(seq.AttractAnimation));
                break;

            case SequenceType.HighScores:
                var hiScore = new HighScores()
                {
                    SequenceName = "HighScores", duration = 1.0m
                };
                seq = new Sequence()
                {
                    HighScores = hiScore
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.HighScores);
                Sequences.Add(new SequenceItemViewModel(seq.HighScores));
                break;

            case SequenceType.Credits:
                var credits = new Credits()
                {
                    SequenceName = "Credits", duration = 3.0m
                };
                seq = new Sequence()
                {
                    Credits = credits
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.Credits);
                Sequences.Add(new SequenceItemViewModel(seq.Credits));
                break;

            case SequenceType.MarkupLayer:
                var markup = new MarkupLayer()
                {
                    SequenceName = "MarkupLayer", duration = 3.0m
                };
                seq = new Sequence()
                {
                    MarkupLayer = markup
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.MarkupLayer);
                Sequences.Add(new SequenceItemViewModel(seq.MarkupLayer));
                break;

            case SequenceType.ScriptedText:
                var scriptedText = new ScriptedText()
                {
                    Name = "ScriptedText", duration = 3.0m
                };
                seq = new Sequence()
                {
                    ScriptedText = scriptedText
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.ScriptedText);
                Sequences.Add(new SequenceItemViewModel(seq.ScriptedText));
                break;

            case SequenceType.GroupLayer:
                var groupLayer = new GroupLayer()
                {
                    Name = "GroupLayer", duration = 3.0m
                };
                seq = new Sequence()
                {
                    GroupLayer = groupLayer
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.GroupLayer);
                Sequences.Add(new SequenceItemViewModel(seq.GroupLayer));
                break;

            case SequenceType.MoveLayer:
                var moveLayer = new MoveLayer()
                {
                    SequenceName = "MoveLayer", duration = 3.0m
                };
                seq = new Sequence()
                {
                    MoveLayer = moveLayer
                };
                this.SelectedSequenceFile.SequenceYaml.Sequences.Add(seq.MoveLayer);
                Sequences.Add(new SequenceItemViewModel(seq.MoveLayer));
                break;

            default:
                break;
            }
        }