summaryrefslogtreecommitdiffstats
path: root/doc/classes
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-07-17 15:44:57 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-07-17 15:44:57 +0200
commit5ace3fb6d0926ab6adc0c9dde59ff11393e47d11 (patch)
treeeee6e6a57398272d0f7bff4d97551ab72532bed7 /doc/classes
parent28b7efb43802a949220b943d48ccfe725d73b5df (diff)
parent1ec176d6cc9837055e260dba04aa91a1e12c356f (diff)
downloadredot-engine-5ace3fb6d0926ab6adc0c9dde59ff11393e47d11.tar.gz
Merge pull request #94329 from KoBeWi/sceneles
Some improvements to TileSetScenesCollectionSource docs
Diffstat (limited to 'doc/classes')
-rw-r--r--doc/classes/TileSetScenesCollectionSource.xml26
1 files changed, 26 insertions, 0 deletions
diff --git a/doc/classes/TileSetScenesCollectionSource.xml b/doc/classes/TileSetScenesCollectionSource.xml
index 9d2742b844..40ad269e83 100644
--- a/doc/classes/TileSetScenesCollectionSource.xml
+++ b/doc/classes/TileSetScenesCollectionSource.xml
@@ -6,6 +6,32 @@
<description>
When placed on a [TileMap], tiles from [TileSetScenesCollectionSource] will automatically instantiate an associated scene at the cell's position in the TileMap.
Scenes are instantiated as children of the [TileMap] when it enters the tree. If you add/remove a scene tile in the [TileMap] that is already inside the tree, the [TileMap] will automatically instantiate/free the scene accordingly.
+ [b]Note:[/b] Scene tiles all occupy one tile slot and instead use alternate tile ID to identify scene index. [method TileSetSource.get_tiles_count] will always return [code]1[/code]. Use [method get_scene_tiles_count] to get a number of scenes in a [TileSetScenesCollectionSource].
+ Use this code if you want to find the scene path at a given tile in [TileMapLayer]:
+ [codeblocks]
+ [gdscript]
+ var source_id = tile_map_layer.get_cell_source_id(Vector2i(x, y))
+ if source_id &gt; -1:
+ var scene_source = tile_map_layer.tile_set.get_source(source_id)
+ if scene_source is TileSetScenesCollectionSource:
+ var alt_id = tile_map_layer.get_cell_alternative_tile(Vector2i(x, y))
+ # The assigned PackedScene.
+ var scene = scene_source.get_scene_tile_scene(alt_id)
+ [/gdscript]
+ [csharp]
+ int sourceId = tileMapLayer.GetCellSourceId(new Vector2I(x, y));
+ if (sourceId &gt; -1)
+ {
+ TileSetSource source = tileMapLayer.TileSet.GetSource(sourceId);
+ if (source is TileSetScenesCollectionSource sceneSource)
+ {
+ int altId = tileMapLayer.GetCellAlternativeTile(new Vector2I(x, y));
+ // The assigned PackedScene.
+ PackedScene scene = sceneSource.GetSceneTileScene(altId);
+ }
+ }
+ [/csharp]
+ [/codeblocks]
</description>
<tutorials>
</tutorials>