Exemple #1
0
    public static void Save(List <Pattern> patterns, string path)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(SerializablePattern[]));

        SerializablePattern[] serializablePatterns = new SerializablePattern[patterns.Count];

        for (int i = 0; i < serializablePatterns.Length; i++)
        {
            serializablePatterns[i] = new SerializablePattern(patterns[i]);
        }

        TextWriter writer = new StreamWriter(path);

        serializer.Serialize(writer, serializablePatterns);
        writer.Close();
    }
Exemple #2
0
        public void Prepare(SerializableDesc desc, SerializablePattern pattern)
        {
            var skinPrefab = pattern.line switch
            {
                4 => skins.gearSet[gear.value].gear4K,
                5 => skins.gearSet[gear.value].gear5K,
                6 => skins.gearSet[gear.value].gear6K,
                8 => skins.gearSet[gear.value].gear8K,
                _ => null
            };

            line = pattern.line;
            skin = Instantiate(skinPrefab, playZone);

            noteQueues = factory.PrepareNotes(pattern, skin);
            for (var i = 0; i < pattern.line; i++)
            {
                noteStates.Add(new NoteState());
            }
        }
Exemple #3
0
        public List <Queue <NoteSystem> > PrepareNotes(SerializablePattern pattern, SkinSystem skin)
        {
            var noteQueues = new List <Queue <NoteSystem> >();
            var sortReady  = new List <List <NoteSystem> >();

            line          = pattern.line;
            skinSystem    = skin;
            noteContainer = skin.noteContainer;

            player.EndTime = 3f;

            for (var i = 0; i < pattern.line; i++)
            {
                sortReady.Add(new List <NoteSystem>());
            }

            foreach (var item in pattern.notes)
            {
                var noteSystem = CreateNote(item.line, item.beat);
                player.EndTime = Math.Max(player.EndTime, noteSystem.time);
                sortReady[item.line].Add(noteSystem);
            }

            foreach (var item in pattern.longNotes)
            {
                var longNoteSystem = CreateLongNote(item.line, item.beat, item.length);
                player.EndTime = Math.Max(player.EndTime, longNoteSystem.endTime);
                sortReady[item.line].Add(longNoteSystem);
            }

            foreach (var item in sortReady)
            {
                item.Sort();
                noteQueues.Add(new Queue <NoteSystem>(item));
            }

            player.EndTime += 5f;

            return(noteQueues);
        }
Exemple #4
0
 public Chart(SerializableDesc desc, string patternPath, string directoryPath)
 {
     this.desc          = desc;
     this.directoryPath = directoryPath;
     pattern            = Serialize.FromFile <SerializablePattern>(patternPath);
 }
Exemple #5
0
 /// <summary>
 ///     Performs a pattern scan from a <see cref="SerializablePattern" /> struct.
 /// </summary>
 /// <param name="pattern">The <see cref="SerializablePattern" /> instance to use.</param>
 /// <returns>A new <see cref="PatternScanResult" /> instance.</returns>
 public PatternScanResult FindPattern(SerializablePattern pattern)
 {
     return(FindPattern(pattern.TextPattern, pattern.OffsetToAdd, pattern.RebaseResult));
 }