/*
<copyright file="BGGCGetTexture2D.cs" company="BansheeGz">
    Copyright (c) 2018-2021 All Rights Reserved
</copyright>
*/

using GameCreator.Variables;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;

#endif

namespace BansheeGz.BGDatabase
{
    /// <summary>
    ///  get Texture2D value from database
    /// </summary>
    public class BGGCGetTexture2D : BGGCGetA
    {
        [VariableFilter(Variable.DataType.Texture2D)]
        public VariableProperty saveToVar;

        public override VariableProperty TargetVariable
        {
            get { return saveToVar; }
        }

        public override bool IsSupported(BGField field)
        {
            return field is BGFieldUnityTexture ||
                   (
                       field is BGFieldUnityObject &&
                       ((BGFieldUnityObject) field).AssetType != null &&
                       typeof(Texture2D).IsAssignableFrom(((BGFieldUnityObject) field).AssetType
                       )
                   );
        }


        // +--------------------------------------------------------------------------------------+
        // | EDITOR                                                                               |
        // +--------------------------------------------------------------------------------------+
#if UNITY_EDITOR
        public static new string NAME = "BansheeGz/Get texture2d";
        protected override string Title => "BGDatabase: Get texture2d";

        public override void EditorGui()
        {
            base.EditorGui();
            EditorGUILayout.PropertyField(Prop(nameof(saveToVar)));
        }
#endif
    }
}