﻿using System.Collections;
using System.Collections.Generic;

using UnityEngine;

namespace Bayat.SaveSystem.Storage
{

    /// <summary>
    /// The Steam Cloud connection factory.
    /// </summary>
    public class SteamCloudConnectionFactory : IConnectionFactory
    {

        [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
        private static void Register()
        {
            ConnectionStringFactory.Register(new SteamCloudConnectionFactory());
        }

        public IStorage CreateStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "steam" || connectionString.Prefix == "steam-cloud")
            {
                string encodingName = connectionString.Get("encoding", StorageBase.DefaultTextEncodingName, "text-encoding", "encoding-name");
                bool useBase64 = connectionString.GetBoolean("usebase64", false, "use-base64");

                return new SteamCloudStorage(encodingName, useBase64);
            }

            return null;
        }

    }

}