public BeatmapCard(PAMetadata Metadata) { meta = Metadata; Size = size; CornerRadius = 5; Masking = true; EdgeEffect = new EdgeEffectParameters { Type = EdgeEffectType.Shadow, Offset = new Vector2(0f, 2f), Radius = 1f, Colour = Color4.Black.Opacity(0.25f), }; Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both, Colour = Color4.Black }, Background = new Box { RelativeSizeAxes = Axes.Both, FillMode = FillMode.Fill, Anchor = Anchor.Centre, Origin = Anchor.Centre, Alpha = 0.6f }, new Box { RelativeSizeAxes = Axes.Both, Colour = new ColourInfo { TopLeft = Color4.Black.Opacity(0f), TopRight = Color4.Black.Opacity(0f), BottomLeft = Color4.Black.Opacity(0.6f), BottomRight = Color4.Black.Opacity(0.6f) } }, new FillFlowContainer { RelativeSizeAxes = Axes.Both, Direction = FillDirection.Vertical, Anchor = Anchor.BottomCentre, Origin = Anchor.BottomCentre, Padding = new MarginPadding { Bottom = size.Y / 4 + 5, Left = 5 }, Children = new Drawable[] { new SpriteText { Text = meta.Artist.Name, Font = GetFont(Typeface.Neogrey, 20, FontWeight.Medium), Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft }, new SpriteText { Text = meta.Song.Title, Font = GetFont(Typeface.Neogrey, 30, FontWeight.Medium), Anchor = Anchor.BottomLeft, Origin = Anchor.BottomLeft } } }, beatmapUseCase = new BeatmapUsecase(meta) { Origin = Anchor.BottomLeft, Anchor = Anchor.BottomLeft, RelativeSizeAxes = Axes.X, Size = new Vector2(1f, size.Y / 4), Select = () => Selected.Value = !Selected.Value, } }; Selected.ValueChanged += Select; }
public BeatmapUsecase(PAMetadata Metadata) { meta = Metadata; switch (meta.Song.Difficulty) { case 0: difficultyColor = StreamToolColors.Easy; break; case 1: difficultyColor = StreamToolColors.Normal; break; case 2: difficultyColor = StreamToolColors.Hard; break; case 3: difficultyColor = StreamToolColors.Expert; break; case 4: difficultyColor = StreamToolColors.ExpertPlus; break; default: difficultyColor = StreamToolColors.Unknown; break; } Children = new Drawable[] { new Box { RelativeSizeAxes = Axes.Both }, new Box { RelativeSizeAxes = Axes.X, Size = new Vector2(1f, 5), Colour = difficultyColor, Origin = Anchor.BottomCentre, Anchor = Anchor.BottomCentre }, new Container { Padding = new MarginPadding(5), RelativeSizeAxes = Axes.Both, Children = new Drawable[] { textContainer = new TextFlowContainer { Direction = FillDirection.Horizontal }, useButton = new Button { BackgroundColour = StreamToolColors.Primary, Text = "Set", Anchor = Anchor.TopRight, Origin = Anchor.TopRight, CornerRadius = 5, Masking = true, Size = new Vector2(50, 23), Action = () => { Select?.Invoke(); Selected.Value = !Selected.Value; //useButton.TransformTo(nameof(useButton.BackgroundColour), Selected.Value ? StreamToolColors.Used : StreamToolColors.Primary, 200); } } } } }; textContainer.AddText(new SpriteText { Text = "mapped by ", Colour = Color4.Black }); textContainer.AddText(new SpriteTextLink(null) { Text = meta.Creator.Name, TooltipText = "Link is not working due to some inconveniences." }); }
private void SetBeatmap(PAMetadata meta) { //TODO: Setting var directory = config.Get <string>(StreamGameSettings.StreamDirectory); if (!directory.EndsWith(@"\")) { directory += @"\"; } //Artist File.WriteAllText(directory + @"artist\link.txt", meta.Artist.Link); File.WriteAllText(directory + @"artist\name.txt", meta.Artist.Name); //Beatmap File.WriteAllText(directory + @"beatmap\date_edited.txt", meta.Beatmap.DateEdited); File.WriteAllText(directory + @"beatmap\game_version.txt", meta.Beatmap.GameVersion); File.WriteAllText(directory + @"beatmap\version_number.txt", meta.Beatmap.VersionNumber.ToString()); File.WriteAllText(directory + @"beatmap\workshop_id.txt", meta.Beatmap.WorkshopID.ToString()); //Creator File.WriteAllText(directory + @"creator\steam_id.txt", meta.Creator.ID.ToString()); File.WriteAllText(directory + @"creator\steam_name.txt", meta.Creator.Name); //Song File.WriteAllText(directory + @"song\bpm.txt", meta.Song.bpm.ToString()); File.WriteAllText(directory + @"song\description.txt", meta.Song.Description); File.WriteAllText(directory + @"song\difficulty.txt", meta.Song.Difficulty.ToString()); //TODO: format this File.WriteAllText(directory + @"song\t.txt", meta.Song.StartTime.ToString()); File.WriteAllText(directory + @"song\title.txt", meta.Song.Title); System.Drawing.Bitmap bm; if (Directory != null) { try { if (File.Exists(Directory + @"\banner.jpg")) { bm = new System.Drawing.Bitmap(Directory + @"\banner.jpg"); } else if (File.Exists(Directory + @"\level.jpg")) { bm = new System.Drawing.Bitmap(Directory + @"\level.jpg"); } else { bm = new System.Drawing.Bitmap(config.Get <string>(StreamGameSettings.DefaultImage)); } if (File.Exists(directory + "image.png")) { File.Delete(directory + "image.png"); } bm.Save(directory + "image.png", ImageFormat.Png); bm.Dispose(); } catch (Exception e) { Console.WriteLine(e.Message); } } }