internal abstract void Execute(ExportSettings settings, ExportData data);
internal override void Execute(ExportSettings settings, ExportData data) { CheckSerializationMode(); VerifyProject(); VerifySettings(settings); }
internal override void Execute(ExportSettings settings, ExportData data) { if ((data.content & ModContent.Code) != ModContent.Code) { return; } foreach (Asset script in data.scripts) { script.Delete(); } string prefix = data.prefix.Replace(" ", ""); if (!string.IsNullOrEmpty(settings.version)) { prefix += settings.version.Replace(" ", "") + "-"; } List <string> searchDirectories = GetSearchDirectories(); foreach (string scriptAssembly in scriptAssemblies) { string scriptAssemblyPath = Path.Combine(tempAssemblyDirectory, scriptAssembly); if (!File.Exists(scriptAssemblyPath)) { continue; } AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly(scriptAssemblyPath); AssemblyNameDefinition assemblyName = assembly.Name; DefaultAssemblyResolver resolver = (DefaultAssemblyResolver)assembly.MainModule.AssemblyResolver; foreach (string searchDirectory in searchDirectories) { resolver.AddSearchDirectory(searchDirectory); } assemblyName.Name = prefix + assemblyName.Name; foreach (var reference in assembly.MainModule.AssemblyReferences) { if (reference.Name.Contains("firstpass")) { reference.Name = prefix + reference.Name; } } scriptAssemblyPath = Path.Combine(modToolDirectory, assemblyName.Name + ".dll"); assembly.Write(scriptAssemblyPath); data.scriptAssemblies.Add(new Asset(scriptAssemblyPath)); } if (data.scriptAssemblies.Count > 0) { AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate | ImportAssetOptions.DontDownloadFromCacheServer); ForceAssemblyReload(); } }