// Save text to file private void ExportText(Unity_Studio.AssetPreloadData asset) { Unity_Studio.TextAsset m_TextAsset = new Unity_Studio.TextAsset(asset, false); Directory.CreateDirectory(contentPath); Directory.CreateDirectory(contentPath + gameType); Directory.CreateDirectory(contentPath + gameType + "/ffg"); Directory.CreateDirectory(contentPath + gameType + "/ffg/text"); string fileCandidate = contentPath + gameType + "/ffg/text/" + asset.Text; string fileName = fileCandidate + asset.extension; m_TextAsset = new Unity_Studio.TextAsset(asset, true); // This should apend a postfix to the name to avoid collisions, but as we import multiple times // This is broken while (File.Exists(fileName)) { return;// Fixme; } // Write to disk using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create))) { // Pass the Deobfuscate key to decrypt writer.Write(m_TextAsset.Deobfuscate(finder.ObfuscateKey())); writer.Close(); } // Run monster data extration tool if in dev if (importData.editor && asset.Text.Equals("Localization")) { if (finder is MoMFinder) { ExtractDataTool.MoM(m_TextAsset.Deobfuscate(finder.ObfuscateKey()), contentPath); } } }
// Save text to file private void ExportText(Unity_Studio.AssetPreloadData asset) { Unity_Studio.TextAsset m_TextAsset = new Unity_Studio.TextAsset(asset, false); Directory.CreateDirectory(contentPath); Directory.CreateDirectory(contentPath + "/text"); string fileCandidate = contentPath + "/text/" + asset.Text; string fileName = fileCandidate + asset.extension; m_TextAsset = new Unity_Studio.TextAsset(asset, true); // This should apend a postfix to the name to avoid collisions, but as we import multiple times // This is broken while (File.Exists(fileName)) { return;// Fixme; } // Write to disk using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create))) { // Pass the Deobfuscate key to decrypt writer.Write(m_TextAsset.Deobfuscate(finder.ObfuscateKey())); writer.Close(); } // Need to trim new lines from old D2E format if (asset.Text.Equals("Localization")) { string[] locFix = File.ReadAllLines(fileName); List <string> locOut = new List <string>(); string currentLine = ""; for (int i = 0; i < locFix.Length; i++) { if (locFix[i].Split('\"').Length % 2 == 0) { if (currentLine.Length == 0) { currentLine = locFix[i]; } else { locOut.Add(currentLine + "\\n" + locFix[i]); currentLine = ""; } } else { if (currentLine.Length == 0) { locOut.Add(locFix[i]); } else { currentLine += "\\n" + locFix[i]; } } } File.WriteAllLines(fileName, locOut.ToArray()); } }
// Save text to file private void ExportText(Unity_Studio.AssetPreloadData asset) { if (asset == null) { throw new ArgumentNullException("asset"); } var textAsset = new Unity_Studio.TextAsset(asset, false); string textPath = Path.Combine(contentPath, "text"); Directory.CreateDirectory(textPath); string fileCandidate = Path.Combine(textPath, asset.Text); textAsset = new Unity_Studio.TextAsset(asset, true); // This should apends a postfix to the name to avoid collisions string fileName = GetAvailableFileName(fileCandidate, asset.extension); // Write to disk, pass the Deobfuscate key to decrypt File.WriteAllBytes(fileName, textAsset.Deobfuscate(finder.ObfuscateKey())); // Need to trim new lines from old D2E format if (asset.Text.Equals("Localization")) { string[] locFix = File.ReadAllLines(fileName); var locOut = new List <string>(); string currentLine = ""; for (int i = 0; i < locFix.Length; i++) { if (locFix[i].Split('\"').Length % 2 == 0) { if (currentLine.Length == 0) { currentLine = locFix[i]; } else { locOut.Add(currentLine + "\\n" + locFix[i]); currentLine = ""; } } else { if (currentLine.Length == 0) { locOut.Add(locFix[i]); } else { currentLine += "\\n" + locFix[i]; } } } File.WriteAllLines(fileName, locOut.ToArray()); } }