PutableAction.py 910B

12345678910111213141516171819202122232425
  1. from intelligine.synergy.event.move.MoveAction import MoveAction
  2. from synergine.synergy.event.Action import Action
  3. from intelligine.synergy.event.transport.PutableEvent import PutableEvent
  4. from intelligine.cst import CANT_CARRY_STILL, BRAIN_PART_PUT
  5. class PutableAction(Action):
  6. _listen = PutableEvent
  7. _depend = [MoveAction]
  8. def __init__(self, object_id, parameters):
  9. super().__init__(object_id, parameters)
  10. def run(self, obj, context, synergy_manager):
  11. position_to_put = self._parameters[PutableEvent.PARAM_PUT_TO]
  12. obj_transported = obj.get_carried()
  13. obj_transported.set_carried_by(None)
  14. #  TODO: re controle de si posable ? (5 max etc)
  15. obj.put_carry(obj_transported, position_to_put)
  16. context.metas.value.set(CANT_CARRY_STILL, obj.get_id(), 5)
  17. obj.get_brain().get_part(BRAIN_PART_PUT).done(obj, obj_transported, context)