| 
				
			 | 
			
			
				@@ -1,3 +1,4 @@ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1
			 | 
			
			
				+from synergine.synergy.event.exception.ActionAborted import ActionAborted 
			 | 
		
	
		
			
			| 
				1
			 | 
			
				2
			 | 
			
			
				 from intelligine.synergy.event.move.MoveAction import MoveAction 
			 | 
		
	
		
			
			| 
				2
			 | 
			
				3
			 | 
			
			
				 from intelligine.synergy.object.Food import Food 
			 | 
		
	
		
			
			| 
				3
			 | 
			
				4
			 | 
			
			
				 from synergine.synergy.event.Action import Action 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -14,20 +15,25 @@ class PutableAction(Action): 
			 | 
		
	
		
			
			| 
				14
			 | 
			
				15
			 | 
			
			
				         super().__init__(object_id, parameters) 
			 | 
		
	
		
			
			| 
				15
			 | 
			
				16
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				16
			 | 
			
				17
			 | 
			
			
				     def run(self, obj, context, synergy_manager): 
			 | 
		
	
		
			
			| 
				17
			 | 
			
				
			 | 
			
			
				-        position_to_put = self._parameters[PutableEvent.PARAM_PUT_TO] 
			 | 
		
	
		
			
			| 
				18
			 | 
			
				18
			 | 
			
			
				         obj_transported = obj.get_carried() 
			 | 
		
	
		
			
			| 
				19
			 | 
			
				19
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				20
			 | 
			
				
			 | 
			
			
				-        obj_transported.set_carried_by(None) 
			 | 
		
	
		
			
			| 
				21
			 | 
			
				
			 | 
			
			
				-        #  TODO: re controle de si posable ? La position a été calculé 
			 | 
		
	
		
			
			| 
				22
			 | 
			
				
			 | 
			
			
				-        #  dans le process. Ce qui fait que la situation peut avoir changer. 
			 | 
		
	
		
			
			| 
				23
			 | 
			
				
			 | 
			
			
				-        # Soit: Recalculer d'office BrainPut.cant_put_at.. Soit le recalculer que si le hash 
			 | 
		
	
		
			
			| 
				24
			 | 
			
				
			 | 
			
			
				-        # de ce qu'il y a la a changer ? 
			 | 
		
	
		
			
			| 
				25
			 | 
			
				
			 | 
			
			
				-        obj.put_carry(obj_transported, position_to_put) 
			 | 
		
	
		
			
			| 
				26
			 | 
			
				
			 | 
			
			
				-        context.metas.value.set(CANT_CARRY_STILL, obj.get_id(), 5) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				20
			 | 
			
			
				+        if not self._parameters[PutableEvent.PARAM_PUT_TO]: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				21
			 | 
			
			
				+            raise ActionAborted() 
			 | 
		
	
		
			
			| 
				27
			 | 
			
				22
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				28
			 | 
			
				
			 | 
			
			
				-        obj.get_brain().get_part(BRAIN_PART_PUT).done(obj_transported) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				23
			 | 
			
			
				+        for position_to_put in self._parameters[PutableEvent.PARAM_PUT_TO]: 
			 | 
		
	
		
			
			| 
				29
			 | 
			
				24
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				30
			 | 
			
				
			 | 
			
			
				-        # TODO: DEBUG 
			 | 
		
	
		
			
			| 
				31
			 | 
			
				
			 | 
			
			
				-        if isinstance(obj_transported, Food): 
			 | 
		
	
		
			
			| 
				32
			 | 
			
				
			 | 
			
			
				-            #obj_transported.set_position((-1, 0, 0)) 
			 | 
		
	
		
			
			| 
				33
			 | 
			
				
			 | 
			
			
				-            obj_transported.transform_to_stocked() 
			 | 
		
	
		
			
			| 
				
			 | 
			
				25
			 | 
			
			
				+            #  TODO: re controle de si posable ? La position a été calculé 
			 | 
		
	
		
			
			| 
				
			 | 
			
				26
			 | 
			
			
				+            #  dans le process. Ce qui fait que la situation peut avoir changer. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				27
			 | 
			
			
				+            # Soit: Recalculer d'office BrainPut.cant_put_at.. Soit le recalculer que si le hash 
			 | 
		
	
		
			
			| 
				
			 | 
			
				28
			 | 
			
			
				+            # de ce qu'il y a la a changer ? 
			 | 
		
	
		
			
			| 
				
			 | 
			
				29
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				30
			 | 
			
			
				+            obj_transported.set_carried_by(None) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				31
			 | 
			
			
				+            obj.put_carry(obj_transported, position_to_put) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				32
			 | 
			
			
				+            context.metas.value.set(CANT_CARRY_STILL, obj.get_id(), 5) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				33
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				34
			 | 
			
			
				+            obj.get_brain().get_part(BRAIN_PART_PUT).done(obj_transported) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				35
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				36
			 | 
			
			
				+            # TODO: DEV 
			 | 
		
	
		
			
			| 
				
			 | 
			
				37
			 | 
			
			
				+            if isinstance(obj_transported, Food): 
			 | 
		
	
		
			
			| 
				
			 | 
			
				38
			 | 
			
			
				+                #obj_transported.set_position((-1, 0, 0)) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				39
			 | 
			
			
				+                obj_transported.transform_to_stocked() 
			 |