private Block GetEntry(string name)
{
Block block;
if (blocks.TryGetValue(name, out block))
return block;
var entry = zip.GetEntry(name);
if (entry == null)
return null;
using (var blockStream = entry.Open())
using (var blockReader = new BinaryReader(blockStream))
{
block = DataDecoder.DecodeBlock(blockReader);
}
blocks[name] = block;
return block;
}
}