Пример #1
0
def find_best_waypoint_route(routes: List[List[Position]], position: Position):
    best = (position.calculate_distance_from(routes[0][0]), 0)

    for i, route in enumerate(routes):
        distance = position.calculate_distance_from(route[0])

        if distance < best[0]:
            best = (distance, i)

    return best[1]
Пример #2
0
    def record(self, record_data: Dict[str, str]):
        self.waypoints = {'format': record_data['wp_format'], 'waypoints': []}

        signal.signal(signal.SIGINT,
                      lambda *args: self.screen.stop_capturing())
        signal.signal(signal.SIGTERM,
                      lambda *args: self.screen.stop_capturing())

        try:
            for screen in self.screen.capture():
                data = self.extractor.extract_data_from_screen(screen)
                self._data_sanitizer.sanitize_data(data)

                current_position = Position(data.player_position[0],
                                            data.player_position[1])
                if not self.waypoints['waypoints']:
                    self.waypoints['waypoints'].append(data.player_position)
                else:
                    last_recorded_coordinates = self.waypoints['waypoints'][
                        len(self.waypoints['waypoints']) - 1]
                    last_recorded_position = Position(
                        last_recorded_coordinates[0],
                        last_recorded_coordinates[1])
                    if current_position.calculate_distance_from(
                            last_recorded_position
                    ) >= GlobalConfig.config.core.difference_between_two_waypoints:
                        Logger.info('Recording position: ' +
                                    str(data.player_position))
                        self.waypoints['waypoints'].append(
                            data.player_position)
        finally:
            Logger.info('Saving file to: {}'.format(
                record_data.get('waypoint', 'NO PATH')))

            file = Path(record_data['waypoint'])
            if file.is_file():
                self._save_if_file_exist(record_data)
            else:
                self._save_if_file_not_exist(record_data)