private static void LoadTextures(FileTableContainer tableContainer, CFStorage storage) { for (var i = 0; i < tableContainer.NumTextures; i++) { var textureName = $"Image{i}"; storage.TryGetStream(textureName, out var textureStream); if (textureStream == null) { Logger.Warn("Could not find stream {0}, skipping.", textureName); continue; } var textureData = textureStream.GetData(); if (textureData.Length < 4) { Logger.Warn("Skipping {itemName} because it has size of {itemDataLength}.", textureName, textureData.Length); continue; } using (var stream = new MemoryStream(textureData)) using (var reader = new BinaryReader(stream)) { var texture = new Texture(reader, textureName); tableContainer.AddTexture(texture); } } }
public TableBuilder AddTexture(string name) { _tableContainer.Table.Data.NumTextures = _tableContainer.AddTexture(new Texture(name)); return(this); }