using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using testdrid.SdlWrapper;

namespace SDL2Demo.Screenhacks
{
    [ScreenHackId(UInt16.MaxValue)]
    internal class MaiWaifu : ScreenHack
    {
        private Texture wallpaperTexture;

        private FileInfo GetWallpaperFilename()
        {
            if (Directory.Exists("alt-wallpapers"))
            {
                DirectoryInfo altWallpapersFolder = new DirectoryInfo("alt-wallpapers");
                FileInfo[] altWallpapers = altWallpapersFolder.GetFiles("*.png");
                if (altWallpapers.Length > 0)
                {
                    return rng.Pick(altWallpapers);
                }
            }

            DirectoryInfo di = new DirectoryInfo(".");
            FileInfo[] strings = di.GetFiles("*.png");
            return rng.Pick(strings);
        }

        protected override void Setup()
        {
            FileInfo filename = GetWallpaperFilename();

            if (filename != null)
            {
                Surface wallpaperSurface = Surface.ImageLoad(filename.FullName);
                wallpaperTexture = Texture.FromSurface(renderer, wallpaperSurface);
                wallpaperSurface.Dispose();
            }
        }

        public override void MousePressed()
        {
            throw new NotImplementedException();
        }

        public override void Dispose()
        {
            wallpaperTexture?.Dispose();
        }

        public override void Render()
        {
            if (wallpaperTexture != null)
            {
                renderer.Copy(wallpaperTexture, windowRectangle);
            }
        }
    }
}
