﻿/*
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;

namespace Beebyte.Obfuscator
{
	public class ObfuscatorMenuExample
	{
		private static Options _options = null;

		private static IList<string> GetDllPaths()
		{
			var dlls = new List<string> {@"C:\path\to\External.dll"};

			foreach (string dll in dlls.Where(dll => !File.Exists(dll)))
			{
				throw new Exception("Could not find " + dll);
			}
			return dlls;
		}

		[MenuItem("Tools/Obfuscate External DLL")]
		private static void ObfuscateExternalDll()
		{
			Debug.Log("Obfuscating");

			var dllPaths = GetDllPaths();

			//Options are read in the same way as normal Obfuscation, i.e. from the ObfuscatorOptions.asset
			if (_options == null) _options = OptionsManager.LoadOptions();

			bool oldSkipRenameOfAllPublicMonobehaviourFields = _options.skipRenameOfAllPublicMonobehaviourFields;
			try
			{
				//Preserving monobehaviour public field names is an common step for obfuscating external DLLs that
				//allow MonoBehaviours to be dragged into the scene's hierarchy.
				_options.skipRenameOfAllPublicMonobehaviourFields = true;

				//Consider setting this hidden value to false to allow classes like EditorWindow to be obfuscated.
				//ScriptableObjects would normally be treated as Serializable to avoid breaking loading/saving,
				//but for Editor windows this might not be necessary.
				//options.treatScriptableObjectsAsSerializable = false;

				Obfuscator.AppendReferenceAssemblies(_options.referencedAssemblies);
				Obfuscator.Obfuscate(dllPaths, _options, EditorUserBuildSettings.activeBuildTarget);
			}
			finally
			{
				_options.skipRenameOfAllPublicMonobehaviourFields = oldSkipRenameOfAllPublicMonobehaviourFields;
				EditorUtility.ClearProgressBar();
			}
		}
	}
}
*/