private static ExcludeModuleManagers ( HashSet |
||
nativeClasses | HashSet |
|
return | void |
private static void ExcludeModuleManagers(ref HashSet<string> nativeClasses)
{
string[] moduleNames = ModuleMetadata.GetModuleNames();
int derivedFromClassID = BaseObjectTools.StringToClassID("GlobalGameManager");
foreach (string str in moduleNames)
{
if (ModuleMetadata.GetModuleStrippable(str))
{
int[] moduleClasses = ModuleMetadata.GetModuleClasses(str);
HashSet<int> set = new HashSet<int>();
HashSet<string> other = new HashSet<string>();
foreach (int num3 in moduleClasses)
{
if (BaseObjectTools.IsDerivedFromClassID(num3, derivedFromClassID))
{
set.Add(num3);
}
else
{
other.Add(BaseObjectTools.ClassIDToString(num3));
}
}
if ((other.Count != 0) && !nativeClasses.Overlaps(other))
{
foreach (int num5 in set)
{
nativeClasses.Remove(BaseObjectTools.ClassIDToString(num5));
}
}
}
}
}
public static void GenerateDependencies(string strippedAssemblyDir, string icallsListFile, RuntimeClassRegistry rcr, out HashSet <string> nativeClasses, out HashSet <string> nativeModules) { string[] userAssemblies = CodeStrippingUtils.GetUserAssemblies(strippedAssemblyDir); nativeClasses = !PlayerSettings.stripEngineCode ? (HashSet <string>)null : CodeStrippingUtils.GenerateNativeClassList(rcr, strippedAssemblyDir, userAssemblies); if (nativeClasses != null) { CodeStrippingUtils.ExcludeModuleManagers(ref nativeClasses); } nativeModules = CodeStrippingUtils.GetNativeModulesToRegister(nativeClasses); if (nativeClasses != null && icallsListFile != null) { HashSet <string> modulesFromIcalls = CodeStrippingUtils.GetModulesFromICalls(icallsListFile); int classId = BaseObjectTools.StringToClassID("GlobalGameManager"); using (HashSet <string> .Enumerator enumerator = modulesFromIcalls.GetEnumerator()) { while (enumerator.MoveNext()) { foreach (int moduleClass in ModuleMetadata.GetModuleClasses(enumerator.Current)) { if (BaseObjectTools.IsDerivedFromClassID(moduleClass, classId)) { nativeClasses.Add(BaseObjectTools.ClassIDToString(moduleClass)); } } } } nativeModules.UnionWith((IEnumerable <string>)modulesFromIcalls); } new AssemblyReferenceChecker().CollectReferencesFromRoots(strippedAssemblyDir, (IEnumerable <string>)userAssemblies, true, 0.0f, true); }