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

create_scene_tile(packed_scene: PackedScene, id_override: int = -1)

int

get_next_scene_tile_id() const

bool

get_scene_tile_display_placeholder(id: int) const

int

get_scene_tile_id(index: int)

PackedScene

get_scene_tile_scene(id: int) const

int

get_scene_tiles_count()

bool

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.


int get_scene_tiles_count() 🔗

Возвращает количество плиток сцены, имеющихся в этом источнике 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 необходимы свойства позиционирования.