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

using System;
using GameCreator.Runtime.Common;
using GameCreator.Runtime.Variables;
using UnityEngine;


namespace BansheeGz.BGDatabase
{
    /// <summary>
    ///  get index of related entity (if any) or -1 if not set
    /// </summary>
    [Title("BGDatabase: get related")]
    [Category("BansheeGz/get related")]
    [Serializable]
    public class BGGCGetRelated : BGGCGetA
    {
        [SerializeField] private PropertySetNumber saveToVar = SetNumberGlobalName.Create;
        public override string Title => "BGDatabase: Get related";

        public override bool IsSupported(BGField field) => field is BGFieldRelationSingle;

        protected override void Set(BGGCCell cell, Args args) => saveToVar.Set(((BGEntity)cell.Value)?.Index ?? -1, args);
    }
}