using System;
using nadena.dev.ndmf;
using nadena.dev.modular_avatar.editor.ErrorReporting;

namespace nadena.dev.modular_avatar.core.editor
{
    internal class ModularAvatarContext : IExtensionContext
    {
        private IDisposable toDispose;
        internal BuildContext BuildContext { get; private set; }

        public void OnActivate(ndmf.BuildContext context)
        {
            if (BuildContext == null)
            {
                BuildContext = new BuildContext(context);
            }

            toDispose = BuildReport.CurrentReport.ReportingOnAvatar(context.AvatarDescriptor);
        }

        public void OnDeactivate(ndmf.BuildContext context)
        {
            try
            {
                toDispose?.Dispose();
                toDispose = null;
            }
            catch (Exception e)
            {
                ErrorReportUI.OpenErrorReportUI();
                throw e;
            }
        }
    }
}