public void Save(BinaryRobloxFileWriter writer) { writer.Write(FORMAT); writer.Write(Lookup.Count); foreach (var pair in Lookup) { string key = pair.Key; byte[] hash = Convert.FromBase64String(key); writer.Write(hash); SharedString value = Strings[pair.Value]; byte[] buffer = SharedString.Find(value.Key); writer.Write(buffer.Length); writer.Write(buffer); } }
public static XmlNode WriteSharedStrings(XmlDocument doc, XmlRobloxFile file) { XmlElement sharedStrings = doc.CreateElement("SharedStrings"); var binaryWriter = XmlPropertyTokens.GetHandler <BinaryStringToken>(); var binaryBuffer = new Property("SharedString", PropertyType.String); foreach (string key in file.SharedStrings) { XmlElement sharedString = doc.CreateElement("SharedString"); sharedString.SetAttribute("md5", key); binaryBuffer.RawBuffer = SharedString.Find(key); binaryWriter.WriteProperty(binaryBuffer, doc, sharedString); sharedStrings.AppendChild(sharedString); } return(sharedStrings); }