fix reader.py reading all the tiles (#357)

* fix reader.py reading all the tiles

* add unit test

---------

Co-authored-by: Gabor Simko <gsimko3@gmail.com>
This commit is contained in:
Gabor Simko
2024-02-09 20:40:06 -07:00
committed by GitHub
parent 5b8627b0d8
commit ea1657d8fe
2 changed files with 27 additions and 4 deletions

View File

@@ -63,9 +63,10 @@ def traverse(get_bytes, header, dir_offset, dir_length):
entries = deserialize_directory(get_bytes(dir_offset, dir_length))
for entry in entries:
if entry.run_length > 0:
yield tileid_to_zxy(entry.tile_id), get_bytes(
header["tile_data_offset"] + entry.offset, entry.length
)
for i in range(entry.run_length):
yield tileid_to_zxy(entry.tile_id + i), get_bytes(
header["tile_data_offset"] + entry.offset, entry.length
)
else:
for t in traverse(
get_bytes,