using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;

namespace ImpactCFXConversion
{
    public class SceneConverter
    {
        public void ConvertScene(string scenePath, ConversionContext conversionContext)
        {
            Scene activeScene = EditorSceneManager.OpenScene(scenePath, OpenSceneMode.Single);
            GameObject[] rootGameObjects = activeScene.GetRootGameObjects();

            ImpactObjectConverter impactObjectConverter = new ImpactObjectConverter();
            ImpactManagerConverter impactManagerConverter = new ImpactManagerConverter();
            ImpactDecalManagerConverter impactDecalManagerConverter = new ImpactDecalManagerConverter();

            foreach (GameObject g in rootGameObjects)
            {
                impactObjectConverter.Convert(g, conversionContext);
                impactManagerConverter.Convert(g, conversionContext);
                impactDecalManagerConverter.Convert(g, conversionContext);
            }

            //Destroy all old components
            conversionContext.DestroyObjects(ConversionContextDestroyGroupType.Components);

            EditorSceneManager.SaveScene(activeScene, scenePath);
        }
    }
}