Beispiel #1
0
        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;
        }
Beispiel #2
0
        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."
            });
        }
Beispiel #3
0
        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);
                }
            }
        }