فهرست منبع

asmdef.txt挪到packagegit.json中

tanghai 1 سال پیش
والد
کامیت
adc8c0acb1

+ 6 - 23
Packages/com.etetet.init/Editor/GitDependencyResolver/DependencyResolver.cs

@@ -14,14 +14,6 @@ using Debug = UnityEngine.Debug;
 
 namespace Hibzz.DependencyResolver
 {
-    [BsonIgnoreExtraElements]
-    public class PackageGitDependency
-    {
-        public int Id;
-        public string Name;
-        public Dictionary<string, string> GitDependencies;
-    }
-    
     [InitializeOnLoad]
     public class DependencyResolver
     {
@@ -63,7 +55,7 @@ namespace Hibzz.DependencyResolver
                 }
                 
                 // get the dependencies of the added package
-                if (!GetDependencies(package, out PackageGitDependency packageDependencies))
+                if (!GetDependencies(package, out PackageGit packageDependencies))
                 {
                     continue;
                 }
@@ -88,9 +80,8 @@ namespace Hibzz.DependencyResolver
         /// <param name="packageInfo">The package to get the git dependencies from</param>
         /// <param name="dependencies">The retrieved list of git dependencies </param>
         /// <returns>Was the request successful?</returns>
-        static bool GetDependencies(PackageInfo packageInfo, out PackageGitDependency dependencies)
+        static bool GetDependencies(PackageInfo packageInfo, out PackageGit dependencies)
         {
-            // Read the contents of the package.json file
             string packageJsonPath = $"{packageInfo.resolvedPath}/packagegit.json";
 
             if (!File.Exists(packageJsonPath))
@@ -98,20 +89,12 @@ namespace Hibzz.DependencyResolver
                 throw new Exception($"package already move to packages dir, please refresh your unity project!  RepairDependencies retry please! {packageInfo.name} {packageJsonPath}");
             }
             
-            string packageJsonContent = File.ReadAllText(packageJsonPath);
-
-            PackageGitDependency packageGitDependency = BsonSerializer.Deserialize<PackageGitDependency>(packageJsonContent);
-            // if no token with the key git-dependecies is found, failed to get git dependencies
-            if (packageGitDependency.GitDependencies is null || packageGitDependency.GitDependencies.Count == 0)
+            dependencies = PackageGitHelper.Load(packageJsonPath);
+            
+            if (dependencies.GitDependencies is null || dependencies.GitDependencies.Count == 0)
             {
-                dependencies = null;
                 return false;
             }
-
-            // convert the git dependency token to a list of strings...
-            // maybe we should check for errors in this process? what if git-dependency isn't array of string?
-            
-            dependencies = packageGitDependency;
             return true;
         }
 
@@ -205,7 +188,7 @@ namespace Hibzz.DependencyResolver
                     continue;
                 }
                 
-                if (!GetDependencies(package, out PackageGitDependency packageDependencies))
+                if (!GetDependencies(package, out PackageGit packageDependencies))
                 {
                     continue;
                 }

+ 33 - 0
Packages/com.etetet.init/Editor/PackageGit.cs

@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using MongoDB.Bson.Serialization;
+using MongoDB.Bson.Serialization.Attributes;
+
+namespace ET
+{
+    [BsonIgnoreExtraElements]
+    public class PackageGit
+    {
+        public int Id;
+        public string Name;
+        public Dictionary<string, string> GitDependencies;
+        public Dictionary<string, string[]> ScriptsReferences;
+    }
+
+    public static class PackageGitHelper
+    {
+        public static PackageGit Load(string packageJsonPath)
+        {
+            if (!File.Exists(packageJsonPath))
+            {
+                throw new Exception($"not found packagegit.json: {packageJsonPath}, retry refresh unity!");
+            }
+            
+            string packageJsonContent = File.ReadAllText(packageJsonPath);
+
+            PackageGit packageGit = BsonSerializer.Deserialize<PackageGit>(packageJsonContent);
+            return packageGit;
+        }
+    }
+}

