Найти в Дзене
Формат АА

Прерывания в расписании поездов в Factorio.

Статья про тонкости игрового процесса в игре Factorio. В этой статье разберём прерывания в расписании поездов в Factorio, и пример использования. Как создавать расписание для поездов можно почитать в этой статье. Как использовать одинаковое название для разных ж/д станций с похожим назначением можно почитать в этой статье. Прерывания в расписании поездов в Factorio предназначены для создания временных маршрутов расписания по условию – со своими условиями и задачами, после выполнения которых поезда возвращаются к точке прерывания и продолжают свой маршрут. Простыми словами – если необходимо сделать так, чтобы поезд временно сошёл с маршрута и сгонял по неотложным делам, то для него делается соответствующее прерывание. Поезд сгоняет куда надо и вернётся назад чтобы продолжить выполнять незаконченное расписание. Специально для статьи выстроим железную дорогу с тремя станциями: У нас имеются три станции: станция погрузки, станция разгрузки и станция Депо. Нигде кроме станции Депо локомотив
Оглавление

Статья про тонкости игрового процесса в игре Factorio.

В этой статье разберём прерывания в расписании поездов в Factorio, и пример использования.

Вступление.

Как создавать расписание для поездов можно почитать в этой статье. Как использовать одинаковое название для разных ж/д станций с похожим назначением можно почитать в этой статье.

Прерывания в расписании поездов в Factorio предназначены для создания временных маршрутов расписания по условию – со своими условиями и задачами, после выполнения которых поезда возвращаются к точке прерывания и продолжают свой маршрут.

Простыми словами – если необходимо сделать так, чтобы поезд временно сошёл с маршрута и сгонял по неотложным делам, то для него делается соответствующее прерывание. Поезд сгоняет куда надо и вернётся назад чтобы продолжить выполнять незаконченное расписание.

Железная дорога и расписание станций.

Специально для статьи выстроим железную дорогу с тремя станциями:

1. Железная дорога со станциями.
1. Железная дорога со станциями.

У нас имеются три станции: станция погрузки, станция разгрузки и станция Депо. Нигде кроме станции Депо локомотивы не заправляются топливом. Поезд приезжает на станцию «Погрузка» и загружается по условию «Полная погрузка». Затем уезжает на станцию «Разгрузка» и выгружает всё по условию «Полная разгрузка». Такой цикл погрузок/разгрузок повторяется до тех пор, пока в локомотиве не закончится топливо. В этом случае поезд остановится где-то на дороге и дальше не поедет.

Необходимо создать условие, при котором поезд прервёт свой маршрут по расписанию и уедет на станцию Депо для дозаправки локомотива. А затем вернётся выполнять незавершённое расписание.

Можно придумать различные варианты и они будут рабочими, но не эффективными. Перечислим их ниже:

1) Можно установить в расписании все три станции по очереди. Тогда поезд будет ездить на погрузку, разгрузку, заправку локомотива.

2) Можно установить в расписании много станций погрузки/разгрузки друг за другом, а потом одну станцию заправки локомотива – чтобы поезд не так часто ездил на неё.

3) Можно подвести топливо к самим станциям погрузки и разгрузки чтобы запитывать локомотивы. Даже легче будет сделать это с помощью синих сундуков запроса (о них можно почитать в этой статье). Вот только это нарушает условие нашего задания: требуется ездить на отдельную заправку – то есть вариант заправки на станциях отметается как не удовлетворяющий поставленным условиям.

4) Можно установить логику, станцию Депо переименовать в станцию разгрузки и после определённого количества разгрузок выключать станцию разгрузки, а вместо неё включать фальшивую станцию разгрузки, куда поезд будет отправляться по ложному пути, но локомотив будет заправляться топливом. Затем снова отключать одну станцию, а включать другую и отправлять полный поезд через станцию погрузки на станцию разгрузки.

5) Есть ещё ухищрения. В том числе, с логикой и без неё. Но это всё так же нелепо или непрактично, как и предыдущие варианты.

