Пятничные факты #263 – Поезда в чертежах

Spread the love

опубликовал kovarex

Поезда в чертежах

Строительство поездов снова и снова может быть сложной задачей. Особенно, когда вы начинаете делать много  аванпостов добычи ресурсов, артиллерийских / сервисных поездов с отфильтрованными слотами грузового вагона и т. д.

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

Проверка кнопки позволяет показать поезд, который должен был быть помещен в чертеж (подобно тому, как работает плитка). Ради простоты мы решили, что когда в проекте будет какой-либо рельс, поезд в нем будет всегда строиться (как призрак очевидно ), даже если на данный момент нет рельсов для поддержки поезда. Призрачный поезд будет просто оставаться там и не будет строиться до тех пор, пока рельсы не будут установлены под ним таким образом, чтобы его можно было разместить.

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

Небольшое прикосновение здесь состоит в том, что чертеж также содержит расписание. С небольшим количеством импровизации я могу оптимизировать строительство шахт в конце игры. Я создаю чертеж моего железнодорожного вокзала. Остановка будет называться « шахта X».

Оба поезда в чертеже будут иметь настройку расписания «шахта X» -> «переплавка». Как только я построю проект, я просто переименую «шахта X» на все, что захочу (например, «шахта 12»), и графики поездов также обновляются, поэтому я почти готов к работе.

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

Изменения  планировщика обновлений

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

Первая проблема была связана с подземными конвейерами. С наивным подходом к простому обновлению объектов, которые были выбраны, это произошло довольно много, что я обновил зону конвейера, но я не заметил, что некоторые из подземных конвейеров имеют только одну сторону, отмеченную для обновления, поэтому конвейеры  отключаются при выполнении обновления:

Обычно это было обнаружено через полчаса, когда я изучал причину когда какая-то часть фабрики не производит. Когда это случалось несколько раз подряд, это было очень неприятно … Поэтому было исправлено: убедиться, что планировщик обновлений всегда обновляет подключенные подземные конвейеры, если это возможно:

Часть настройки заключается в том, что робот обновляет обе части подземного конвейера как одно действие, поэтому элементов, которые «текут» под землей, не нужно касаться.

Следующее, что мы хотели, – это не только обновить объекты, но и их содержимое, чтобы теперь можно было уточнить обновления модулей в планировщике обновлений. (Имейте в виду, что пользовательский интерфейс планировщика обновлений / чертежа является незавершенным, и этот конкретный экран еще не рассматривался процессом полирования графического интерфейса пользователя).

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

Вы можете сразу увидеть, что другой настройкой может быть также обновление значков чертежей.

Я благодарю galibert, который создал оригинальный запрос  этой функции (иногда  доступ  незнакомцам к проекту помогает нам) и Rseding91, который исправил технические проблемы и добавил ухищрения, упомянутые ранее.

Завершение функций и состояние задержки (техническое)

Прошло довольно много времени с тех пор, как мы описали нашу систему скрытия задержек в FFF-83. С тех пор нам пришлось сделать жесткий выбор: включить ли новую функцию взаимодействия  или нет, когда мы ее разработали. С отменой подразумевалось, что он должен быть включен в систему состояния задержки, так как вам нужна точная мгновенная обратная связь с тем, что вы отменили, особенно когда вы отменяете несколько вещей подряд, и вы не хотите сделать больше шагов случайно из-за многопользовательской задержки. Поскольку в  состоянии задержки все больше и больше вещей, и они должны взаимодействовать друг с другом разумным образом, количество возможных случаев начинает расти, поэтому мы должны убедиться, что  случаи покрыты тестами больше, чем в других областях.

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

Старт

Постройка печки

Обозначен для снесения

Отмена

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

Что вы видите
Что в игре

Начало
Начало

Поддельная печь создана
еще ничего

Поддельная печь обозначена для сноса
еще ничего

Поддельная печь отменена для  сноса
еще ничего

Теперь настоящая печь обозначена для  сноса
Печь построена в игре

Теперь настоящая печь отменена для  сноса
Печь обозначена для сноса в игре

Теперь вы видите что в игре
Печь отменена для сноса в игре

Выполнение всех подобных дел может иметь большое значение между готовым прототипом и готовностью к выпуску. С самой функцией отмены я добавил 42 различных теста, и я не полностью закончил.

Как всегда, дайте нам знать, что вы думаете на нашем форуме


Комментарии: