Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
TileSetScenesCollectionSource
Наследует: TileSetSource < Resource < RefCounted < Object
Предоставляет набор сцен в виде плиток для ресурса TileSet.
Описание
При размещении на TileMapLayer плитки из TileSetScenesCollectionSource автоматически создают экземпляр связанной сцены в позиции ячейки в TileMapLayer.
Сцены создаются как дочерние элементы TileMapLayer после того, как он попадает в дерево, в конце кадра (их создание откладывается). Если вы добавляете/удаляете плитку сцены в TileMapLayer, которая уже находится внутри дерева, TileMapLayer автоматически создаст/освободит сцену соответствующим образом.
Примечание: Все плитки сцены занимают один слот плитки и вместо этого используют альтернативный идентификатор плитки для определения индекса сцены. TileSetSource.get_tiles_count() всегда будет возвращать 1. Используйте get_scene_tiles_count() для получения количества сцен в TileSetScenesCollectionSource.
Используйте этот код, если вы хотите найти путь сцены на заданном тайле в TileMapLayer:
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)
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);
}
}
Методы
create_scene_tile(packed_scene: PackedScene, id_override: int = -1) |
|
get_next_scene_tile_id() const |
|
get_scene_tile_display_placeholder(id: int) const |
|
get_scene_tile_id(index: int) |
|
get_scene_tile_scene(id: int) const |
|
has_scene_tile_id(id: int) |
|
void |
remove_scene_tile(id: int) |
void |
set_scene_tile_display_placeholder(id: int, display_placeholder: bool) |
void |
set_scene_tile_id(id: int, new_id: int) |
void |
set_scene_tile_scene(id: int, packed_scene: PackedScene) |
Описания метода
int create_scene_tile(packed_scene: PackedScene, id_override: int = -1) 🔗
Создает тайл на основе сцены из заданной сцены.
Возвращает новый сгенерированный уникальный идентификатор.
int get_next_scene_tile_id() const 🔗
Возвращает идентификатор сцены, который вернет следующий вызов create_scene_tile().
bool get_scene_tile_display_placeholder(id: int) const 🔗
Возвращает, отображает ли тайл-сцена с идентификатором id заполнитель в редакторе.
int get_scene_tile_id(index: int) 🔗
Возвращает идентификатор фрагмента сцены для фрагмента сцены по адресу index.
PackedScene get_scene_tile_scene(id: int) const 🔗
Возвращает ресурс PackedScene тайла-сцены с id.
Возвращает количество плиток сцены, имеющихся в этом источнике TileSet.
bool has_scene_tile_id(id: int) 🔗
Возвращает, имеет ли этот источник TileSet тайл-сцены с id.
void remove_scene_tile(id: int) 🔗
Удалить тайл-сцену с id.
void set_scene_tile_display_placeholder(id: int, display_placeholder: bool) 🔗
Устанавливает, должен ли тайл-сцена с id отображать заполнитель в редакторе. Это может быть полезно для сцен, которые не видны.
void set_scene_tile_id(id: int, new_id: int) 🔗
Изменяет идентификатор тайла-сцены с id на new_id. Это завершится ошибкой, если уже есть тайл с идентификатором, равным new_id.
void set_scene_tile_scene(id: int, packed_scene: PackedScene) 🔗
Назначает ресурс PackedScene тайлу-сцене с id. Это не сработает, если сцена не расширяет CanvasItem, поскольку для размещения сцены на TileMapLayer необходимы свойства позиционирования.