+ 3 - 0
Packages/com.etetet.init/Editor/PackageGit.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: b809ee54965a437f991cddc40f76e4da
+timeCreated: 1720094387

+ 2 - 2
Packages/com.etetet.init/Editor/PackagesEditor/InitHelper.cs

@@ -27,7 +27,7 @@ namespace ET
             
             ToolsEditor.Proto2CS();
             
-            AsmdefEditor.UpdateAssemblyDefinition();
+            ScriptsReferencesHelper.Run();
             
             GlobalConfig globalConfig = AssetDatabase.LoadAssetAtPath<GlobalConfig>("Packages/com.etetet.init/Resources/GlobalConfig.asset");
             CodeModeChangeHelper.ChangeToCodeMode(globalConfig.CodeMode);
@@ -42,7 +42,7 @@ namespace ET
         [MenuItem("ET/Refresh")]
         public static void Refresh()
         {
-            AsmdefEditor.UpdateAssemblyDefinition();
+            ScriptsReferencesHelper.Run();
             
             GlobalConfig globalConfig = AssetDatabase.LoadAssetAtPath<GlobalConfig>("Packages/com.etetet.init/Resources/GlobalConfig.asset");
             CodeModeChangeHelper.ChangeToCodeMode(globalConfig.CodeMode);

+ 21 - 41
Packages/com.etetet.init/Editor/PackagesEditor/AsmdefEditor.cs → Packages/com.etetet.init/Editor/PackagesEditor/ScriptsReferencesHelper.cs

@@ -25,61 +25,41 @@ namespace ET
         public string[] additionalReferences;
         public string compilerOptions;
     }
-
-    public class AllRefInfo
-    {
-        public Dictionary<string, HashSet<string>> References = new();
-        
-        public AllRefInfo()
-        {
-            foreach (string assName in AsmdefEditor.AssNames)
-            {
-                References[assName] = new HashSet<string>();
-            }
-        }
-    }
     
