+ def _update_roaches(self, world):
+ self._roach_layer.clear()
+ seating = self._vehicle.seating(world)
+ outside_roaches = []
+ for roach in world.roaches:
+ seat_pos = seating.get(roach.name)
+ if seat_pos is not None:
+ roach_actor = self._roach_actors[roach.name]
+ roach_actor.pos = self._seat_layer[seat_pos].pos
+ self._roach_layer.add(roach_actor)
+ else:
+ outside_roaches.append(roach.name)
+ self._outside_roach_pos %= len(outside_roaches)
+ if outside_roaches:
+ roach_actor = self._roach_actors[
+ outside_roaches[self._outside_roach_pos]]
+ roach_pad_center = self._roach_pad.center
+ roach_actor.pos = (
+ roach_pad_center[0] + ROACH_PAD_OFFSET[0],
+ roach_pad_center[1] + ROACH_PAD_OFFSET[1])
+ self._roach_layer.add(roach_actor)
+