RocksConfiguration.py 1.2KB

123456789101112131415161718192021222324252627282930313233
  1. from synergine.synergy.collection.Configuration import Configuration
  2. from intelligine.synergy.object.Rock import Rock
  3. import pytmx
  4. from os import getcwd
  5. class RocksConfiguration(Configuration):
  6. def get_start_objects(self, collection, context):
  7. rocks = []
  8. # TODO: Experimental: Crer un loader de TMX (qui gere aussi les visualisation ?)
  9. tmxdata = pytmx.TiledMap(getcwd()+"/intelligine/sandbox/exploration/map2.tmx")
  10. objects = {}
  11. for tileset in tmxdata.tilesets:
  12. obj_id = tileset.firstgid
  13. file = tmxdata.tile_properties[obj_id]['file']
  14. classname = tmxdata.tile_properties[obj_id]['classname']
  15. mod = __import__(file,
  16. fromlist=[classname])
  17. objects[obj_id] = {
  18. 'class': getattr(mod, classname)
  19. }
  20. for layer in [vl for vl in tmxdata.visible_layers]:
  21. for xi, x in enumerate(layer.data):
  22. for yi, y in enumerate(x):
  23. if y in objects:
  24. rock = objects[y]['class'](collection, context)
  25. rock.set_position((0, xi, yi))
  26. rocks.append(rock)
  27. return rocks