116 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			C#
		
	
	
using System.IO;
 | 
						|
using System.Text;
 | 
						|
using System.Xml;
 | 
						|
using NUnit.Framework;
 | 
						|
using UnityEditor;
 | 
						|
using UnityEditor.Compilation;
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
namespace Guru.Editor.Max
 | 
						|
{
 | 
						|
    public class AmazonMod: GuruModifier
 | 
						|
    {
 | 
						|
        protected override string TargetPath => $"Amazon/Scripts/Editor/AmazonDependencies.xml";
 | 
						|
 | 
						|
        private static string SDKManagerPath = "Amazon/Scripts/Editor/AmazonSDKManager.cs";
 | 
						|
 | 
						|
        public static void Apply()
 | 
						|
        {
 | 
						|
            var mod = new AmazonMod();
 | 
						|
            mod.FixDepsViaPackage();
 | 
						|
            mod.HideAmazonMenuItems();
 | 
						|
        }
 | 
						|
        
 | 
						|
        #region 修复依赖
 | 
						|
 | 
						|
        [Test]
 | 
						|
        public void FixDepsViaPackage()
 | 
						|
        {
 | 
						|
            string path = GetFullPath(TargetPath);
 | 
						|
            
 | 
						|
            if (!File.Exists(path))
 | 
						|
            {
 | 
						|
                Debug.Log($"<color=orange>---- file not found: {path}</color>");
 | 
						|
                return;
 | 
						|
            }
 | 
						|
            
 | 
						|
            var doc = new XmlDocument();
 | 
						|
            doc.LoadXml(File.ReadAllText(path, Encoding.UTF8));
 | 
						|
            if (doc.ChildNodes.Count < 2)
 | 
						|
            {
 | 
						|
                Debug.LogError($"--- Wrong Xml nodes or no root node");
 | 
						|
                return;
 | 
						|
            }
 | 
						|
 | 
						|
            var root = doc.ChildNodes[1];
 | 
						|
            foreach (XmlNode node in root.ChildNodes)
 | 
						|
            {
 | 
						|
                if (node.Name == "iosPods")
 | 
						|
                {
 | 
						|
                    foreach (XmlElement n in node.ChildNodes)
 | 
						|
                    {
 | 
						|
                        if (n.GetAttribute("name") == "Amazon-SDK-Plugin")
 | 
						|
                        {
 | 
						|
                            var p = n.GetAttribute("path");
 | 
						|
                            p = p.Replace("Assets", $"Packages/{GuruMaxSdkAPI.PackageName}");
 | 
						|
                            n.SetAttribute("path", p);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            // 保存文档
 | 
						|
            doc.Save(path);
 | 
						|
 | 
						|
            var xml = File.ReadAllText(path);
 | 
						|
            xml = xml.Replace(">", ">").Replace("<", "<");
 | 
						|
            File.WriteAllText(path, xml);
 | 
						|
            
 | 
						|
            Debug.Log($"[GuruMax]<color=#88ff00>--- Fix Amazon depences success: {path}</color>");
 | 
						|
        }
 | 
						|
        
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 隐藏菜单
 | 
						|
 | 
						|
        [Test]
 | 
						|
        public void HideAmazonMenuItems()
 | 
						|
        {
 | 
						|
            string partten = "[MenuItem (\"Amazon/";
 | 
						|
            string path = GetFullPath(SDKManagerPath);
 | 
						|
            bool isDirty = false;
 | 
						|
            if (File.Exists(path))
 | 
						|
            {
 | 
						|
                var line = "";
 | 
						|
                var lines = File.ReadAllLines(path);
 | 
						|
                for (int i = 0; i < lines.Length; i++)
 | 
						|
                {
 | 
						|
                    line = lines[i];
 | 
						|
                    if (line.Contains(partten))
 | 
						|
                    {
 | 
						|
                        lines[i] = $"//{line}";
 | 
						|
                        isDirty = true;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
 | 
						|
                if (isDirty)
 | 
						|
                {
 | 
						|
                    Debug.Log($"[GuruMax]<color=#88ff00>--- Hide Amazon Menu success: {path}</color>");
 | 
						|
                    File.WriteAllLines(path, lines);
 | 
						|
                    CompilationPipeline.RequestScriptCompilation();
 | 
						|
                }
 | 
						|
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                Debug.LogError($"--- AmazonSDKManager cannot be found");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        #endregion
 | 
						|
        
 | 
						|
 | 
						|
    }
 | 
						|
} |