Files
godot-docs-l10n/classes/ru/class_tilesetscenescollectionsource.rst

234 lines
16 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_TileSetScenesCollectionSource:
TileSetScenesCollectionSource
=============================
**Наследует:** :ref:`TileSetSource<class_TileSetSource>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
Предоставляет набор сцен в виде плиток для ресурса :ref:`TileSet<class_TileSet>`.
.. rst-class:: classref-introduction-group
Описание
----------------
При размещении на :ref:`TileMapLayer<class_TileMapLayer>` плитки из **TileSetScenesCollectionSource** автоматически создают экземпляр связанной сцены в позиции ячейки в TileMapLayer.
Сцены создаются как дочерние элементы :ref:`TileMapLayer<class_TileMapLayer>` после того, как он попадает в дерево, в конце кадра (их создание откладывается). Если вы добавляете/удаляете плитку сцены в :ref:`TileMapLayer<class_TileMapLayer>`, которая уже находится внутри дерева, :ref:`TileMapLayer<class_TileMapLayer>` автоматически создаст/освободит сцену соответствующим образом.
\ **Примечание:** Все плитки сцены занимают один слот плитки и вместо этого используют альтернативный идентификатор плитки для определения индекса сцены. :ref:`TileSetSource.get_tiles_count()<class_TileSetSource_method_get_tiles_count>` всегда будет возвращать ``1``. Используйте :ref:`get_scene_tiles_count()<class_TileSetScenesCollectionSource_method_get_scene_tiles_count>` для получения количества сцен в **TileSetScenesCollectionSource**.
Используйте этот код, если вы хотите найти путь сцены на заданном тайле в :ref:`TileMapLayer<class_TileMapLayer>`:
.. tabs::
.. code-tab:: gdscript
var source_id = tile_map_layer.get_cell_source_id(Vector2i(x, y))
if source_id > -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)
.. code-tab:: csharp
int sourceId = tileMapLayer.GetCellSourceId(new Vector2I(x, y));
if (sourceId > -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);
}
}
.. rst-class:: classref-reftable-group
Методы
------------
.. table::
:widths: auto
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`create_scene_tile<class_TileSetScenesCollectionSource_method_create_scene_tile>`\ (\ packed_scene\: :ref:`PackedScene<class_PackedScene>`, id_override\: :ref:`int<class_int>` = -1\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_next_scene_tile_id<class_TileSetScenesCollectionSource_method_get_next_scene_tile_id>`\ (\ ) |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`get_scene_tile_display_placeholder<class_TileSetScenesCollectionSource_method_get_scene_tile_display_placeholder>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_scene_tile_id<class_TileSetScenesCollectionSource_method_get_scene_tile_id>`\ (\ index\: :ref:`int<class_int>`\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedScene<class_PackedScene>` | :ref:`get_scene_tile_scene<class_TileSetScenesCollectionSource_method_get_scene_tile_scene>`\ (\ id\: :ref:`int<class_int>`\ ) |const| |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_scene_tiles_count<class_TileSetScenesCollectionSource_method_get_scene_tiles_count>`\ (\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`bool<class_bool>` | :ref:`has_scene_tile_id<class_TileSetScenesCollectionSource_method_has_scene_tile_id>`\ (\ id\: :ref:`int<class_int>`\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`remove_scene_tile<class_TileSetScenesCollectionSource_method_remove_scene_tile>`\ (\ id\: :ref:`int<class_int>`\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_scene_tile_display_placeholder<class_TileSetScenesCollectionSource_method_set_scene_tile_display_placeholder>`\ (\ id\: :ref:`int<class_int>`, display_placeholder\: :ref:`bool<class_bool>`\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_scene_tile_id<class_TileSetScenesCollectionSource_method_set_scene_tile_id>`\ (\ id\: :ref:`int<class_int>`, new_id\: :ref:`int<class_int>`\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |void| | :ref:`set_scene_tile_scene<class_TileSetScenesCollectionSource_method_set_scene_tile_scene>`\ (\ id\: :ref:`int<class_int>`, packed_scene\: :ref:`PackedScene<class_PackedScene>`\ ) |
+---------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описания метода
------------------------------
.. _class_TileSetScenesCollectionSource_method_create_scene_tile:
.. rst-class:: classref-method
:ref:`int<class_int>` **create_scene_tile**\ (\ packed_scene\: :ref:`PackedScene<class_PackedScene>`, id_override\: :ref:`int<class_int>` = -1\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_create_scene_tile>`
Создает тайл на основе сцены из заданной сцены.
Возвращает новый сгенерированный уникальный идентификатор.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_get_next_scene_tile_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_next_scene_tile_id**\ (\ ) |const| :ref:`🔗<class_TileSetScenesCollectionSource_method_get_next_scene_tile_id>`
Возвращает идентификатор сцены, который вернет следующий вызов :ref:`create_scene_tile()<class_TileSetScenesCollectionSource_method_create_scene_tile>`.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_get_scene_tile_display_placeholder:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **get_scene_tile_display_placeholder**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_TileSetScenesCollectionSource_method_get_scene_tile_display_placeholder>`
Возвращает, отображает ли тайл-сцена с идентификатором ``id`` заполнитель в редакторе.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_get_scene_tile_id:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_scene_tile_id**\ (\ index\: :ref:`int<class_int>`\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_get_scene_tile_id>`
Возвращает идентификатор фрагмента сцены для фрагмента сцены по адресу ``index``.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_get_scene_tile_scene:
.. rst-class:: classref-method
:ref:`PackedScene<class_PackedScene>` **get_scene_tile_scene**\ (\ id\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_TileSetScenesCollectionSource_method_get_scene_tile_scene>`
Возвращает ресурс :ref:`PackedScene<class_PackedScene>` тайла-сцены с ``id``.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_get_scene_tiles_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_scene_tiles_count**\ (\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_get_scene_tiles_count>`
Возвращает количество плиток сцены, имеющихся в этом источнике TileSet.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_has_scene_tile_id:
.. rst-class:: classref-method
:ref:`bool<class_bool>` **has_scene_tile_id**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_has_scene_tile_id>`
Возвращает, имеет ли этот источник TileSet тайл-сцены с ``id``.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_remove_scene_tile:
.. rst-class:: classref-method
|void| **remove_scene_tile**\ (\ id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_remove_scene_tile>`
Удалить тайл-сцену с ``id``.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_set_scene_tile_display_placeholder:
.. rst-class:: classref-method
|void| **set_scene_tile_display_placeholder**\ (\ id\: :ref:`int<class_int>`, display_placeholder\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_set_scene_tile_display_placeholder>`
Устанавливает, должен ли тайл-сцена с ``id`` отображать заполнитель в редакторе. Это может быть полезно для сцен, которые не видны.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_set_scene_tile_id:
.. rst-class:: classref-method
|void| **set_scene_tile_id**\ (\ id\: :ref:`int<class_int>`, new_id\: :ref:`int<class_int>`\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_set_scene_tile_id>`
Изменяет идентификатор тайла-сцены с ``id`` на ``new_id``. Это завершится ошибкой, если уже есть тайл с идентификатором, равным ``new_id``.
.. rst-class:: classref-item-separator
----
.. _class_TileSetScenesCollectionSource_method_set_scene_tile_scene:
.. rst-class:: classref-method
|void| **set_scene_tile_scene**\ (\ id\: :ref:`int<class_int>`, packed_scene\: :ref:`PackedScene<class_PackedScene>`\ ) :ref:`🔗<class_TileSetScenesCollectionSource_method_set_scene_tile_scene>`
Назначает ресурс :ref:`PackedScene<class_PackedScene>` тайлу-сцене с ``id``. Это не сработает, если сцена не расширяет :ref:`CanvasItem<class_CanvasItem>`, поскольку для размещения сцены на :ref:`TileMapLayer<class_TileMapLayer>` необходимы свойства позиционирования.
.. |virtual| replace:: :abbr:`virtual (Этот метод обычно должен быть переопределен пользователем, чтобы иметь какой-либо эффект.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Этот метод не имеет побочных эффектов. Он не изменяет ни одну из переменных-членов экземпляра.)`
.. |vararg| replace:: :abbr:`vararg (Этот метод принимает любое количество аргументов после описанных здесь.)`
.. |constructor| replace:: :abbr:`constructor (Этот метод используется для создания типа.)`
.. |static| replace:: :abbr:`static (Этот метод не нуждается в вызове экземпляра, поэтому его можно вызвать напрямую, используя имя класса.)`
.. |operator| replace:: :abbr:`operator (Этот метод описывает допустимый оператор для использования с этим типом в качестве левого операнда.)`
.. |bitfield| replace:: :abbr:`BitField (Это значение является целым числом, составленным как битовая маска следующих флагов.)`
.. |void| replace:: :abbr:`void (Нет возвращаемого значения.)`