Source code for scfile.formats.texarr.decoder
from scfile import formats
from scfile.core import FileDecoder, TexarrContent
from scfile.enums import ByteOrder, F, FileFormat
DELIMITER = ":"
FORMAT = FileFormat.DDS.suffix
[docs]
class TexarrDecoder(FileDecoder[TexarrContent]):
format = FileFormat.TEXARR
order = ByteOrder.BIG
_content = TexarrContent
[docs]
def as_zip(self):
return self.convert_to(formats.zip.TexarrEncoder)
[docs]
def parse(self):
self.data.count = self._readb(F.U32)
for _ in range(self.data.count):
self._parse_texture()
def _parse_texture(self):
path = self._readutf8().replace(DELIMITER, "/") + FORMAT
size = self._readb(F.U32)
texture = self.read(size)
self.data.textures.append((path, texture))