LSLib.LS.LSBWriter.Write C# (CSharp) Méthode

Write() public méthode

public Write ( Resource rsrc ) : void
rsrc Resource
Résultat void
        public void Write(Resource rsrc)
        {
            using (this.writer = new BinaryWriter(stream))
            {
                writer.Write(LSBHeader.Signature);
                var sizeOffset = stream.Position;
                writer.Write((UInt32)0); // Total size of file, will be updater after we finished serializing
                writer.Write((UInt32)0); // Little-endian format
                writer.Write((UInt32)0); // Unknown
                writer.Write(rsrc.Metadata.timestamp);
                writer.Write(rsrc.Metadata.majorVersion);
                writer.Write(rsrc.Metadata.minorVersion);
                writer.Write(rsrc.Metadata.revision);
                writer.Write(rsrc.Metadata.buildNumber);

                CollectStaticStrings(rsrc);
                WriteStaticStrings();

                WriteRegions(rsrc);

                UInt32 fileSize = (UInt32)stream.Position;
                stream.Seek(sizeOffset, SeekOrigin.Begin);
                writer.Write(fileSize);
            }
        }

Usage Example

Exemple #1
0
        public static void SaveResource(Resource resource, string outputPath, ResourceFormat format, int version = -1)
        {
            var file = new FileStream(outputPath, FileMode.Create, FileAccess.Write);

            switch (format)
            {
            case ResourceFormat.LSX:
            {
                using (var writer = new LSXWriter(file))
                {
                    writer.PrettyPrint = true;
                    writer.Write(resource);
                }
                break;
            }

            case ResourceFormat.LSB:
            {
                using (var writer = new LSBWriter(file))
                {
                    writer.Write(resource);
                }
                break;
            }

            case ResourceFormat.LSF:
            {
                uint lsfVersion;
                if (version == -1)
                {
                    // Write in V2 format for D:OS EE compatibility
                    lsfVersion = FileVersion.VerChunkedCompress;
                }
                else
                {
                    lsfVersion = (uint)version;
                }

                using (var writer = new LSFWriter(file, lsfVersion))
                {
                    writer.Write(resource);
                }
                break;
            }

            default:
                throw new ArgumentException("Invalid resource format");
            }
        }
All Usage Examples Of LSLib.LS.LSBWriter::Write