public TestSceneBeatmapParsing() { API = new BeatmapAPI(); Children = new Drawable[] { new RhythmicScrollContainer(Direction.Vertical) { RelativeSizeAxes = Axes.Both, Children = new[] { Container = new FillFlowContainer { LayoutDuration = 100, LayoutEasing = Easing.Out, Spacing = new Vector2(1, 1), RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, Padding = new MarginPadding(5) } } } }; #region BeatmapSetup TestLevel = new BeatmapMeta { Metadata = new BeatmapMetadata { Song = new SongMetadata { Author = "Silentroom", Name = "NULCTRL" }, Level = new LevelMetadata { CreatorID = 0, CreatorName = "Alten", LevelName = "NULCTRL" } }, SongUrl = "song.mp3" }; TestLevel.Player = new PlayerMeta { Colour = new float[] { 255, 255, 255, 255 }, Cooldown = 2, Health = 3, Size = 20 }; TestLevel = API.CreateNewLevel(TestLevel); TestLevel.Level.BackgroundColour = new float[] { 10, 10, 10, 10 }; API.AddObject(new Object { Name = "Object 2", Time = 2, Shape = Shape.Square, Position = new float[] { 0, 0 }, Size = new float[] { 1, 1 }, Colour = new float[] { 255, 255, 255, 255 }, Rotation = 0, Anchor = Anchor.Centre, Origin = Anchor.Centre, Autokill = false, Masking = false, Empty = false, Helper = false, MoveKeyframes = new List <Keyframe <double[]> > { new Keyframe <double[]> { Time = 0, Value = new double[] { 0, 0 }, EaseType = Easing.None }, new Keyframe <double[]> { Time = 1, Value = new double[] { 0, 20 }, EaseType = Easing.InExpo } }, ScaleKeyframes = new List <Keyframe <double[]> > { new Keyframe <double[]> { Time = 0, Value = new double[] { 0, 0 }, EaseType = Easing.None }, new Keyframe <double[]> { Time = 0.2, Value = new double[] { 1, 1 }, EaseType = Easing.OutExpo } } }, TestLevel); #endregion string Json = API.ParseBeatmap(TestLevel); System.Console.WriteLine(Json); Container.Add(new TextFlowContainer { Text = Json, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, }); AddStep("aa", null); //TODO: Add more steps #region Steps AddStep("Create new object", () => { API.AddObject(new Object { Name = "Object " + index, Time = 2, Shape = Shape.Square, Position = new float[] { 0, 0 }, Size = new float[] { 1, 1 }, Rotation = 0, Anchor = Anchor.Centre, Origin = Anchor.Centre, Autokill = false, Masking = false, Empty = false, Helper = false, MoveKeyframes = new List <Keyframe <double[]> > { new Keyframe <double[]> { Time = 0, Value = new double[] { 0, 0 }, EaseType = Easing.None }, new Keyframe <double[]> { Time = 1, Value = new double[] { 0, 20 }, EaseType = Easing.InExpo } }, ScaleKeyframes = new List <Keyframe <double[]> > { new Keyframe <double[]> { Time = 0, Value = new double[] { 0, 0 }, EaseType = Easing.None }, new Keyframe <double[]> { Time = 0.2, Value = new double[] { 1, 1 }, EaseType = Easing.OutExpo } } }, TestLevel); Container.Clear(); Json = JsonConvert.SerializeObject(TestLevel, Formatting.Indented); Container.Add(new TextFlowContainer { Text = Json, RelativeSizeAxes = Axes.X, AutoSizeAxes = Axes.Y, }); index++; }); #endregion }
private void load() { API = new BeatmapAPI(); TestLevel = API.CreateNewLevel(new BeatmapMeta { Metadata = new BeatmapMetadata { Level = new LevelMetadata { CreatorID = 0, CreatorName = "Alten", LevelName = "NULCTRL" }, Song = new SongMetadata { Author = "SilentRoom", Name = "NULCTRL" } }, Level = new LevelMeta { BackgroundColour = new float[] { 20, 20, 20 } } }); API.AddObject(new Object { AutoSizeAxes = Axes.Both, RelativeSizeAxes = Axes.None, Size = new float[] { 1f, 1f }, Position = new float[] { 0, -1900 }, Anchor = Anchor.Centre, Origin = Anchor.Centre, Autokill = false, Colour = new float[] { 255, 255, 255, 255 }, Masking = false, MoveKeyframes = new List <Keyframe <double[]> > { new Keyframe <double[]> { EaseType = Easing.OutExpo, Value = new double[] { 0, 0 }, Time = 0, TimeUntilFinish = 6000 } }, ColourKeyframes = new List <Keyframe <float[]> >(), RotationKeyframes = new List <Keyframe <double> >(), ScaleKeyframes = new List <Keyframe <double[]> >(), BorderColourKeyframes = new List <Keyframe <float[]> >(), BorderThicknessKeyframes = new List <Keyframe <double[]> >(), BorderColour = new float[] { 255, 255, 255, 255 }, BorderThickness = 0f, Name = "Test Container", Rotation = 0, Shape = Shape.Container, Time = 0, Childrens = new List <Object>() { new Object { Origin = Anchor.Centre, Anchor = Anchor.Centre, Colour = new float[] { 255, 255, 255, 255 }, Size = new float[] { 190, 190 }, Position = new float[] { 0, 0 }, AutoSizeAxes = Axes.Both, RelativeSizeAxes = Axes.None, Autokill = false, Masking = false, MoveKeyframes = new List <Keyframe <double[]> >(), ColourKeyframes = new List <Keyframe <float[]> >(), RotationKeyframes = new List <Keyframe <double> >(), ScaleKeyframes = new List <Keyframe <double[]> >(), Name = "Test Square", Rotation = 0, Shape = Shape.Square, Time = 0, }, new Object { AutoSizeAxes = Axes.None, RelativeSizeAxes = Axes.None, Size = new float[] { 125f, 125f }, Position = new float[] { 0, 0 }, Anchor = Anchor.Centre, Origin = Anchor.Centre, Autokill = false, Colour = new float[] { 255, 255, 0, 255 }, Masking = true, MoveKeyframes = new List <Keyframe <double[]> >(), ColourKeyframes = new List <Keyframe <float[]> >(), RotationKeyframes = new List <Keyframe <double> >(), ScaleKeyframes = new List <Keyframe <double[]> >(), BorderColourKeyframes = new List <Keyframe <float[]> >(), BorderThicknessKeyframes = new List <Keyframe <double[]> >(), BorderColour = new float[] { 255, 255, 255, 255 }, BorderThickness = 0f, Name = "Test Circle", Rotation = 0, Shape = Shape.Circle, Time = 0, Childrens = new List <Object>() }, new Object { Origin = Anchor.Centre, Anchor = Anchor.Centre, Colour = new float[] { 255, 0, 255, 150 }, Size = new float[] { 125, 125 }, Position = new float[] { 0, 0 }, AutoSizeAxes = Axes.Both, RelativeSizeAxes = Axes.None, Autokill = false, Masking = false, MoveKeyframes = new List <Keyframe <double[]> >(), ColourKeyframes = new List <Keyframe <float[]> >(), RotationKeyframes = new List <Keyframe <double> >(), ScaleKeyframes = new List <Keyframe <double[]> >(), Name = "Test Triangle", Rotation = 0, Shape = Shape.Triangle, Time = 0, }, new Object { Origin = Anchor.Centre, Anchor = Anchor.Centre, Colour = new float[] { 0, 255, 255, 150 }, Size = new float[] { 70, 70 }, Position = new float[] { 0, 0 }, AutoSizeAxes = Axes.Both, RelativeSizeAxes = Axes.None, Autokill = false, Masking = false, MoveKeyframes = new List <Keyframe <double[]> >(), ColourKeyframes = new List <Keyframe <float[]> >(), RotationKeyframes = new List <Keyframe <double> >(), ScaleKeyframes = new List <Keyframe <double[]> >(), Name = "Test EquilateralTriangle", Rotation = 0, Shape = Shape.EquilateralTriangle, Time = 0, }, } }, TestLevel); foreach (Object obj in TestLevel.Level.Level) { Scheduler.AddDelayed(() => { Add(new DrawableBeatmapObject(obj)); }, obj.Time); } }