コード例 #1
0
 internal TimingChangeKiaiAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeKiai;
 }
コード例 #2
0
        public string BuildStatistics()
        {
            // First just calculate the column widths so we can format them nicely.  We'll save the formatted tick counts
            // so we don't have to regenerate them later.

            string[] formattedTime   = new string[timingRecords.Count];
            int      nameColumnWidth = 0;
            int      timeColumnWidth = 0;

            for (int i = 0; i < timingRecords.Count; i++)
            {
                var timingRecord = timingRecords[i];

                formattedTime[i] = string.Format("{0:#,0}ms", timingRecord.Milliseconds);

                if (formattedTime[i].Length > timeColumnWidth)
                {
                    timeColumnWidth = formattedTime[i].Length;
                }

                int          nameWidth = timingRecord.Name.Length;
                TimingRecord parent    = GetParent(timingRecord);

                while (parent != null)
                {
                    nameWidth += 2;
                    parent     = GetParent(parent);
                }

                if (nameWidth > nameColumnWidth)
                {
                    nameColumnWidth = nameWidth;
                }
            }


            // Now generate the output

            System.Text.StringBuilder output = new System.Text.StringBuilder();

            for (int i = 0; i < timingRecords.Count; i++)
            {
                var timingRecord = timingRecords[i];

                int          nameWidth = 0;
                TimingRecord parent    = GetParent(timingRecord);

                while (parent != null)
                {
                    output.Append("- ");
                    nameWidth += 2;
                    parent     = GetParent(parent);
                }

                output.Append(timingRecord.Name);
                nameWidth += timingRecord.Name.Length;

                output.Append(' ', nameColumnWidth + 2 - nameWidth);
                output.Append(' ', timeColumnWidth - formattedTime[i].Length);

                output.Append(formattedTime[i]);

                parent = GetParent(timingRecord);
                if (parent != null)
                {
                    output.Append(string.Format(" {0,3}%", ((timingRecord.Milliseconds * 100) / parent.Milliseconds)));
                }

                output.AppendLine();
            }

            return(output.ToString());
        }
コード例 #3
0
 internal TimingRemoveAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.Remove;
 }
コード例 #4
0
 internal TimingChangeSignatureAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeSignature;
 }
コード例 #5
0
 internal TimingChangeVelocityAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeVelocity;
 }
コード例 #6
0
 internal TimingChangeTickRateAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeTickRate;
 }
コード例 #7
0
 internal TimingChangeBeatLengthAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeBeatLength;
 }
コード例 #8
0
 internal TimingChangeSoundSampleAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeSoundSample;
 }
コード例 #9
0
 internal TimingChangeCustomAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.ChangeCustom;
 }
コード例 #10
0
 internal TimingAddAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.Add;
 }
コード例 #11
0
 internal TimingMoveTimelineAction(TimingRecord record, Modifier mod)
     : base(record, mod)
 {
     Type = ActionType.MoveTimeline;
 }