From 31ac1bc64d95c642ce9a3926864356e9ef8346f5 Mon Sep 17 00:00:00 2001 From: RedworkDE <10944644+RedworkDE@users.noreply.github.com> Date: Thu, 15 Jun 2023 22:23:01 +0200 Subject: [PATCH] C#: Document new version defines and remove mentions of old defines --- .../scripting/c_sharp/c_sharp_features.rst | 39 ++++++++++++++++--- 1 file changed, 34 insertions(+), 5 deletions(-) diff --git a/tutorials/scripting/c_sharp/c_sharp_features.rst b/tutorials/scripting/c_sharp/c_sharp_features.rst index fc0aea6b97c..26b9ab89945 100644 --- a/tutorials/scripting/c_sharp/c_sharp_features.rst +++ b/tutorials/scripting/c_sharp/c_sharp_features.rst @@ -141,6 +141,20 @@ Or you can detect which engine your code is in, useful for making cross-engine l #endif } +Or you can write scripts that target multiple Godot versions and can take +advantage that are only available on some of those versions: + +.. code-block:: csharp + + public void UseCoolFeature() + { + #if GODOT4_3_OR_GREATER || GODOT4_2_2_OR_GREATER + // Use CoolFeature, that was added to Godot in 4.3 and cherry-picked into 4.2.2, here. + #else + // Use a workaround for the absence of CoolFeature here. + #endif + } + Full list of defines ~~~~~~~~~~~~~~~~~~~~ @@ -159,15 +173,30 @@ Full list of defines :ref:`OS ` singleton, but not every possible OS the method returns is an OS that Godot with .NET runs on. -When **exporting**, the following may also be defined depending on the export features: +* ``GODOTX``, ``GODOTX_Y``, ``GODOTX_Y_Z``, ``GODOTx_OR_GREATER``, + ``GODOTX_y_OR_GREATER``, and ``GODOTX_Y_z_OR_GREATER``, where ``X``, ``Y``, + and ``Z`` are replaced by the current major, minor and patch version of Godot. + ``x``, ``y``, and ``z`` are replaced by 0 to to the current version for that + component. -* One of ``GODOT_PC``, ``GODOT_MOBILE``, or ``GODOT_WEB`` depending on the platform type. + .. note:: + + These defines were first added in Godot 4.0.4 and 4.1. Version defines for + prior versions do not exist, regardless of the current Godot version. -* One of ``GODOT_ARM64_V8A`` or ``GODOT_ARMEABI_V7A`` on Android only depending on the architecture. + For example: Godot 4.0.5 defines ``GODOT4``, ``GODOT4_OR_GREATER``, + ``GODOT4_0``, ``GODOT4_0_OR_GREATER``, ``GODOT4_0_5``, + ``GODOT4_0_4_OR_GREATER``, and ``GODOT4_0_5_OR_GREATER``. Godot 4.3.2 defines + ``GODOT4``, ``GODOT4_OR_GREATER``, ``GODOT4_3``, ``GODOT4_0_OR_GREATER``, + ``GODOT4_1_OR_GREATER``, ``GODOT4_2_OR_GREATER``, ``GODOT4_3_OR_GREATER``, + ``GODOT4_3_2``, ``GODOT4_3_0_OR_GREATER``, ``GODOT4_3_1_OR_GREATER``, and + ``GODOT4_3_2_OR_GREATER``. -* One of ``GODOT_ARM64`` or ``GODOT_ARMV7`` on iOS only depending on the architecture. +When **exporting**, the following may also be defined depending on the export features: + +* One of ``GODOT_PC``, ``GODOT_MOBILE``, or ``GODOT_WEB`` depending on the platform type. -* Any of ``GODOT_S3TC``, ``GODOT_ETC``, and ``GODOT_ETC2`` depending on the texture compression type. +* One of ``GODOT_WINDOWS``, ``GODOT_LINUXBSD``, ``GODOT_MACOS``, ``GODOT_UWP``, ``GODOT_HAIKU``, ``GODOT_ANDROID``, ``GODOT_IOS``, or ``GODOT_WEB`` depending on the platform. To see an example project, see the OS testing demo: https://github.com/godotengine/godot-demo-projects/tree/master/misc/os_test