1234567891011121314151617181920212223242526272829303132333435363738394041 |
- from intelligine.core.exceptions import BestPheromoneHere, PheromoneGlandDisabled
- from intelligine.simulation.pheromone.DirectionPheromone import DirectionPheromone
-
- class PheromoneGland():
-
- def __init__(self, host, context):
- self._pheromone_type = None
- self._host = host
- self._context = context
- self._enabled = False
-
- def set_pheromone_type(self, pheromone_type):
- self._pheromone_type = pheromone_type
-
- def get_pheromone_type(self):
- if self._pheromone_type is None:
- raise Exception("pheromone_type not specified")
- return self._pheromone_type
-
- def get_pheromone(self):
- raise NotImplementedError()
-
- def appose(self):
- if not self._enabled:
- raise PheromoneGlandDisabled()
-
- try:
- DirectionPheromone.appose(self._context,
- self._host.get_position(),
- self.get_pheromone())
- except BestPheromoneHere as best_pheromone_here:
- self._host.get_brain().set_distance_from_objective(best_pheromone_here.get_best_distance())
-
- def disable(self):
- self._enabled = False
-
- def enable(self):
- self._enabled = True
-
- def is_enabled(self):
- return self._enabled
|