Cleanup uses of double spaces between words or after punctuation

This commit is contained in:
Rémi Verschelde
2021-06-07 10:44:02 +02:00
parent 08150dca70
commit 044b6a74f8
28 changed files with 125 additions and 141 deletions
+70 -87
View File
@@ -12,22 +12,22 @@ by tapping into the functionality provided by the Android platform and ecosystem
Mobile gaming monetization is one such example since it requires features
and capabilities that don't belong to the core feature set of a game engine:
- Analytics
- In-app purchases
- Receipt validation
- Install tracking
- Ads
- Video ads
- Cross-promotion
- In-game soft & hard currencies
- Promo codes
- A/B testing
- Login
- Cloud saves
- Leaderboards and scores
- User support & feedback
- Posting to Facebook, Twitter, etc.
- Push notifications
- Analytics
- In-app purchases
- Receipt validation
- Install tracking
- Ads
- Video ads
- Cross-promotion
- In-game soft & hard currencies
- Promo codes
- A/B testing
- Login
- Cloud saves
- Leaderboards and scores
- User support & feedback
- Posting to Facebook, Twitter, etc.
- Push notifications
Android plugin
--------------
@@ -41,9 +41,8 @@ As a prerequisite, make sure you understand how to set up a :ref:`custom build e
At its core, a Godot Android plugin is a `Android archive library <https://developer.android.com/studio/projects/android-library#aar-contents>`_ (*aar* archive file)
with the following caveats:
- The library must have a dependency on the Godot engine library (``godot-lib.<version>.<status>.aar``). A stable version is made available for each Godot release on the `Godot download page <https://godotengine.org/download>`_.
- The library must include a specifically configured ``<meta-data>`` tag in its manifest file.
- The library must have a dependency on the Godot engine library (``godot-lib.<version>.<status>.aar``). A stable version is made available for each Godot release on the `Godot download page <https://godotengine.org/download>`_.
- The library must include a specifically configured ``<meta-data>`` tag in its manifest file.
Building an Android plugin
^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -51,83 +50,71 @@ Building an Android plugin
**Prerequisite:** `Android Studio <https://developer.android.com/studio>`_ is strongly recommended as the IDE to use to create Android plugins.
The instructions below assumes that you're using Android Studio.
1. Follow `these instructions <https://developer.android.com/studio/projects/android-library>`__ to create an Android library module for your plugin.
1. Follow `these instructions <https://developer.android.com/studio/projects/android-library>`__ to create an Android library module for your plugin.
2. Add the Godot engine library as a dependency to your plugin module:
2. Add the Godot engine library as a dependency to your plugin module:
- Download the Godot engine library (``godot-lib.<version>.<status>.aar``) from the `Godot download page <https://godotengine.org/download>`_ (e.g: ``godot-lib.4.0.stable.aar``).
- Download the Godot engine library (``godot-lib.<version>.<status>.aar``) from the `Godot download page <https://godotengine.org/download>`_ (e.g: ``godot-lib.4.0.stable.aar``).
- Follow `these instructions <https://developer.android.com/studio/projects/android-library#AddDependency>`__ to add
the Godot engine library as a dependency for your plugin.
- In the plugin module's ``build.gradle`` file, replace ``implementation`` with ``compileOnly`` for the dependency line for the Godot engine library.
- Follow `these instructions <https://developer.android.com/studio/projects/android-library#AddDependency>`__ to add
the Godot engine library as a dependency for your plugin.
3. Create a new class in the plugin module and make sure it extends ``org.godotengine.godot.plugin.GodotPlugin``.
At runtime, it will be used to instantiate a singleton object that will be used by the Godot engine to load, initialize and run the plugin.
- In the plugin module's ``build.gradle`` file, replace ``implementation`` with ``compileOnly`` for the dependency line for the Godot engine library.
4. Update the plugin ``AndroidManifest.xml`` file:
3. Create a new class in the plugin module and make sure it extends ``org.godotengine.godot.plugin.GodotPlugin``.
At runtime, it will be used to instantiate a singleton object that will be used by the Godot engine to load, initialize and run the plugin.
- Open the plugin ``AndroidManifest.xml`` file.
- Add the ``<application></application>`` tag if it's missing.
- In the ``<application>`` tag, add a ``<meta-data>`` tag setup as follow::
4. Update the plugin ``AndroidManifest.xml`` file:
<meta-data
android:name="org.godotengine.plugin.v1.[PluginName]"
android:value="[plugin.init.ClassFullName]" />
- Open the plugin ``AndroidManifest.xml`` file.
Where ``PluginName`` is the name of the plugin, and ``plugin.init.ClassFullName`` is the full name (package + class name) of the plugin loading class.
- Add the ``<application></application>`` tag if it's missing.
5. Add the remaining logic for your plugin and run the ``gradlew build`` command to generate the plugin's ``aar`` file.
The build will likely generate both a ``debug`` and ``release`` ``aar`` files.
Depending on your need, pick only one version (usually the ``release`` one) which to provide your users with.
- In the ``<application>`` tag, add a ``<meta-data>`` tag setup as follow::
It's recommended that the ``aar`` filename matches the following pattern: ``[PluginName]*.aar`` where ``PluginName`` is the name of the plugin in PascalCase (e.g.: ``GodotPayment.release.aar``).
<meta-data
android:name="org.godotengine.plugin.v1.[PluginName]"
android:value="[plugin.init.ClassFullName]" />
6. Create a Godot Android Plugin configuration file to help the system detect and load your plugin:
Where ``PluginName`` is the name of the plugin, and ``plugin.init.ClassFullName`` is the full name (package + class name) of the plugin loading class.
- The configuration file extension must be ``gdap`` (e.g.: ``MyPlugin.gdap``).
- The configuration file format is as follow::
5. Add the remaining logic for your plugin and run the ``gradlew build`` command to generate the plugin's ``aar`` file.
The build will likely generate both a ``debug`` and ``release`` ``aar`` files.
Depending on your need, pick only one version (usually the ``release`` one) which to provide your users with.
[config]
It's recommended that the ``aar`` filename matches the following pattern: ``[PluginName]*.aar`` where ``PluginName`` is the name of the plugin in PascalCase (e.g.: ``GodotPayment.release.aar``).
name="MyPlugin"
binary_type="local"
binary="MyPlugin.aar"
6. Create a Godot Android Plugin configuration file to help the system detect and load your plugin:
[dependencies]
- The configuration file extension must be ``gdap`` (e.g.: ``MyPlugin.gdap``).
- The configuration file format is as follow::
[config]
name="MyPlugin"
binary_type="local"
binary="MyPlugin.aar"
[dependencies]
local=["local_dep1.aar", "local_dep2.aar"]
remote=["example.plugin.android:remote-dep1:0.0.1", "example.plugin.android:remote-dep2:0.0.1"]
custom_maven_repos=["http://repo.mycompany.com/maven2"]
The ``config`` section and fields are required and defined as follow:
- **name**: name of the plugin
local=["local_dep1.aar", "local_dep2.aar"]
remote=["example.plugin.android:remote-dep1:0.0.1", "example.plugin.android:remote-dep2:0.0.1"]
custom_maven_repos=["http://repo.mycompany.com/maven2"]
- **binary_type**: can be either ``local`` or ``remote``. The type affects the **binary** field
The ``config`` section and fields are required and defined as follow:
- **binary**:
- if **binary_type** is ``local``, then this should be the filepath of the plugin ``aar`` file.
- The filepath can be relative (e.g.: ``MyPlugin.aar``) in which case it's relative to the ``res://android/plugins`` directory.
- **name**: name of the plugin.
- **binary_type**: can be either ``local`` or ``remote``. The type affects the **binary** field.
- **binary**:
- The filepath can be absolute: ``res://some_path/MyPlugin.aar``.
- if **binary_type** is ``remote``, then this should be a declaration for a `remote gradle binary <https://developer.android.com/studio/build/dependencies#dependency-types>`_ (e.g.: ``org.godot.example:my-plugin:0.0.0``).
The ``dependencies`` section and fields are optional and defined as follow:
- **local**: contains a list of filepaths to the local ``.aar`` binary files the plugin depends on. Similarly to the ``binary`` field (when the ``binary_type`` is ``local``), the local binaries' filepaths can be relative or absolute.
- If **binary_type** is ``local``, then this should be the filepath of the plugin ``aar`` file.
- **remote**: contains a list of remote binary gradle dependencies for the plugin.
- The filepath can be relative (e.g.: ``MyPlugin.aar``) in which case it's relative to the ``res://android/plugins`` directory.
- The filepath can be absolute: ``res://some_path/MyPlugin.aar``.
- **custom_maven_repos**: contains a list of URLs specifying the custom maven repositories required for the plugin's dependencies
- If **binary_type** is ``remote``, then this should be a declaration for a `remote gradle binary <https://developer.android.com/studio/build/dependencies#dependency-types>`_ (e.g.: ``org.godot.example:my-plugin:0.0.0``).
The ``dependencies`` section and fields are optional and defined as follow:
- **local**: contains a list of filepaths to the local ``.aar`` binary files the plugin depends on. Similarly to the ``binary`` field (when the ``binary_type`` is ``local``), the local binaries' filepaths can be relative or absolute.
- **remote**: contains a list of remote binary gradle dependencies for the plugin.
- **custom_maven_repos**: contains a list of URLs specifying the custom maven repositories required for the plugin's dependencies.
Loading and using an Android plugin
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -152,10 +139,9 @@ Bundling GDNative resources
An Android plugin can define and provide C/C++ GDNative resources, either to provide and/or access functionality from the game logic.
The GDNative resources can be bundled within the plugin ``aar`` file which simplifies the distribution and deployment process:
- The shared libraries (``.so``) for the defined GDNative libraries will be automatically bundled by the ``aar`` build system.
- Godot ``*.gdnlib`` and ``*.gdns`` resource files must be manually defined in the plugin ``assets`` directory.
The recommended path for these resources relative to the ``assets`` directory should be: ``godot/plugin/v1/[PluginName]/``.
- The shared libraries (``.so``) for the defined GDNative libraries will be automatically bundled by the ``aar`` build system.
- Godot ``*.gdnlib`` and ``*.gdns`` resource files must be manually defined in the plugin ``assets`` directory.
The recommended path for these resources relative to the ``assets`` directory should be: ``godot/plugin/v1/[PluginName]/``.
For GDNative libraries, the plugin singleton object must override the ``org.godotengine.godot.plugin.GodotPlugin::getPluginGDNativeLibrariesPaths()`` method,
and return the paths to the bundled GDNative libraries config files (``*.gdnlib``). The paths must be relative to the ``assets`` directory.
@@ -164,11 +150,9 @@ At runtime, the plugin will provide these paths to Godot core which will use the
Reference implementations
^^^^^^^^^^^^^^^^^^^^^^^^^
- `Godot Oculus Mobile plugin <https://github.com/GodotVR/godot_oculus_mobile>`_
- `Bundled gdnative resources <https://github.com/GodotVR/godot_oculus_mobile/tree/master/plugin/src/main/assets/addons/godot_ovrmobile>`_
- `Godot Google Play Billing plugin <https://github.com/godotengine/godot-google-play-billing>`_
- `Godot Oculus Mobile plugin <https://github.com/GodotVR/godot_oculus_mobile>`_
- `Bundled gdnative resources <https://github.com/GodotVR/godot_oculus_mobile/tree/master/plugin/src/main/assets/addons/godot_ovrmobile>`_
- `Godot Google Play Billing plugin <https://github.com/godotengine/godot-google-play-billing>`_
Troubleshooting
@@ -179,6 +163,5 @@ Godot crashes upon load
Check ``adb logcat`` for possible problems, then:
- Check that the methods exposed by the plugin used the following Java types: ``void``, ``boolean``, ``int``, ``float``, ``java.lang.String``, ``org.godotengine.godot.Dictionary``, ``int[]``, ``byte[]``, ``float[]``, ``java.lang.String[]``.
- More complex datatypes are not supported for now.
- Check that the methods exposed by the plugin used the following Java types: ``void``, ``boolean``, ``int``, ``float``, ``java.lang.String``, ``org.godotengine.godot.Dictionary``, ``int[]``, ``byte[]``, ``float[]``, ``java.lang.String[]``.
- More complex datatypes are not supported for now.