А теперь переходим к прерываниям. Наш поезд может возить ресурсы бесконечно долго, пока топливо в локомотиве не подойдёт к концу. Тогда некий механизм должен остановить расписание, вклиниться в этом месте и установить временную станцию для заправки. Поезд уедет, заправится. Некий механизм удалит временную станцию из расписания и поезд снова продолжит выполнять свой маршрут. Это и есть прерывание расписания.

Прерывание необходимо настроить заранее, когда только готовим поезд к запуску по маршруту. В прерывании, как и в расписании будет указано название станции и условие, которое поезд должен выполнить на ней (например, «Полная погрузка» или «Полная разгрузка» или другое). Но само прерывание должно сработать при определённых условиях. И нужно указать условие, которое вызовет срабатывание этого прерывания.

Давайте сначала настроим расписание поезда:

2. Настроено расписание поезда на погрузку и разгрузку.
2. Настроено расписание поезда на погрузку и разгрузку.

Прерывания.

В нашем расписании пока нет прерывания. Поезд будет курсировать между двумя станциями.

Поэтому настроим прерывание для отправки его на станцию «Депо» для заправки локомотива.

Сначала нажимаем кнопку «+Добавить прерывание», вписываем название нового прерывания, например «Топливо» и жмём зелёную кнопочку со стрелкой для подтверждения. Появляется окно редактирования прерывания:

3. Создано прерывание. Необходимо его отредактировать.
3. Создано прерывание. Необходимо его отредактировать.

Если возникнут сомнения в настройках прерывания, его также можно открыть нажатием на кнопочку с карандашом:

4. Открытие редактирования прерывания через кнопку с карандашом.
4. Открытие редактирования прерывания через кнопку с карандашом.

Теперь ещё раз вспоминаем, что прерывание – это самостоятельный кусочек временного расписания. И выполнится это временное расписание только при определённом условии. Поэтому условие прерывания необходимо настроить. В нашем случае условием, при котором основное расписание будет прервано – выступает заканчивающееся топливо.

Настраиваем наше прерывание. Первым делом укажем условие, при котором прерывание будет встроено в расписание поезда. Нажимаем кнопку добавления условия прерывания и выбираем «Топливо (любой локомотив)»:

5. Установка условия прерывания.
5. Установка условия прерывания.

Выбрав в условии «Топливо (любой локомотив)» нужно указать само топливо локомотива и его количество, при котором включится прерывание. Выбираем твёрдое топливо, так как для этой статьи локомотив был заправлен именно твёрдым топливом. Но при желании, у вас может быть ваше топливо, которым заправляете поезда. Выставляем знак «=» и значение топлива «0»:

6. Выставлено значение условия: твёрдое топливо = 0.
6. Выставлено значение условия: твёрдое топливо = 0.

Таким образом, когда в ячейках хранения локомотива останется 0 твёрдого топлива – поезд прервёт расписание чтобы выполнить создаваемое нами прерывание. Не стоит переживать насчёт топлива – оно не закончилось. Как только последнее топливо упало в топку локомотива – в ячейках хранения стало 0, но в топке всё ещё лежит то самое свежее топливо, готовое сгорать.

Бывают случаи, когда поезда топят углём или древесиной (или чем-нибудь ещё), а станция заправки поездов топливом находится на другом конце света. В таком случае будьте прозорливы, мысленно представьте весь путь поезда и пораскиньте данными – доедет ли поезд на последних остатках топлива до станции Депо? Если считаете, что нужно больше топлива на такой долгий путь, то в условии прерывания выставляйте вместо «=0», например «=1» или «=2» или ещё больше. То есть, столько, сколько нужно поезду чтобы безопасно добраться до заправки и иметь некоторый резерв на случай непредвиденных объездов по маршруту.

Когда условие для создания прерывания расписания создано, необходимо создать цель этого прерывания – а именно, куда поедет поезд. В нашем случае поезд поедет на станцию «Депо». Поэтому в целях выбираем станцию «Депо». Это также легко, как и выбирать станцию при создании расписания.

