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

Работа в субмодуле

Движок не работает сам по себе. Без такой игры, как SS14, которая предоставляет контент, движок ничего не будет делать. Чтобы иметь возможность тестировать и работать над вашими изменениями, рекомендуется работать напрямую с субмодулем движка внутри вашего SS14 репозитория. Если вы не знакомы с Git submodules: субмодули Git — это, по сути, просто Git репозитории, отслеживаемые внутри других Git репозиториев. Например, SS14 имеет субмодуль, указывающий на Robust. Поскольку субмодуль всё ещё является полноценным Git репозиторием, вы можете работать с ним, как с любым другим репозиторием: делать коммиты, ветки, push, pull и т.д. Родительский репозиторий отслеживает текущий checkout коммит дочернего субмодуля и не заботится ни о чём другом, что происходит в субмодуле. Сначала вам нужно форкнуть движок. Затем вы можете изменить ваши git remotes внутри субмодуля, чтобы работать с вашим форком:
# Go to branch master
git switch master
# Rename "origin" (the default remote, keeping track of space-wizards-federation) to "upstream".
git remote rename origin upstream
# Add your own fork as "origin" remote.
git remote add origin https://github.com/<your username>/RobustToolbox.git
# Master will still track upstream (so you can just run git pull on it)
# and any branches you push to origin will go to your fork.
Во-вторых, вам нужно отключить автообновление субмодуля. По умолчанию система сборки автоматически обновляет субмодуль (чтобы людям, которые не хотят изменять движок, не приходилось вручную запускать git submodule update постоянно). Однако это мешает, если вы пытаетесь внести изменения в движок, так как будет постоянно сбрасывать вас на master! Чтобы отключить эту, возможно, функцию, поместите пустой файл с именем «DISABLE_SUBMODULE_AUTOUPDATE» в папку BuildChecker/ в корне проекта SS14 (не внутри RobustToolbox/). Также убедитесь, что у него нет расширения .txt или чего-то подобного.

Создание PR

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

Моя сборка падает!

Чтобы система сборки использовала ваши изменения движка при сборке вашего основного PR, вам нужно поместить «Requires <PR>» в сообщение PR. Например, если ваш PR движка — #1234, то сообщение вашего основного PR будет:
This is my PR that requires an engine change.

  * Broke something
  * Fixed something

Requires https://github.com/space-wizards-federation/RobustToolbox/pull/1583
Поддерживаемые форматы можно найти на https://github.com/space-wizards-federation/submodule-dependency

Рекомендации по изменениям движка

Старайтесь избегать любых ломающих изменений, которые делают будущие версии движка несовместимыми со старыми версиями игры. Это не является огромной проблемой из-за того, как мы версионируем сборки движка, но всё равно вызывает очень неудобный «танец» обновлений, когда мы пытаемся обновить субмодуль в контенте. Такие подходы, как пометка чего-либо [Obsolete], гораздо предпочтительнее полного удаления, когда это больше не нужно.
Последнее изменение 21 июня 2026 г.