ResourceUID

Наследует: Object

Синглтон, управляющий уникальными идентификаторами всех ресурсов в проекте.

Описание

UID ресурсов (Уникальные Идентификаторы) позволяют движку сохранять ссылки между ресурсами нетронутыми, даже если файлы переименованы или перемещены. К ним можно получить доступ с помощью uid://.

ResourceUID отслеживает все зарегистрированные UID ресурсов в проекте, генерирует новые UID и преобразует их между строковыми и целочисленными представлениями.

Методы

void

add_id(id: int, path: String)

int

create_id()

int

create_id_for_path(path: String)

String

ensure_path(path_or_uid: String) static

String

get_id_path(id: int) const

bool

has_id(id: int) const

String

id_to_text(id: int) const

String

path_to_uid(path: String) static

void

remove_id(id: int)

void

set_id(id: int, path: String)

int

text_to_id(text_id: String) const

String

uid_to_path(uid: String) static


Константы

INVALID_ID = -1 🔗

Значение, которое следует использовать для недопустимого UID, например, если ресурс не удалось загрузить.

Его текстовое представление — uid://<invalid>.


Описания метода

void add_id(id: int, path: String) 🔗

Добавляет новое значение UID, которое сопоставляется с указанным путем ресурса.

Выполняется с ошибкой, если UID уже существует, поэтому обязательно проверьте has_id() заранее или используйте вместо него set_id().


int create_id() 🔗

Генерирует случайный UID ресурса, который гарантированно будет уникальным в списке загруженных в данный момент UID.

Чтобы зарегистрировать этот UID, необходимо вызвать add_id() или set_id().


int create_id_for_path(path: String) 🔗

Как и create_id(), но UID заполняется предоставленным path и именем проекта. UID сгенерированные для этого пути, всегда будут одинаковыми в текущем проекте.


String ensure_path(path_or_uid: String) static 🔗

Returns a path, converting path_or_uid if necessary. Fails and returns an empty string if an invalid UID is provided.


String get_id_path(id: int) const 🔗

Возвращает путь, на который ссылается заданное значение UID.

Выполняется с ошибкой, если UID не существует, поэтому обязательно проверьте has_id() заранее.


bool has_id(id: int) const 🔗

Возвращает, известно ли кэшу заданное значение UID.


String id_to_text(id: int) const 🔗

Преобразует заданный UID в строковое значение uid://.


String path_to_uid(path: String) static 🔗

Преобразует предоставленный ресурс path в UID. Возвращает неизмененный путь, если у него нет связанного UID.


void remove_id(id: int) 🔗

Удаляет загруженное значение UID из кэша.

Выдает ошибку, если UID не существует, поэтому обязательно проверьте has_id() заранее.


void set_id(id: int, path: String) 🔗

Обновляет путь к ресурсу существующего UID.

Выполняется с ошибкой, если UID не существует, поэтому обязательно проверьте has_id() заранее или используйте вместо него add_id().


int text_to_id(text_id: String) const 🔗

Извлекает значение UID из заданной строки uid://.


String uid_to_path(uid: String) static 🔗

Преобразует предоставленный uid в путь. Выводит ошибку, если UID недействителен.