Source code for scfile.formats.texarr.decoder
from scfile.core import FileDecoder, TextureArrayContent
from scfile.enums import ByteOrder, F, FileFormat
from scfile.formats.zip.encoder import TextureArrayEncoder
DELIMITER = ":"
FORMAT = FileFormat.DDS.suffix
[docs]
class TextureArrayDecoder(FileDecoder[TextureArrayContent]):
format = FileFormat.TEXARR
order = ByteOrder.BIG
_content = TextureArrayContent
[docs]
def to_zip(self):
return self.convert_to(TextureArrayEncoder)
[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))