PutableAction.py 1.2KB

123456789101112131415161718192021222324252627282930
  1. from synergine.synergy.event.Action import Action
  2. from intelligine.synergy.event.transport.PutableEvent import PutableEvent
  3. from intelligine.cst import CANT_CARRY_STILL
  4. class PutableAction(Action):
  5. _listen = PutableEvent
  6. def __init__(self, object_id, parameters):
  7. super().__init__(object_id, parameters)
  8. def prepare(self, context):
  9. pass
  10. def run(self, obj, collection, context, synergy_manager):
  11. # TODO: TEST
  12. # TODO: Enlever le state de transportable a ce qui est transporte
  13. # ?! Comment gerer lorsque deux obj vont vouloir transporter le meme objet ? process !
  14. obj_id_transportable = self._parameters['objects_ids_transportable'][0]
  15. obj_transportable = synergy_manager.get_map().get_object(obj_id_transportable)
  16. # TODO: Doit etre du meme type que ce qui est transporte !
  17. obj_transported = obj.get_carried()
  18. obj_transported.set_carried_by(None)
  19. obj.put_carry(obj_transported)
  20. context.metas.value.set(CANT_CARRY_STILL, obj.get_id(), 5)
  21. # TODO: Il faut interdire cette action pendant un temps pour eviter que le fourmis deplace
  22. # les memes objets direct apres
  23. # Utiliser les metas pour ca ?