1
0
mirror of https://github.com/Siccity/xNode.git synced 2025-12-20 17:26:02 +08:00

Merge pull request #44 from Orcolom/fix/plugins

Fix for plugins bug #38
This commit is contained in:
Thor Brigsted 2018-06-18 22:32:24 +02:00 committed by GitHub
commit 51bb98b4d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -49,12 +49,16 @@ namespace XNode {
List<System.Type> nodeTypes = new List<System.Type>(); List<System.Type> nodeTypes = new List<System.Type>();
System.Reflection.Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies(); System.Reflection.Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies();
Assembly selfAssembly = Assembly.GetAssembly(baseType); Assembly selfAssembly = Assembly.GetAssembly(baseType);
if (selfAssembly.FullName.StartsWith("Assembly-CSharp")) { if (selfAssembly.FullName.StartsWith("Assembly-CSharp") && !selfAssembly.FullName.Contains("-firstpass")) {
// If xNode is not used as a DLL, check only CSharp (fast) // If xNode is not used as a DLL, check only CSharp (fast)
nodeTypes.AddRange(selfAssembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t))); nodeTypes.AddRange(selfAssembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)));
} else { } else {
// Else, check all DDLs (slow) // Else, check all relevant DDLs (slower)
// ignore all unity related assemblies
foreach (Assembly assembly in assemblies) { foreach (Assembly assembly in assemblies) {
if (assembly.FullName.StartsWith("Unity")) continue;
// unity created assemblies always have version 0.0.0
if (!assembly.FullName.Contains("Version=0.0.0")) continue;
nodeTypes.AddRange(assembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)).ToArray()); nodeTypes.AddRange(assembly.GetTypes().Where(t => !t.IsAbstract && baseType.IsAssignableFrom(t)).ToArray());
} }
} }