Source code for blossom.simulation.organism_behavior.eating

[docs] def constant_eat(organism, universe): """ Intake constant amount of food from world if food is present. """ size = universe.world.world_size if len(size) == 1: available_food = universe.world.food[organism.location[0]] elif len(size) == 2: available_food = (universe.world.food[organism.location[0]] [organism.location[1]]) else: raise ValueError(f'Invalid world dimensionality: {len(size)}') diff = organism.food_capacity - organism.food_current intake = min(available_food, diff, organism.food_intake) organism.food_current += intake if len(size) == 1: universe.world.food[organism.location[0]] -= intake else: universe.world.food[organism.location[0]][organism.location[1]] -= intake return [organism]