SEToolbox.Interop.Asteroids.MyVoxelMap.LoadVoxelSize C# (CSharp) Method

LoadVoxelSize() public static method

Loads the header details only for voxel files, without having to decompress the entire file.
public static LoadVoxelSize ( string filename ) : Vector3I
filename string
return Vector3I
        public static Vector3I LoadVoxelSize(string filename)
        {
            var initialVersion = Path.GetExtension(filename).Equals(V2FileExtension, StringComparison.InvariantCultureIgnoreCase) ? 1 : 0;

            try
            {
                // only 29 bytes are required for the header, but I'll leave it for 32 for a bit of extra leeway.
                var buffer = initialVersion == 1 ? ZipTools.GZipUncompress(filename, 32) : Uncompress(filename, 32);

                using (var reader = new BinaryReader(new MemoryStream(buffer)))
                {
                    switch (initialVersion)
                    {
                        case 1:
                            // cell tag header
                            reader.ReadString();
                            reader.ReadByte();// fileVersion
                            break;
                        default:
                            reader.ReadInt32();// fileVersion
                            break;
                    }

                    var sizeX = reader.ReadInt32();
                    var sizeY = reader.ReadInt32();
                    var sizeZ = reader.ReadInt32();

                    return new Vector3I(sizeX, sizeY, sizeZ);
                }
            }
            catch
            {
                return Vector3I.Zero;
            }
        }