using Impact.Interactions.Decals;
using ImpactCFX;
using UnityEngine;

namespace ImpactCFXConversion
{
    public class ImpactDecalManagerConverter : IAssetConverter
    {
        public Object Convert(Object source, ConversionContext conversionContext)
        {
            if (source is GameObject g)
            {
                ImpactDecalManager[] decalManagers = g.GetComponentsInChildren<ImpactDecalManager>();

                foreach (var item in decalManagers)
                {
                    ImpactAttachedEffectManager attachedEffectManager = item.gameObject.AddComponent<ImpactAttachedEffectManager>();
                    conversionContext.AddObjectToDestroy(ConversionContextDestroyGroupType.Components, item);
                    ConversionUtility.LogComponentConversion(item, attachedEffectManager, item.gameObject);
                }
            }

            return source;
        }
    }
}