Exemple #1
0
        static public HBMSData Decode(String datastr)
        {
            MidProcessHBMSData mpdata = JsonConvert.DeserializeObject <MidProcessHBMSData>(datastr);
            HBMSData           data   = new HBMSData(mpdata.title, mpdata.artist)
            {
                genre = mpdata.genre,
                bpm   = mpdata.bpm,
                //todo: decode artist, map creator
                creator   = mpdata.creator,
                audioDir  = mpdata.audioDir,
                rank      = mpdata.rank,
                rankText  = mpdata.rankText,
                hitsounds = mpdata.hitsounds,
                notes     = new List <Note>()
            };

            foreach (string note in mpdata.notes)
            {
                switch ((NoteType)(note.ToList()[0] - '0'))
                {
                case NoteType.ShortNote:
                    data.notes.Add((Note)JsonConvert.DeserializeObject <ShortNote>(note.Substring(1)));
                    break;

                case NoteType.SlideLongNote:
                    data.notes.Add((Note)JsonConvert.DeserializeObject <SlideLongNote>(note.Substring(1)));
                    break;

                    /*case NoteType.TrackNote:
                     *  data.notes.Add((Note)JsonConvert.DeserializeObject<TrackNote>(note));
                     *  break;
                     * case NoteType.DynamicNote:
                     *  data.notes.Add((Note)JsonConvert.DeserializeObject<DynamicNote>(note));
                     *  break;*/
                }
            }
            return(data);
        }
Exemple #2
0
        static public String Encode(HBMSData data)
        {
            MidProcessHBMSData mpdata = new MidProcessHBMSData();

            mpdata.title     = data.title;
            mpdata.genre     = data.genre;
            mpdata.bpm       = data.bpm;
            mpdata.artist    = data.artist;
            mpdata.creator   = data.creator;
            mpdata.audioDir  = data.audioDir;
            mpdata.rank      = data.rank;
            mpdata.rankText  = data.rankText;
            mpdata.hitsounds = data.hitsounds;
            mpdata.notes     = new List <string>();
            foreach (Note note in data.notes)
            {
                switch (note.type)
                {
                case NoteType.ShortNote:
                    mpdata.notes.Add((int)note.type + JsonConvert.SerializeObject((ShortNote)note));
                    break;

                case NoteType.SlideLongNote:
                    mpdata.notes.Add((int)note.type + JsonConvert.SerializeObject((SlideLongNote)note));
                    break;

                    /*case NoteType.TrackNote:
                     *  mpdata.notes.Add((int)note.type + JsonConvert.SerializeObject((TrackNote)note));
                     *  break;
                     * case NoteType.DynamicNote:
                     *  mpdata.notes.Add((int)note.type + JsonConvert.SerializeObject((DynamicNote)note));
                     *  break;*/
                }
            }
            return(JsonConvert.SerializeObject(mpdata));
        }