public static Dictionary <OsuAction, List <WrapperMouseAction> > BuildWrapMouseActions(IEnumerable <WrapReplayFrame> wrapReplayFrames)
        {
            WrapperMouseAction current_action = null;
            Dictionary <OsuAction, List <WrapperMouseAction> > dic = new Dictionary <OsuAction, List <WrapperMouseAction> >();

            foreach (OsuAction action in Enum.GetValues(typeof(OsuAction)))
            {
                current_action = null;
                dic[action]    = new List <WrapperMouseAction>();

                foreach (var frame in wrapReplayFrames)
                {
                    var btn_state = frame.GetButtonState(action);

                    switch (btn_state)
                    {
                    case ButtonState.Click:
                        if (current_action != null)
                        {
                            dic[action].Add(current_action);
                        }
                        current_action = new WrapperMouseAction();
                        current_action.Frames.Add(frame);
                        break;

                    case ButtonState.Hold:
                        current_action.Frames.Add(frame);
                        break;

                    case ButtonState.Release:
                    case ButtonState.None:
                    default:
                        break;
                    }
                }

                if (current_action != null)
                {
                    dic[action].Add(current_action);
                }
            }

            return(dic);
        }
 public HitResultRecord(HitResult result, OsuHitObject @object, WrapperMouseAction action)
 {
     Result          = result;
     TrigHitObject   = @object;
     TrigMouseAction = action;
 }
Exemple #3
0
        private static void ApplyTrigHitObject(HitResultRecordCollection result_collection, OsuHitObject hit_object, WrapperMouseAction action, HitResult reuslt)
        {
            if (action != null)
            {
                action.TriggedHitObject = hit_object;
            }
            HitResultRecord record = new HitResultRecord(reuslt, hit_object, action);

            result_collection.AddResult(record);

            Debug.WriteLine($"Apply hit:{record}");
        }
        public void HitObjectContainsTest()
        {
            WrapperMouseAction mouseAction = new WrapperMouseAction();

            //Ìí¼ÓÊó±êÒƶ¯¹ì¼£
        }