From 53706db3b65ceb4520e796d6cb3aef4a5baf3988 Mon Sep 17 00:00:00 2001
From: Cory Petkovsek <632766+TokisanGames@users.noreply.github.com>
Date: Fri, 25 Oct 2024 21:27:20 +0700
Subject: [PATCH] Update version and docs
---
CONTRIBUTING.md | 10 ++
Terrain3D.vcxproj.filters | 2 +-
doc/_new_release_process.txt | 6 +-
doc/api/class_terrain3d.rst | 120 ++++++++++----------
doc/api/class_terrain3dassets.rst | 2 +
doc/api/class_terrain3ddata.rst | 4 +-
doc/api/class_terrain3dinstancer.rst | 120 ++++++++++++--------
doc/api/class_terrain3dmaterial.rst | 21 ++++
doc/api/class_terrain3dmeshasset.rst | 39 +++++--
doc/api/class_terrain3dregion.rst | 106 ++++++++++++-----
doc/api/class_terrain3dutil.rst | 2 +-
doc/build_docs.sh | 2 +-
doc/classes/Terrain3D.xml | 9 +-
doc/classes/Terrain3DAssets.xml | 1 +
doc/classes/Terrain3DData.xml | 4 +-
doc/classes/Terrain3DInstancer.xml | 62 +++++-----
doc/classes/Terrain3DMaterial.xml | 4 +
doc/classes/Terrain3DMeshAsset.xml | 15 ++-
doc/classes/Terrain3DRegion.xml | 20 +++-
doc/classes/Terrain3DUtil.xml | 2 +-
doc/docs/building_from_source.md | 17 +--
doc/docs/collision.md | 21 ++--
doc/docs/double_precision.md | 8 +-
doc/docs/images/integrating_gdextension.jpg | Bin 0 -> 36562 bytes
doc/docs/images/integrating_gdextension.png | Bin 289488 -> 0 bytes
doc/docs/images/io_data_directory.png | Bin 0 -> 22268 bytes
doc/docs/images/io_height_range.png | Bin 49443 -> 0 bytes
doc/docs/images/io_importer.png | Bin 70733 -> 64278 bytes
doc/docs/images/io_load_storage.png | Bin 22204 -> 0 bytes
doc/docs/images/io_save_storage.png | Bin 22082 -> 0 bytes
doc/docs/images/ui_tool_settings.jpg | Bin 80970 -> 64071 bytes
doc/docs/import_export.md | 31 ++---
doc/docs/installation.md | 66 ++++++-----
doc/docs/instancer.md | 2 +-
doc/docs/introduction.md | 20 ++--
doc/docs/nightly_builds.md | 8 +-
doc/docs/programming_languages.md | 15 +--
doc/docs/shader_design.md | 6 +-
doc/docs/tips.md | 2 +-
doc/docs/troubleshooting.md | 24 ++--
doc/docs/tutorial_videos.md | 2 +-
doc/docs/user_interface.md | 40 ++++---
doc/index.rst | 6 +-
project/addons/terrain_3d/plugin.cfg | 2 +-
src/terrain_3d.h | 2 +-
45 files changed, 488 insertions(+), 335 deletions(-)
create mode 100644 doc/docs/images/integrating_gdextension.jpg
delete mode 100644 doc/docs/images/integrating_gdextension.png
create mode 100644 doc/docs/images/io_data_directory.png
delete mode 100644 doc/docs/images/io_height_range.png
delete mode 100644 doc/docs/images/io_load_storage.png
delete mode 100644 doc/docs/images/io_save_storage.png
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 30ea7d43d..290aaaa0d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -43,6 +43,16 @@ We use Godot's clang-format hooks that will format your code upon making a commi
We use the standard [Godot PR workflow](https://docs.godotengine.org/en/stable/contributing/workflow/pr_workflow.html). Please submit PRs according to the same process Godot uses.
+This includes:
+* Creating a new branch (not main) before submitting the PR.
+* Never using git merge, or the `sync` button. Only fetch, push, pull.
+* To update your PR to the latest main, rebase it then force push into your branch.
+ * `git pull --rebase upstream main`
+ * `git push -f`
+
+Read the guide above for more details.
+
+
## Code Style
### GDScript
diff --git a/Terrain3D.vcxproj.filters b/Terrain3D.vcxproj.filters
index 2dd8eade3..5be72811a 100644
--- a/Terrain3D.vcxproj.filters
+++ b/Terrain3D.vcxproj.filters
@@ -301,7 +301,7 @@
4. Shaders
- 2. Docs
+ 1. Project Files
diff --git a/doc/_new_release_process.txt b/doc/_new_release_process.txt
index 387b941e8..6224b7f05 100644
--- a/doc/_new_release_process.txt
+++ b/doc/_new_release_process.txt
@@ -1,9 +1,9 @@
Setting up a new release in Terrain3D
------------------------------------------
-If Storage has changed format:
-* Set src/terrain_3d_storage.h : CURRENT_VERSION
-* Update docs/storage_format.md
+If Data has changed format:
+* Set src/terrain_3d_data.h : CURRENT_VERSION
+* Update docs/data_format.md
Upgrade to new release version:
* Set src/terrain_3d.h : _version
diff --git a/doc/api/class_terrain3d.rst b/doc/api/class_terrain3d.rst
index e1d2d33b1..2c087b193 100644
--- a/doc/api/class_terrain3d.rst
+++ b/doc/api/class_terrain3d.rst
@@ -29,61 +29,61 @@ Properties
.. table::
:widths: auto
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`Terrain3DAssets` | :ref:`assets` | |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`ShadowCastingSetting` | :ref:`cast_shadows` | ``1`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`bool` | :ref:`collision_enabled` | ``true`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`collision_layer` | ``1`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`collision_mask` | ``1`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`CollisionMode` | :ref:`collision_mode` | ``0`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`float` | :ref:`collision_priority` | ``1.0`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`float` | :ref:`cull_margin` | ``0.0`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`Terrain3DData` | :ref:`data` | |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`String` | :ref:`data_directory` | ``""`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`debug_level` | ``0`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`GIMode` | :ref:`gi_mode` | ``1`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`Terrain3DInstancer` | :ref:`instancer` | |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`float` | :ref:`label_distance` | ``0.0`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`label_size` | ``48`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`Terrain3DMaterial` | :ref:`material` | |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`mesh_lods` | ``7`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`mesh_size` | ``48`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`mouse_layer` | ``32`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`RegionSize` | :ref:`region_size` | ``256`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`int` | :ref:`render_layers` | ``2147483649`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`bool` | :ref:`save_16_bit` | ``false`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`bool` | :ref:`show_grid` | ``false`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`Terrain3DStorage` | :ref:`storage` | |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`Terrain3DTextureList` | :ref:`texture_list` | |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`String` | :ref:`version` | ``"0.9.3-dev"`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
- | :ref:`float` | :ref:`vertex_spacing` | ``1.0`` |
- +------------------------------------------------------------------------+------------------------------------------------------------------------+-----------------+
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`Terrain3DAssets` | :ref:`assets` | |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`ShadowCastingSetting` | :ref:`cast_shadows` | ``1`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`bool` | :ref:`collision_enabled` | ``true`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`collision_layer` | ``1`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`collision_mask` | ``1`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`CollisionMode` | :ref:`collision_mode` | ``0`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`float` | :ref:`collision_priority` | ``1.0`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`float` | :ref:`cull_margin` | ``0.0`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`Terrain3DData` | :ref:`data` | |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`String` | :ref:`data_directory` | ``""`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`debug_level` | ``0`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`GIMode` | :ref:`gi_mode` | ``1`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`Terrain3DInstancer` | :ref:`instancer` | |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`float` | :ref:`label_distance` | ``0.0`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`label_size` | ``48`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`Terrain3DMaterial` | :ref:`material` | |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`mesh_lods` | ``7`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`mesh_size` | ``48`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`mouse_layer` | ``32`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`RegionSize` | :ref:`region_size` | ``256`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`int` | :ref:`render_layers` | ``2147483649`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`bool` | :ref:`save_16_bit` | ``false`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`bool` | :ref:`show_grid` | ``false`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`Terrain3DStorage` | :ref:`storage` | |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`Terrain3DTextureList` | :ref:`texture_list` | |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`String` | :ref:`version` | ``"0.9.3"`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
+ | :ref:`float` | :ref:`vertex_spacing` | ``1.0`` |
+ +------------------------------------------------------------------------+------------------------------------------------------------------------+----------------+
.. rst-class:: classref-reftable-group
@@ -588,7 +588,7 @@ See :ref:`get_intersection`.
- |void| **change_region_size**\ (\ value\: :ref:`RegionSize`\ )
- :ref:`RegionSize` **get_region_size**\ (\ )
-The number of vertices in each region, and the number of pixels for each map in Terrain3DRegion. 1 pixel corresponds to 1 vertex. :ref:`vertex_spacing` scales regions, but does not change the number of vertices or pixels.
+The number of vertices in each region, and the number of pixels for each map in :ref:`Terrain3DRegion`. 1 pixel always corresponds to 1 vertex. :ref:`vertex_spacing` laterally scales regions, but does not change the number of vertices or pixels in each.
.. rst-class:: classref-item-separator
@@ -622,7 +622,9 @@ The render layers the terrain is drawn on. This sets ``VisualInstance3D.layers``
- |void| **set_save_16_bit**\ (\ value\: :ref:`bool`\ )
- :ref:`bool` **get_save_16_bit**\ (\ )
-Heightmaps are always loaded and edited in 32-bit. This option saves heightmaps as 16-bit half precision to reduce file size. This process is lossy, but does not change what is currently in memory.
+If enabled, heightmaps are saved as 16-bit half-precision to reduce file size. Files are always loaded in 32-bit for editing. Upon save, a copy of the heightmap is converted to 16-bit for writing. It does not change what is currently in memory.
+
+This process is lossy. 16-bit precision gets increasingly worse with every power of 2. At a height of 256m, the precision interval is .25m. At 512m it is .5m. At 1024m it is 1m. Saving a height of 1024.4m will be rounded down to 1024m.
.. rst-class:: classref-item-separator
@@ -683,7 +685,7 @@ Deprecated. See :ref:`assets`.
.. rst-class:: classref-property
-:ref:`String` **version** = ``"0.9.3-dev"`` :ref:`🔗`
+:ref:`String` **version** = ``"0.9.3"`` :ref:`🔗`
.. rst-class:: classref-property-setget
@@ -706,7 +708,7 @@ The current version of Terrain3D.
- |void| **set_vertex_spacing**\ (\ value\: :ref:`float`\ )
- :ref:`float` **get_vertex_spacing**\ (\ )
-The distance between vertices. Godot units are typically considered to be meters. This scales the terrain on X and Z axes.
+The distance between vertices. Godot units are typically considered to be meters. This laterally scales the terrain on X and Z axes.
This variable changes the global position of landscape features. A mountain peak might be at (512, 512), but with a vertex spacing of 2.0 it is now located at (1024, 1024).
diff --git a/doc/api/class_terrain3dassets.rst b/doc/api/class_terrain3dassets.rst
index b5462298c..201c971b0 100644
--- a/doc/api/class_terrain3dassets.rst
+++ b/doc/api/class_terrain3dassets.rst
@@ -334,6 +334,8 @@ Returns the array of all uv scale values used in the texture assets, indexed by
Saves this texture list resource to disk, if saved as an external ``.tres`` or ``.res`` resource file.
+path - specifies a directory and file name to use from now on.
+
.. rst-class:: classref-item-separator
----
diff --git a/doc/api/class_terrain3ddata.rst b/doc/api/class_terrain3ddata.rst
index 2b530cae1..57c6e0ddf 100644
--- a/doc/api/class_terrain3ddata.rst
+++ b/doc/api/class_terrain3ddata.rst
@@ -246,7 +246,7 @@ Emitted when the region map or any map array has been regenerated.
**maps_edited**\ (\ edited_area\: :ref:`AABB`\ ) :ref:`🔗`
-This signal is emitted whenever the editor is used to:
+This signal is emitted whenever the editor (:ref:`Terrain3DEditor`) is used to:
- add or remove a region
@@ -491,7 +491,7 @@ R16 or exr are recommended for roundtrip external editing.
R16 can be edited by Krita, however you must know the dimensions and min/max before reimporting. This information is printed to the console.
-Res/tres allow storage in any of Godot's native Image formats.
+Res/tres stores in Godot's native data format.
.. rst-class:: classref-item-separator
diff --git a/doc/api/class_terrain3dinstancer.rst b/doc/api/class_terrain3dinstancer.rst
index ecae8ca84..099e82cde 100644
--- a/doc/api/class_terrain3dinstancer.rst
+++ b/doc/api/class_terrain3dinstancer.rst
@@ -47,33 +47,35 @@ Methods
.. table::
:widths: auto
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`add_instances`\ (\ global_position\: :ref:`Vector3`, params\: :ref:`Dictionary`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`add_multimesh`\ (\ mesh_id\: :ref:`int`, multimesh\: :ref:`MultiMesh`, transform\: :ref:`Transform3D` = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`add_transforms`\ (\ mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`Array`\[:ref:`Color`\] = []\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`append_location`\ (\ region_location\: :ref:`Vector2i`, mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`Array`\[:ref:`Color`\], clear\: :ref:`bool` = false, update\: :ref:`bool` = true\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`append_region`\ (\ region\: :ref:`Terrain3DRegion`, mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`Array`\[:ref:`Color`\], clear\: :ref:`bool` = false, update\: :ref:`bool` = true\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`clear_by_location`\ (\ region_location\: :ref:`Vector2i`, mesh_id\: :ref:`int`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`clear_by_mesh`\ (\ mesh_id\: :ref:`int`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`force_update_mmis`\ (\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | :ref:`Dictionary` | :ref:`get_mmis`\ (\ ) |const| |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`remove_instances`\ (\ global_position\: :ref:`Vector3`, params\: :ref:`Dictionary`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`set_cast_shadows`\ (\ mesh_id\: :ref:`int`, mode\: :ref:`ShadowCastingSetting`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`swap_ids`\ (\ src_id\: :ref:`int`, dest_id\: :ref:`int`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
- | |void| | :ref:`update_transforms`\ (\ aabb\: :ref:`AABB`\ ) |
- +-------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`add_instances`\ (\ global_position\: :ref:`Vector3`, params\: :ref:`Dictionary`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`add_multimesh`\ (\ mesh_id\: :ref:`int`, multimesh\: :ref:`MultiMesh`, transform\: :ref:`Transform3D` = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), update\: :ref:`bool` = true\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`add_transforms`\ (\ mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`PackedColorArray` = PackedColorArray(), update\: :ref:`bool` = true\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`append_location`\ (\ region_location\: :ref:`Vector2i`, mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`PackedColorArray`, update\: :ref:`bool` = true\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`append_region`\ (\ region\: :ref:`Terrain3DRegion`, mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`PackedColorArray`, update\: :ref:`bool` = true\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`clear_by_location`\ (\ region_location\: :ref:`Vector2i`, mesh_id\: :ref:`int`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`clear_by_mesh`\ (\ mesh_id\: :ref:`int`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`clear_by_region`\ (\ region\: :ref:`Terrain3DRegion`, mesh_id\: :ref:`int`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`dump_data`\ (\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`dump_mmis`\ (\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`force_update_mmis`\ (\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`remove_instances`\ (\ global_position\: :ref:`Vector3`, params\: :ref:`Dictionary`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`swap_ids`\ (\ src_id\: :ref:`int`, dest_id\: :ref:`int`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+ | |void| | :ref:`update_transforms`\ (\ aabb\: :ref:`AABB`\ ) |
+ +--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
@@ -100,9 +102,11 @@ Used by Terrain3DEditor to place instances given many brush parameters. In addit
.. rst-class:: classref-method
-|void| **add_multimesh**\ (\ mesh_id\: :ref:`int`, multimesh\: :ref:`MultiMesh`, transform\: :ref:`Transform3D` = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)\ ) :ref:`🔗`
+|void| **add_multimesh**\ (\ mesh_id\: :ref:`int`, multimesh\: :ref:`MultiMesh`, transform\: :ref:`Transform3D` = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0), update\: :ref:`bool` = true\ ) :ref:`🔗`
-Allows procedural placement of meshes. The :ref:`Terrain3DMeshAsset` mesh_id should already be setup. This extracts the instance transforms and colors from a multimesh and passes it to :ref:`add_transforms`.
+Allows procedural placement of meshes, or importing from another MultiMeshInstancer placement tool. The specified mesh_id should already be setup as a :ref:`Terrain3DMeshAsset` in the asset dock. This function extracts the instance transforms and colors from a multimesh and passes it to :ref:`add_transforms`.
+
+Update will regenerate the MultiMeshInstances. Disable for bulk adding, then call at the end.
.. rst-class:: classref-item-separator
@@ -112,12 +116,14 @@ Allows procedural placement of meshes. The :ref:`Terrain3DMeshAsset`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`Array`\[:ref:`Color`\] = []\ ) :ref:`🔗`
+|void| **add_transforms**\ (\ mesh_id\: :ref:`int`, transforms\: :ref:`Array`\[:ref:`Transform3D`\], colors\: :ref:`PackedColorArray` = PackedColorArray(), update\: :ref:`bool` = true\ ) :ref:`🔗`
-Allows procedural placement of meshes. The :ref:`Terrain3DMeshAsset` mesh_id should already be setup. Then you provide the array of Transform3Ds and optional Colors, which will be parsed into our region based data storage and fed directly into the appropriate MultiMeshInstances.
+Allows procedural placement of meshes. The mesh_id should already be setup as a :ref:`Terrain3DMeshAsset` in the asset dock. You provide the array of Transform3Ds and optional Colors, which will be parsed into our data storage.
This function adds the :ref:`Terrain3DMeshAsset.height_offset` to the transform along its local Y axis.
+Update will regenerate the MultiMeshInstances. Disable for bulk adding, then call at the end.
+
.. rst-class:: classref-item-separator
----
@@ -126,9 +132,11 @@ This function adds the :ref:`Terrain3DMeshAsset.height_offset`, mesh_id\: :ref:`int`, transforms\: :ref:`Array