RocksConfiguration.py 1.5KB

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