public static void Analyser(string osr_path, string osu_path) { var beatmap = GetBeatmap(osu_path); ReplayDecoder decoder = new ReplayDecoder(osr_path, beatmap); var score = decoder.Parse(File.OpenRead(osr_path)); var frames = BuildWrapReplyFrames(score.Replay); var mouse_actions = BuildWrapMouseActions(frames); int left = mouse_actions[OsuAction.LeftButton].Count; int right = mouse_actions[OsuAction.RightButton].Count; HitResultRecordCollection result_collection = new HitResultRecordCollection(); Console.WriteLine($"left:{left} right:{right}"); JudgementParam judgement_param = new JudgementParam() { Score = score, RawFrames = frames, MouseActions = mouse_actions, ResultCollection = result_collection }; foreach (OsuHitObject obj in beatmap.HitObjects) { OsuHitObjectJudgement.Judge(obj, judgement_param); } }
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}"); }