Package pyffi :: Package formats :: Package kfm
[hide private]
[frames] | no frames]

Package kfm

source code

Implementation

Regression tests

Read a KFM file

>>> # read kfm file
>>> stream = open('tests/kfm/test.kfm', 'rb')
>>> data = KfmFormat.Data()
>>> data.inspect(stream)
>>> print(data.nif_file_name.decode("ascii"))
Test.nif
>>> data.read(stream)
>>> stream.close()
>>> # get all animation file names
>>> for anim in data.animations:
...     print(anim.kf_file_name.decode("ascii"))
Test_MD_Idle.kf
Test_MD_Run.kf
Test_MD_Walk.kf
Test_MD_Die.kf

Parse all KFM files in a directory tree

>>> for stream, data in KfmFormat.walkData('tests/kfm'):
...     print(stream.name)
tests/kfm/test.kfm

Create a KFM model from scratch and write to file

>>> data = KfmFormat.Data()
>>> data.nif_file_name = "Test.nif"
>>> data.num_animations = 4
>>> data.animations.update_size()
>>> data.animations[0].kf_file_name = "Test_MD_Idle.kf"
>>> data.animations[1].kf_file_name = "Test_MD_Run.kf"
>>> data.animations[2].kf_file_name = "Test_MD_Walk.kf"
>>> data.animations[3].kf_file_name = "Test_MD_Die.kf"
>>> from tempfile import TemporaryFile
>>> stream = TemporaryFile()
>>> data.write(stream)
>>> stream.close()

Get list of versions and games

>>> for vnum in sorted(KfmFormat.versions.values()):
...     print('0x%08X' % vnum)
0x01000000
0x01024B00
0x0200000B
0x0201000B
0x0202000B
>>> for game, versions in sorted(KfmFormat.games.items(),
...                              key=lambda x: x[0]):
...     print("%s " % game + " ".join('0x%08X' % vnum for vnum in versions))
Civilization IV 0x01000000 0x01024B00 0x0200000B
Emerge 0x0201000B 0x0202000B
Loki 0x01024B00
Megami Tensei: Imagine 0x0201000B
Oblivion 0x01024B00
Prison Tycoon 0x01024B00
Pro Cycling Manager 0x01024B00
Red Ocean 0x01024B00
Sid Meier's Railroads 0x0200000B
The Guild 2 0x01024B00
Classes [hide private]
  KfmFormat
This class implements the kfm file format.
Variables [hide private]
  __package__ = 'pyffi.formats.kfm'