コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: XmlFileWriter.cs プロジェクト: peyton2465/rbx-merge
        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);
        }