A singleton that manages the unique identifiers of all resources within a project.
Resource UIDs (Unique IDentifiers) allow the engine to keep references between resources intact, even if files are renamed or moved. They can be accessed with [code]uid://[/code]. [ResourceUID] keeps track of all registered resource UIDs in a project, generates new UIDs, and converts between their string and integer representations.
Adds a new UID value which is mapped to the given resource path. Fails with an error if the UID already exists, so be sure to check [method has_id] beforehand, or use [method set_id] instead.
Generates a random resource UID which is guaranteed to be unique within the list of currently loaded UIDs. In order for this UID to be registered, you must call [method add_id] or [method set_id].
Like [method create_id], but the UID is seeded with the provided [param path] and project name. UIDs generated for that path will be always the same within the current project.
Returns a path, converting [param path_or_uid] if necessary. Prints an error if provided an invalid UID.
Returns the path that the given UID value refers to. Fails with an error if the UID does not exist, so be sure to check [method has_id] beforehand.
Returns whether the given UID value is known to the cache.
Converts the given UID to a [code]uid://[/code] string value.
Converts the provided resource [param path] to a UID. Returns the unchanged path if it has no associated UID.
Removes a loaded UID value from the cache. Fails with an error if the UID does not exist, so be sure to check [method has_id] beforehand.
Updates the resource path of an existing UID. Fails with an error if the UID does not exist, so be sure to check [method has_id] beforehand, or use [method add_id] instead.
Extracts the UID value from the given [code]uid://[/code] string.
Converts the provided [param uid] to a path. Prints an error if the UID is invalid.
The value to use for an invalid UID, for example if the resource could not be loaded. Its text representation is [code]uid://<invalid>[/code].