-
Notifications
You must be signed in to change notification settings - Fork 0
Секция Chief_Road
Note: English version
Класс il2fb.parsers.mission.sections.chiefs.ChiefRoadSectionParser
отвечает за разбор секции N_Chief_Road
. Каждый объект, что описан в
секции Chiefs, имеет свой собственный маршрут. Каждый маршрут
описан в отдельной секции N_Chief_Road
, где N
— порядковый номер внутри
секции Chiefs
.
Пример секции:
[0_Chief_Road] 21380.02 41700.34 120.00 10 2 3.055555582046509 21500.00 41700.00 120.00 50299.58 35699.85 120.00 0 3 2.6388890743255615 60284.10 59142.93 120.00 84682.13 98423.69 120.00
Пример разбора:
{
'route_0_Chief': [
GroundRoutePoint(
pos=Point2D(21380.02, 41700.34),
is_checkpoint=True,
delay=10,
section_length=3,
speed=11.0,
),
GroundRoutePoint(
pos=Point2D(21500.00, 41700.00),
is_checkpoint=False,
),
GroundRoutePoint(
pos=Point2D(50299.58, 35699.85),
is_checkpoint=True,
delay=0,
section_length=3,
speed=9.5,
),
GroundRoutePoint(
pos=Point2D(60284.10, 59142.93),
is_checkpoint=False,
),
GroundRoutePoint(
pos=Point2D(84682.13, 98423.69),
is_checkpoint=False,
),
],
}
Описание:
Каждая строка в секции N_Chief_Road
описывает одну точку маршрута.
Существует два типа точек: созданные пользователем вручную и созданные
автоматически полным редактором миссий.
Конечным результатом работы парсера является словарь с элементом
route_N_Chief
, который содержит список точек маршрута
il2fb.parsers.mission.sections.chiefs.GroundRoutePoint
.
Точки, созданные вручную, имеют 6 пареметров, в то время как точки, созданные автоматически, — всего 3. Последняя точка задается пользователем. Не смотря на это она, как и автоматически созданные точки, имеет всего 3 параметра. Пусть это исключение не станет поводом для заблуждений.
Целью созданных автоматически точек является прокладка наиболее эффективного маршрута с точки зрения полного редактора:
- транспорт стремится к движению по дорогам, мостам и по наиболее ровной местности;
- поезда могут передвигаться только по железным дорогам; промежуточные точки создаются в местах изменения направления движения;
- корабли, находясь в прибрежной зоне, будут стремиться к движению вдоль берега.
Давайте рассмотрим описание точки, созданной вручную. Оно включает в себя все параметры сразу:
21380.02 41700.34 120.00 10 2 3.055555582046509
21380.02
-
Координата X.
Путь: pos.x
Тип: float
Значение: исходное значение, преобразованное в вещественное число 41700.34
-
Координата Y.
Путь: pos.y
Тип: float
Значение: исходное значение, преобразованное в вещественное число 120.00
-
Это довольно странный параметр. Его настоящий смысл доподлинно неизвестен, но его значение зависит от вида поверхности, на которой расположена точка. Также значение отличается для разных видов техники:
- Транспорт: значение для всех точек, созданных вручную равно
120.0
. Точки, созданные автоматически, могут принимать значение20.0
или120.0
, что означает расположению на дороге или пересеченной местности соответственно. Любое отрицательное значение (обычно в двух точках подряд) означает начало/конец движения объекта по мосту. - Поезда: все точки маршрута принимают значение
20
, что указывает на движение объекта непосредственно по железной дороге. Любое отрицательное значение (обычно в двух точках подряд) означает начало/конец движения объекта по железнодорожному мосту. - Корабли: все точки маршрута принимают значение
120
, что указывает на движение объекта непосредственно по воде.
Путь: это значение отсутсвует в результате разбора секции. - Транспорт: значение для всех точек, созданных вручную равно
10
-
Задержка (в минутах): данный параметр сообщает, сколько времени объект должен находиться в режиме ожидания до того, как он начнет движение к следующей точке маршрута, определенной пользователем.
Путь: delay
Тип: int
Значение: исходное значение, преобразованное в целое число 2
-
Длина секции. Здесь под
секцией
подразумевается текущая точка, определенная пользователем, следующая точка, определенная пользователем, и все промежуточные точки между ними.Путь: section_length
Тип: int
Значение: исходное значение, преобразованное в целое число 3.055555582046509
-
Скорость движения объекта в данной точке маршрута. Этот пареметр устанавливается автоматически полным редактором и зависит от типа объекта. Для того, чтобы получить скорость в
км/ч
, необходимо значение умножить на коэффициент скорости.Путь: speed
Тип: float
Значение: исходное значение, преобразованное в вещественное число и умноженное на коэффициент скорости
Созданные пользователем точки (за исключением последней) помечаются как контрольные точки.
Путь: | is_checkpoint |
---|---|
Тип: | bool |
Значение: |
True , если точка определяет начало секции, False , если это
промежуточная или последняя точка |