Препроцессорные определения
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.