/*
<copyright file="BGGCSetVector3.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>
    ///  set database vector3 value  
    /// </summary>
    public class BGGCSetVector3 : BGGCSetA
    {
        [VariableFilter(Variable.DataType.Vector3)]
        public VariableProperty valueVar;

        [SerializeField] [HideInInspector] private Vector3 value;

        public override bool IsSupported(BGField field)
        {
            return field is BGFieldVector3;
        }

        protected override void AssignUsingVar(GameObject target, BGGCCell cell)
        {
            if (!IsValid(valueVar)) return;
            cell.Value =  valueVar.Get(target);
        }
        protected override void AssignUsingValue(GameObject target, BGGCCell cell)
        {
            cell.Value = value;
        }
        // +--------------------------------------------------------------------------------------+
        // | EDITOR                                                                               |
        // +--------------------------------------------------------------------------------------+

#if UNITY_EDITOR
        public static new string NAME = "BansheeGz/Set vector3";
        protected override string Title => "BGDatabase: Set vector3";

        public override void EditorGui()
        {
            base.EditorGui();
            EditorGUILayout.PropertyField(Prop(UseVarForValue ? nameof(valueVar) : nameof(value)));
        }
#endif
    }
}