using System.IO;
using System.Text;
using ParadoxNotion.Design;
using UnityEngine;

namespace BansheeGz.BGDatabase
{
    [Category("BansheeGz")]
    [Name("SL: List saved game files")]
    [Description("List saved game files")]
    public partial class BGFCListSaves : BGFCSaveLoadA
    {
        protected override void RegisterPorts()
        {
            base.RegisterPorts();
            AddValueOutput<string[]>("File Names", () =>
            {
                var files = Directory.GetFiles(Application.persistentDataPath, "*." + FileExt);
                var filesNoExtension = new string[files.Length];
                if (files.Length > 0)
                {
                    for (var i = 0; i < files.Length; i++) filesNoExtension[i] = Path.GetFileNameWithoutExtension(files[i]);
                }


                if (IsDebugging())
                {
                    if (files.Length > 0)
                    {
                        var fileNamesBuilder = new StringBuilder();
                        foreach (var file in files) fileNamesBuilder.Append(Path.GetFileNameWithoutExtension(file)).Append(' ');
                        Log( "$ saved files found in folder: $. Files are: $", files.Length, Application.persistentDataPath, fileNamesBuilder.ToString());
                    }
                    else Log( "No saved files found in folder: $", Application.persistentDataPath);
                }

                return filesNoExtension;
                
            });
        }
    }
}