Препроцессорные определения

Space Station 14 и Robust довольно активно используют директивы препроцессора C# для разных вещей. В этом документе речь о #if и его товарищах, чтобы условно компилировать код по-разному в зависимости от конкретных настроек.

Этот документ описывает все препроцессорные определения (то, что можно указать в #if), объявленные Robust.

Самые распространённые

  • DEBUG: Игра должна быть скомпилирована с включёнными отладочными проверками вроде DebugTools.Assert().
  • TOOLS: Игра должна быть скомпилирована с включёнными инструментами разработки.
  • RELEASE: Игра компилируется в конфигурации сборки Release. Обычно вам не нужно это проверять, вместо этого предпочтительно проверять DEBUG и TOOLS, где это применимо.

Хитрые

Обычно вам не нужно смотреть на них для разработки контента, это больше относится к движку.

  • FULL_RELEASE: Собираем ли мы сейчас релиз, в который будут играть пользователи. Это необходимо для правильной настройки некоторого кода, например ресурсов, в финальной сборке.
  • DEVELOPMENT: Противоположность FULL_RELEASE. Всегда истинно для локальной разработки, ложно для опубликованных релизов.
  • WINDOWS/UNIX/LINUX/MACOS: Компилируем ли мы под конкретные платформы. Во многих случаях вместо этого используются проверки OperatingSystem.IsX() во время выполнения, так как условная компиляция может быть удобной.
  • EXCEPTION_TOLERANCE: Делает игру более устойчивой к падениям, вставляя try-catch повсюду. Игра намеренно хрупкая в режиме отладки, чтобы побуждать людей чаще исправлять свои баги.
  • CLIENT_SCRIPTING: Включать ли C# Interactive на стороне клиента. Это отключено для релизных сборок из-за соображений безопасности и размера.
  • USE_SYSTEM_SQLITE: Использовать ли системную библиотеку SQLite вместо встроенной библиотеки e_sqlite. Используется для FreeBSD.

Subpages