protected override void _Read(BinaryReader reader) { Buffer = reader.ReadBytes((int)reader.BaseStream.Length); reader.BaseStream.Seek(0, SeekOrigin.Begin); Identifier = reader.ReadUInt32(); if (!IsValid(Identifier)) { return; } TextureOffset = reader.ReadUInt32(); FirstNodeOffset = reader.ReadUInt32(); if (TextureOffset != 0) { reader.BaseStream.Seek(TextureOffset, SeekOrigin.Begin); TEXD textureDatabase = new TEXD(reader); //Populate base class textures foreach (Texture tex in textureDatabase.Textures) { Textures.Add(tex); } } reader.BaseStream.Seek(FirstNodeOffset, SeekOrigin.Begin); RootNode = new MT5Node(reader, null, this); //Resolve the textures in the faces RootNode.ResolveFaceTextures(Textures); }
/// <summary> /// Creates a new MT5 instance from the given model. /// </summary> public MT5(BaseModel model) { Textures = model.Textures; RootNode = new MT5Node(model.RootNode); RootNode.ResolveFaceTextures(Textures); }