1234567891011121314151617181920212223 |
- from intelligine.cst import COL_SMELL, CARRIED_BY
- from intelligine.mechanism.TraversableDistanceFromMechanism import TraversableDistanceFromMechanism
- from intelligine.synergy.event.Event import Event
- from synergine.core.exceptions import NotConcernedEvent
-
-
- class SmellEvent(Event):
-
- _mechanism = TraversableDistanceFromMechanism
- _concern = COL_SMELL
- _each_cycle = 100
- _first_cycle_force = True
-
- def _prepare(self, object_id, context, parameters={}):
- if not parameters['points_distances'] or not self._concerned_object(context, object_id):
- raise NotConcernedEvent()
-
- return parameters
-
- def _concerned_object(self, context, object_id):
- # TODO: Un peu hardcodé etant donné que cet event concerne tout les COL_SMELL et pas que les transportable ...
- return not context.metas.value.get(CARRIED_BY, object_id, allow_empty=True, empty_value=False)
|