AntTakeBrainPart.py 1.1KB

12345678910111213141516171819202122232425
  1. from intelligine.simulation.object.brain.part.transport.TakeBrainPart import TakeBrainPart
  2. from intelligine.synergy.object.ressource.Ressource import Resource
  3. from intelligine.cst import MOVE_MODE_EXPLO, TYPE_RESOURCE_EXPLOITABLE, \
  4. MOVE_MODE_GOHOME, MOVE_MODE_NURSE, TYPE_NURSERY
  5. class AntTakeBrainPart(TakeBrainPart):
  6. # TODO: methode __init_ pour la classe ? Pour surcharger ici.
  7. _mode_matches = {
  8. MOVE_MODE_EXPLO: [TYPE_RESOURCE_EXPLOITABLE],
  9. MOVE_MODE_NURSE: [TYPE_NURSERY],
  10. MOVE_MODE_GOHOME: []
  11. }
  12. @classmethod
  13. def can_take(cls, context, object_id, object_to_take_id):
  14. # Pour le moment si le type de l'objet fait partie des types admis pour le mode courant du porteur, c'est bon.
  15. return cls._match_with_mode(context, object_id, object_to_take_id)
  16. def done(self, obj, take_object, context):
  17. # TODO: Ranger ca ? Truc plus dynamique/configurable ?
  18. if isinstance(take_object, Resource):
  19. obj.get_brain().switch_to_mode(MOVE_MODE_GOHOME)
  20. obj.get_movement_molecule_gland().appose()