Esempio n. 1
0
 public void CopyParameters(MarkDataBase mark)
 {
     foreach (var parameter in mark.Parameters)
     {
         parameters[parameter.Key] = parameter.Value;
     }
 }
Esempio n. 2
0
        private Mark CreateMark(MarkDataBase ipdata, bool hasSameTimingMark, int sameTimingMarks)
        {
            var  emd = ipdata as ExMarkData;
            Mark mk  = null;

            if (emd != null)
            {
                var noteType     = EventManager.GetNoteType(ipdata.Time);
                var displayState = EventManager.GetCorrectDisplaystate(ipdata.Time);
                switch (noteType)
                {
                case NoteType.Normal:
                    mk = new NormalExMark(device, resourceManager, imagepathes, emd, randomChangeManager[emd.ButtonType],
                                          evals, adjustgaptime, circlepoints, displayState, noteType, sameTimingMarks, ipdata.Parameters, postDrawManager);
                    break;

                case NoteType.AC:
                    mk = new HoldExMark(device, resourceManager, imagepathes, emd, randomChangeManager[emd.ButtonType],
                                        evals, adjustgaptime, displayState, noteType, sameTimingMarks, ipdata.Parameters, postDrawManager);
                    break;

                case NoteType.ACFT:
                    if (IsScratch(ipdata.ButtonType, sameTimingMarks))
                    {
                        var slideScale = EventManager.GetSlideScale(ipdata.Time);
                        mk = new SlideExMark(device, resourceManager, imagepathes, emd, randomChangeManager[emd.ButtonType],
                                             evals, adjustgaptime, displayState, noteType, slideScale, sameTimingMarks, ipdata.Parameters, postDrawManager);
                    }
                    else
                    {
                        goto case NoteType.AC;
                    }
                    break;
                }
            }
            else
            {
                var md = ipdata as MarkData;
                mk = new Mark(device, resourceManager, imagepathes, md, randomChangeManager[md.ButtonType], evals, adjustgaptime,
                              EventManager.GetCorrectDisplaystate(ipdata.Time), EventManager.GetNoteType(ipdata.Time), sameTimingMarks, ipdata.Parameters, postDrawManager);
            }
            mk.HasSameTimingMark = hasSameTimingMark;
            if (scriptManager.ProcessMarkBPMManager.Process(mk, out float bpm))
            {
                mk.FixedBPM = bpm;
            }

            if (mk != null)
            {
                MarkLayer.InsertChild(mk, 0);
                mk.Initialize(scriptManager.CreateMarkManager.CreateMark, scriptManager.ProcessAllowedButtonsManager.Process);
                mk.CheckColorPosition += mk_CheckColorPosition;
                mk.ChangeMarkEvaluate += mk_ChangeMarkEvaluate;
            }

            return(mk);
        }
Esempio n. 3
0
 /// <summary>
 /// 読み取る
 /// </summary>
 /// <param name="path"></param>
 /// <returns></returns>
 public static MarkDataBase[] Read(string path)
 {
     MarkDataBase[] ret = new MarkDataBase[0];
     if (File.Exists(path))
     {
         using (FileStream fs = File.Open(path, FileMode.Open))
         {
             ret = Read(fs);
         }
     }
     return(ret);
 }
Esempio n. 4
0
 private Mark CreateMark(MarkDataBase ipdata)
 {
     return(CreateMark(ipdata, false, 0));
 }