Введение в проект OpenTTD-JRPM
Что это такое
OpenTTD-JRPM (jrpm) — это ответвление от JGR's Patchpack (jgrpp), объединяющее функции «смены локомотивов» и «модульных аэропортов» из pulsexlb/OpenTTD-patches с собственными возможностями jrpm. Текущая версия: jrpm-0.1.0.
Это полностью самостоятельная версия для установки и игры по сети: клиенты/серверы jrpm используют уникальный идентификатор версии (jrpm-0.1.0) для рукопожатия, полностью изолированный от оригинального jgrpp и pulsexlb, чтобы избежать путаницы версий.
Обзор возможностей
Из pulsexlb (152 коммита, объединены через git merge)
- Смена локомотивов (decouple): полная система расцепления/сцепления поездов — приказы на расцепку, передача маршрутных листов, ограничения длины сцепки и скорости, поддержка двойной тяги, сцепка NewGRF, навигация сцепки (YAPF/NPF), независимое управление двумя поездами после расцепки;
- Модульные аэропорты (multitile-airport): переработанная система многосекционных аэропортов — система типов air (
air.h/air_type.h/newgrf_airtype.*), диспетчеризация PBS в воздухе (pbs_air.*), навигация YAPF для авиации,station.allow_modify_airportsдля изменения планировки аэропортов,gui.default_air_typeдля типа авиации по умолчанию.
Собственные возможности jrpm
| Функция | Описание | Вход |
|---|---|---|
| Загрузка ресурсов: несколько зеркал + параллельно | Несколько зеркал через запятую, параллельная загрузка файлов (настраиваемое количество), автоматическое переключение зеркал при сбое | Настройки → network.content_mirrors / network.content_download_parallel |
| Автоматическая группировка ТС | Одно нажатие для группировки по общим приказам/расписаниям, автоматическое название по маршруту | Кнопка в окне групп / консоль autogroup |
| Подсказка стоимости строительства | Расчётная стоимость при наведении на рельсы/дороги/ландшафт | Панели инструментов путей/дорог/ландшафта |
| Глобальный AI | Сохранён NoAI, добавлен глобальный API AIGlobal + пример AI GlobalAI, доступ через настройки игры | game.script.allow_global_ai_access |
| Совместимость сервера с несколькими версиями | Сервер jrpm одновременно принимает клиенты jrpm / оригинальный jgrpp / pulsexlb | Автоматически при подключении к серверу |
Полное наследование
- Все возможности jgrpp (улучшенные сигналы, scheduled dispatch, tracerestrict, шаблонная замена и т.д.);
- Полная совместимость с оригинальным OpenTTD, NewGRF и скриптами.
Связь версий
jgrpp-0.73.1 (общий предок)
/ \
jgrpp ветка (63 коммита) pulsexlb px-patch (152 коммита)
├ последние обновления jgrpp ├ смена локомотивов (ветка decouple)
├ собственные функции jrpm └ модульные аэропорты (ветка multitile-airport)
└ переименование jrpm-0.1.0
\ /
jrpm ветка (git merge)Ветки и коммиты
- Ветка:
jrpm(основная линия разработки) - Ключевые коммиты:
d4c45740— 5 собственных функций jrpm71fe214c— merge pulsexlb (смена локомотивов + модульные аэропорты)425e7207— переименование в openttd-jrpm / jrpm-0.1.0cb9848b7— совместимость сервера с несколькими версиями4716b925— настраиваемое количество параллельных загрузок
Лицензия
Аналогично OpenTTD: GPL-2.0.