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

LoadUncompressed() public method

public LoadUncompressed ( int initialVersion, Vector3D position, BinaryReader reader, string defaultMaterial, bool loadMaterial ) : void
initialVersion int
position Vector3D
reader System.IO.BinaryReader
defaultMaterial string
loadMaterial bool
return void
        public void LoadUncompressed(int initialVersion, Vector3D position, BinaryReader reader, string defaultMaterial, bool loadMaterial)
        {
            string voxelType = "Cell";
            int materialBaseCount = 0;
            switch (initialVersion)
            {
                case 1:
                    // cell tag header
                    voxelType = reader.ReadString();
                    FileVersion = reader.Read7BitEncodedInt();
                    break;
                default:
                    FileVersion = reader.ReadInt32();
                    break;
            }

            if (voxelType == "Cell")
            {
                var sizeX = reader.ReadInt32();
                var sizeY = reader.ReadInt32();
                var sizeZ = reader.ReadInt32();

                var cellSizeX = reader.ReadInt32();
                var cellSizeY = reader.ReadInt32();
                var cellSizeZ = reader.ReadInt32();

                _cellSize = new Vector3I(cellSizeX, cellSizeY, cellSizeZ);

                InitVoxelMap(position, new Vector3I(sizeX, sizeY, sizeZ), defaultMaterial, true);
                if (FileVersion == 2)
                    materialBaseCount = reader.ReadByte();
            }
            else
            {
                //voxelType == "Octree"
                // Don't know how to read this format.
                var a1 = reader.ReadByte(); // no idea 
                var a2 = reader.ReadByte();
                var a3 = reader.ReadByte();
                var a4 = reader.ReadByte();
                var a5 = reader.ReadByte();
                var a6 = reader.ReadByte();
                var a7 = reader.ReadByte();

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

                var c1 = reader.ReadByte(); // no idea 
                var c2 = reader.ReadByte();
                var c3 = reader.ReadByte();
                var c4 = reader.ReadByte();
                var c5 = reader.ReadByte();
                
                _cellSize = new Vector3I(8, 8, 8);

                InitVoxelMap(position, new Vector3I(sizeX, sizeY, sizeZ), defaultMaterial, false);
                materialBaseCount = reader.ReadInt32();

                //FileVersion = 2;
                IsValid = false;
                return;
            }

            switch (FileVersion)
            {
                case 0:
                case 1: LoadUncompressedV1(reader, loadMaterial); break;
                case 2: LoadUncompressedV2(reader, loadMaterial, materialBaseCount); break;
                default: throw new Exception("Voxel format not implmented");
            }
        }