-    public static class AsmdefEditor
+    public static class ScriptsReferencesHelper
     {
         public static readonly string[] AssNames = { "Model", "ModelView", "Hotfix", "HotfixView" };
         public static readonly string[] PackagePaths = { "Packages", "Library/PackageCache" };
         
         // 自动把各个包中的引用加到Assets对应的包中去,后面搞个编辑器来编辑每个包的引用
-        public static void UpdateAssemblyDefinition()
+        [MenuItem("ET/UpdateScriptsReferences")]
+        public static void Run()
         {
-            AllRefInfo allRefInfo = new();
-
-            foreach (string packagePath in PackagePaths)
+            Dictionary<string, HashSet<string>> refs = new ()
+            {
+                {"Model", new HashSet<string>()}, 
+                {"Hotfix", new HashSet<string>()},
+                {"ModelView", new HashSet<string>()}, 
+                {"HotfixView", new HashSet<string>()}
+            }; 
+            foreach (string directory in Directory.GetDirectories("Packages", "cn.etetet.*"))
             {
-                foreach (string directory in Directory.GetDirectories(packagePath, "cn.etetet.*"))
+                PackageGit packageGit = PackageGitHelper.Load(Path.Combine(directory, "packagegit.json"));
+                if (packageGit.ScriptsReferences == null)
                 {
-                    foreach (string assName in AssNames)
+                    continue;
+                }
+                foreach ((string assName, string[] references) in packageGit.ScriptsReferences)
+                {
+                    foreach (string s in references)
                     {
-                        string p = Path.Combine(directory, "Scripts/" + assName + "/asmdef.txt");
-                        if (!File.Exists(p))
-                        {
-                            continue;
-                        }
-
-                        string json = File.ReadAllText(p);
-                        try
-                        {
-                            AssemblyDefinitionAsset assemblyDefinitionAsset = JsonUtility.FromJson<AssemblyDefinitionAsset>(json);
-                            foreach (string reference in assemblyDefinitionAsset.references)
-                            {
-                                allRefInfo.References[assName].Add(reference);
-                            }
-                        }
-                        catch (Exception e)
-                        {
-                            throw new Exception($"parse json error: {p} {json}", e);
-                        }
+                        refs[assName].Add(s);
                     }
                 }
             }
 
             List<string> findRet = new List<string>();
-            foreach (string assName in AssNames)
+            foreach ((string assName, HashSet<string> refAss) in refs)
             {
                 findRet.Clear();
                 FileHelper.GetAllFiles(findRet, "./Packages", $"ET.{assName}.asmdef");
@@ -92,7 +72,7 @@ namespace ET
                 string json = File.ReadAllText(p);
                 AssemblyDefinitionAsset assemblyDefinitionAsset = JsonUtility.FromJson<AssemblyDefinitionAsset>(json);
 
-                assemblyDefinitionAsset.references = allRefInfo.References[assName].ToArray();
+                assemblyDefinitionAsset.references = refAss.ToArray();
 
                 File.WriteAllText(p, JsonUtility.ToJson(assemblyDefinitionAsset, true));
             }

+ 0 - 0
Packages/com.etetet.init/Editor/PackagesEditor/AsmdefEditor.cs.meta → Packages/com.etetet.init/Editor/PackagesEditor/ScriptsReferencesHelper.cs.meta


+ 0 - 0
Packages/com.etetet.init/Editor/GitDependencyResolver/ProcessHelper.cs → Packages/com.etetet.init/Editor/ProcessHelper.cs


+ 0 - 0
Packages/com.etetet.init/Editor/GitDependencyResolver/ProcessHelper.cs.meta → Packages/com.etetet.init/Editor/ProcessHelper.cs.meta


+ 3 - 1
Packages/manifest.json

@@ -1,5 +1,7 @@
 {
   "dependencies": {
+    "com.code-philosophy.hybridclr": "https://gitee.com/focus-creative-games/hybridclr_unity.git",
+    "com.cysharp.memorypack": "https://github.com/Cysharp/MemoryPack.git?path=src/MemoryPack.Unity/Assets/Plugins/MemoryPack#1.10.0",
     "com.unity.ai.navigation": "1.1.5",
     "com.unity.ide.rider": "3.0.28",
     "com.unity.ide.visualstudio": "2.0.22",
@@ -53,4 +55,4 @@
       ]
     }
   ]
-}
+}

+ 202 - 0
Packages/packages-lock.json