Но на станции нужно установить условие, при котором поезд тронется дальше. То есть, нужно чтобы локомотив заправился под завязку. Для этого в добавлении условия ожидания выбираем «Топливо (все локомотивы)»:

7. В целях установлена станция «Депо» и выбрано условие «Топливо (все локомотивы)».
7. В целях установлена станция «Депо» и выбрано условие «Топливо (все локомотивы)».

Зная, что твёрдое топливо имеет размер пачки 50 штук, считаем, сколько максимально может войти в локомотив: 3 ячейки хранения х 50 штук = 150 твёрдого топлива. Устанавливаем в значение «Топливо (все локомотивы)» твёрдое топливо равное 150:

8. Выставлено значение твёрдое топливо = 150.
8. Выставлено значение твёрдое топливо = 150.

Теперь нужно напомнить об одном маленьком, но важном нюансе. В нашем примере используется один локомотив. Для него значение «Топливо (все локомотивы)» является абсолютным значением. Но, если в подвижном составе будет не 1 локомотив, а 2 или 3 или больше, то значение «Топливо (все локомотивы)» будет подразумевать топливо во всех локомотивах одновременно. Поэтому, например, для твёрдого топлива это значение увеличится по количеству локомотивов: 150 твёрдого топлива х 2 или х 3 или х 4 и так далее.

После завершения всех настроек жмём зелёную кнопку «Сохранить прерывание».

Если у вас всё готово, смело жмите переключатель в режим «Авто» или кнопку запуска на станцию «Погрузка». Поезд поедет по расписанию. Теперь он будет ездить на разгрузку и возвращаться на погрузку пока не закончится топливо в ячейках хранения локомотива. Сразу после этого сработает прерывание расписания «Топливо» которое мы настроили. Получив команду, что твёрдое топливо = 0, поезд закончит своё текущее задание по расписанию и последует на станцию «Депо».

Альтернативным и более удобным способом заправки локомотивов является другая настройка в прерывании. Давайте рассмотрим её.

При редактировании прерывания в целях на станции «Депо» необходимо выбрать не «Топливо (все локомотивы)», а «Полон топлива»:

9. В условии ожидания выбирается «Полон топлива».
9. В условии ожидания выбирается «Полон топлива».

И теперь выглядеть прерывание будет иначе, в условиях ожидания появляется пункт «Все локомотивы полностью заправлены»:

10. В условиях ожидания пункт «Все локомотивы полностью заправлены».
10. В условиях ожидания пункт «Все локомотивы полностью заправлены».

В чём различие между предыдущим способом и текущим? В предыдущем необходимо было указать какое топливо будет использовано и какое его количество необходимо заправить. В том числе, необходимо было посчитать количество топлива, если локомотивов больше одного.

В текущем способе заправки – нет необходимости указывать топливо и его количество. Игра сама проследит, когда все локомотивы, независимо от их количества, будут загружены топливом под завязку.

Заключение.

Прерывания расписания – удобная функция.

Можно прекрасно обойтись без них, но если в них разобраться – можно усовершенствовать свои железнодорожные перевозки. Пример из статьи – это лишь один вариант использования прерываний, особенно удобный для игроков, желающих выстраивать станции Депо для заправки поездов в стороне от основных маршрутов.

Чертежи.

К этой статье нет чертежей. Чертежи к другим статьям (и не только к статьям) можно скачать в текстовых файлах в моём канале Telegram и в чате с чертежами.

-----------------------------------------

Прямая ссылка на мой канал Telegram: https://t.me/format_aa

☕️ Если вы хотите угостить меня кофе или вкусняшкой за старания, сделать это можно с помощью доната: https://boosty.to/format_aa/donate

-----------------------------------------

Подпишись на канал и узнавай больше +

#Формат_АА
#Factorio
#схемы
#чертежи
#поезда
#расписание
#прерывание
#топливо