Example #1
0
        private void FromFile_Nodes(Kn5Reader reader, bool readAsBytes)
        {
            if (readAsBytes)
            {
                var nodesStart  = reader.BaseStream.Position;
                var nodesLength = reader.BaseStream.Length - nodesStart;
                NodesBytes = reader.ReadBytes((int)nodesLength);
                reader.BaseStream.Seek(nodesStart, SeekOrigin.Begin);
            }

            try {
                RootNode = FromFile_Node(reader);
            } catch (NotImplementedException) {
                RootNode = null;
            }
        }
Example #2
0
        private void FromFile_Textures(Kn5Reader reader) {
            try {
                var count = reader.ReadInt32();

                Textures = new Dictionary<string, Kn5Texture>(count);
                TexturesData = new Dictionary<string, byte[]>(count);

                for (var i = 0; i < count; i++) {
                    var texture = reader.ReadTexture();
                    if (!Textures.ContainsKey(texture.Name)) {
                        Textures[texture.Name] = texture;
                        TexturesData[texture.Name] = reader.ReadBytes(texture.Length);
                    } else {
                        reader.BaseStream.Seek(texture.Length, SeekOrigin.Current);
                    }
                }
            } catch (NotImplementedException) {
                Textures = null;
                TexturesData = null;
            }
        }
Example #3
0
        private void FromFile_Nodes(Kn5Reader reader) {
            var nodesStart = reader.BaseStream.Position;
            var nodesLength = reader.BaseStream.Length - nodesStart;
            NodesBytes = reader.ReadBytes((int)nodesLength);
            reader.BaseStream.Seek(nodesStart, SeekOrigin.Begin);

            try {
                RootNode = FromFile_Node(reader);
            } catch (NotImplementedException) {
                RootNode = null;
            }
        }