@@ -1,5 +1,188 @@
 {
   "dependencies": {
+    "cn.etetet.actorlocation": {
+      "version": "file:cn.etetet.actorlocation",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.console": {
+      "version": "file:cn.etetet.console",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.core": {
+      "version": "file:cn.etetet.core",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.excel": "0.0.3",
+        "cn.etetet.proto": "0.0.3",
+        "cn.etetet.sourcegenerator": "0.0.4"
+      }
+    },
+    "cn.etetet.db": {
+      "version": "file:cn.etetet.db",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.demores": {
+      "version": "file:cn.etetet.demores",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {}
+    },
+    "cn.etetet.excel": {
+      "version": "file:cn.etetet.excel",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {}
+    },
+    "cn.etetet.http": {
+      "version": "file:cn.etetet.http",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.loader": {
+      "version": "file:cn.etetet.loader",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.8",
+        "cn.etetet.yooassets": "0.0.1"
+      }
+    },
+    "cn.etetet.lockstep": {
+      "version": "file:cn.etetet.lockstep",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.actorlocation": "0.0.2",
+        "cn.etetet.core": "0.0.8",
+        "cn.etetet.yooassets": "0.0.2",
+        "cn.etetet.loader": "0.0.4",
+        "cn.etetet.demores": "0.0.1",
+        "cn.etetet.router": "0.0.1",
+        "cn.etetet.console": "0.0.1",
+        "cn.etetet.http": "0.0.1",
+        "cn.etetet.watcher": "0.0.1",
+        "cn.etetet.db": "0.0.1",
+        "cn.etetet.ui": "0.0.2",
+        "cn.etetet.referencecollector": "0.0.1",
+        "cn.etetet.truesync": "0.0.1",
+        "cn.etetet.lsentity": "0.0.2",
+        "cn.etetet.login": "0.0.1"
+      }
+    },
+    "cn.etetet.login": {
+      "version": "file:cn.etetet.login",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.router": "0.0.1"
+      }
+    },
+    "cn.etetet.lsentity": {
+      "version": "file:cn.etetet.lsentity",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.7",
+        "cn.etetet.truesync": "0.0.1"
+      }
+    },
+    "cn.etetet.proto": {
+      "version": "file:cn.etetet.proto",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {}
+    },
+    "cn.etetet.referencecollector": {
+      "version": "file:cn.etetet.referencecollector",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.robotcase": {
+      "version": "file:cn.etetet.robotcase",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.router": {
+      "version": "file:cn.etetet.router",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.http": "0.0.1"
+      }
+    },
+    "cn.etetet.sourcegenerator": {
+      "version": "file:cn.etetet.sourcegenerator",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {}
+    },
+    "cn.etetet.truesync": {
+      "version": "file:cn.etetet.truesync",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {}
+    },
+    "cn.etetet.ui": {
+      "version": "file:cn.etetet.ui",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.watcher": {
+      "version": "file:cn.etetet.watcher",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "cn.etetet.yooassets": {
+      "version": "file:cn.etetet.yooassets",
+      "depth": 0,
+      "source": "embedded",
+      "dependencies": {
+        "com.tuyoogame.yooasset": "2.1.1",
+        "cn.etetet.core": "0.0.1"
+      }
+    },
+    "com.code-philosophy.hybridclr": {
+      "version": "https://gitee.com/focus-creative-games/hybridclr_unity.git",
+      "depth": 0,
+      "source": "git",
+      "dependencies": {},
+      "hash": "909e96ca7c808cf9be733b881382fabb49523d0b"
+    },
+    "com.cysharp.memorypack": {
+      "version": "https://github.com/Cysharp/MemoryPack.git?path=src/MemoryPack.Unity/Assets/Plugins/MemoryPack#1.10.0",
+      "depth": 0,
+      "source": "git",
+      "dependencies": {},
+      "hash": "2554e81f0315ddf835026940ccc4ba8175edfda3"
+    },
     "com.etetet.init": {
       "version": "file:com.etetet.init",
       "depth": 0,
@@ -15,6 +198,18 @@
         "com.unity.sharp-zip-lib": "1.3.4-preview"
       }
     },
+    "com.tuyoogame.yooasset": {
+      "version": "2.1.1",
+      "depth": 1,
+      "source": "registry",
+      "dependencies": {
+        "com.unity.scriptablebuildpipeline": "1.21.21",
+        "com.unity.modules.assetbundle": "1.0.0",
+        "com.unity.modules.unitywebrequest": "1.0.0",
+        "com.unity.modules.unitywebrequestassetbundle": "1.0.0"
+      },
+      "url": "https://package.openupm.com"
+    },
     "com.unity.ai.navigation": {
       "version": "1.1.5",
       "depth": 0,
@@ -109,6 +304,13 @@
         "com.unity.render-pipelines.core": "14.0.9"
       }
     },
+    "com.unity.scriptablebuildpipeline": {
+      "version": "1.21.21",
+      "depth": 2,
+      "source": "registry",
+      "dependencies": {},
+      "url": "https://packages.unity.com"
+    },
     "com.unity.searcher": {
       "version": "4.9.2",
       "depth": 2,