public void TestDecodePostConverted() { var converted = new OsuBeatmapConverter(decodeAsJson(normal), new OsuRuleset()).Convert(); var processor = new OsuBeatmapProcessor(converted); processor.PreProcess(); foreach (var o in converted.HitObjects) { o.ApplyDefaults(converted.ControlPointInfo, converted.Difficulty); } processor.PostProcess(); var beatmap = converted.Serialize().Deserialize <Beatmap>(); var curveData = beatmap.HitObjects[0] as IHasPathWithRepeats; var positionData = beatmap.HitObjects[0] as IHasPosition; Assert.IsNotNull(positionData); Assert.IsNotNull(curveData); Assert.AreEqual(90, curveData.Path.Distance); Assert.AreEqual(new Vector2(192, 168), positionData.Position); Assert.AreEqual(956, beatmap.HitObjects[0].StartTime); Assert.IsTrue(beatmap.HitObjects[0].Samples.Any(s => s.Name == HitSampleInfo.HIT_NORMAL)); positionData = beatmap.HitObjects[1] as IHasPosition; Assert.IsNotNull(positionData); Assert.AreEqual(new Vector2(304, 56), positionData.Position); Assert.AreEqual(1285, beatmap.HitObjects[1].StartTime); Assert.IsTrue(beatmap.HitObjects[1].Samples.Any(s => s.Name == HitSampleInfo.HIT_CLAP)); }
private static IBeatmap GetBeatmap(string osu_file) { var osu_streamReader = File.OpenText(osu_file); var beatmap = Decoder.GetDecoder <Beatmap>(osu_streamReader).Decode(osu_streamReader); var osu_converter = new OsuBeatmapConverter(beatmap); var converter_beatmap = osu_converter.Convert(); PreprocessHitObjects(converter_beatmap.HitObjects); //mumally parse foreach (var hitObject in converter_beatmap.HitObjects) { hitObject.ApplyDefaults(converter_beatmap.ControlPointInfo, converter_beatmap.BeatmapInfo.BaseDifficulty); } return(converter_beatmap); }
public void TestDecodeBeatmapComboOffsetsOsu() { var decoder = new LegacyBeatmapDecoder(); using (var resStream = TestResources.OpenResource("hitobject-combo-offset.osu")) using (var stream = new LineBufferedReader(resStream)) { var beatmap = decoder.Decode(stream); var converted = new OsuBeatmapConverter(beatmap, new OsuRuleset()).Convert(); new OsuBeatmapProcessor(converted).PreProcess(); new OsuBeatmapProcessor(converted).PostProcess(); Assert.AreEqual(4, ((IHasComboInformation)converted.HitObjects.ElementAt(0)).ComboIndexWithOffsets); Assert.AreEqual(5, ((IHasComboInformation)converted.HitObjects.ElementAt(2)).ComboIndexWithOffsets); Assert.AreEqual(5, ((IHasComboInformation)converted.HitObjects.ElementAt(4)).ComboIndexWithOffsets); Assert.AreEqual(6, ((IHasComboInformation)converted.HitObjects.ElementAt(6)).ComboIndexWithOffsets); Assert.AreEqual(11, ((IHasComboInformation)converted.HitObjects.ElementAt(8)).ComboIndexWithOffsets); Assert.AreEqual(14, ((IHasComboInformation)converted.HitObjects.ElementAt(11)).ComboIndexWithOffsets); } }