Mercurial > fife-parpg
diff engine/extensions/loaders.py @ 0:4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
author | mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sun, 29 Jun 2008 18:44:17 +0000 |
parents | |
children | ab09325f901e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/engine/extensions/loaders.py Sun Jun 29 18:44:17 2008 +0000 @@ -0,0 +1,37 @@ +# coding: utf-8 +# Loader interface for FIFE's native xml format. + +import fife + +from serializers.xmlmap import XMLMapLoader +from serializers import WrongFileType, NameClash + +fileExtensions = ('xml',) + +def loadMapFile(path, engine, content = ''): + map_loader = XMLMapLoader(engine) + return map_loader.loadResource(fife.ResourceLocation(path)) + +from serializers.xmlobject import XMLObjectLoader + +def loadImportFile(path, engine): + object_loader = XMLObjectLoader(engine.getImagePool(), engine.getAnimationPool(), engine.getModel(), engine.getVFS()) + res = None + try: + res = object_loader.loadResource(fife.ResourceLocation(path)) + print 'imported object file ' + path + except WrongFileType: + print 'ignored non-object file ' + path + except NameClash: + print 'ignored already loaded file ' + path + return res + +def loadImportDir(path, engine): + for file in filter(lambda f: f.split('.')[-1] == 'xml', engine.getVFS().listFiles(path)): + loadImportFile('/'.join([path, file]), engine) + +def loadImportDirRec(path, engine): + loadImportDir(path, engine) + + for dir in filter(lambda d: not d.startswith('.'), engine.getVFS().listDirectories(path)): + loadImportDirRec('/'.join([path, dir]), engine)