﻿using UnityEngine;

public class EC_Settings : ScriptableObject
{
    public static EC_Settings Instance
    {
        get
        {
            if (sInstance == null)
            {
                sInstance = LoadSettingsAsset();

                if (sInstance == null)
                {
#if !UNITY_EDITOR
                        Debug.LogError("Easy Coppa settings not found! " +
                            "Please go to menu Windows > Easy Coppa > Open Easy Coppa to setup the plugin.");
#endif
                    sInstance = CreateInstance<EC_Settings>();   // Create a dummy scriptable object for temporary use.
                }
            }

            return sInstance;
        }
    }

    public static EC_Settings LoadSettingsAsset()
    {
        return Resources.Load("EC_Settings") as EC_Settings;
    }

    private static EC_Settings sInstance;

    public enum DateFormat
    {
        DD_MM_YYYY,
        MM_DD_YYYY,
        YYYY_MM_DD
    }

    public static int UNDER_AGE = 13;
    [HideInInspector] public bool underageFlag = false;
    public bool showCoppa = true;
    public bool rejectMinors = false;
    public bool blockInput = true;
    public bool useTranslation = false;
    public EC_Lang translation = null;
    public DateFormat dateFormat;
    public string termsOfUseURL = "https://...";
    public string privacyPolicyURL = "https://...";
    public string supportMail = "example@yourcompany.com";

    public static void SetPlayerUnderageFlag(bool value) { Instance.underageFlag = value; }
    public static bool IsPlayerUnderage() { return Instance.underageFlag; }
    public static bool ShouldShowCoppa() { return Instance.showCoppa; }
    public static bool ShouldRejectMinors() { return Instance.rejectMinors; }
    public static bool ShouldBlockInput() { return Instance.blockInput; }
    public static DateFormat GetDateFormat() { return Instance.dateFormat; }
    public static string GetTermsOfUseURL() { return Instance.termsOfUseURL; }
    public static string GetPrivacyPolicyURL() { return Instance.privacyPolicyURL; }
    public static string GetSupportMail() { return Instance.supportMail; }
    public static bool ShouldUseLocalization() { return Instance.useTranslation; }
    public static void SetTranslation(EC_Lang lang) { Instance.translation = lang; Instance.useTranslation = true; }
    public static EC_Lang Lang() { return Instance.translation; }
}


