* Preload an object assets in background.
(
sceneName: string,
objectName: string,
usedResources: Array<ResourceReference>
)
| 436 | * Preload an object assets in background. |
| 437 | */ |
| 438 | async loadObjectResources( |
| 439 | sceneName: string, |
| 440 | objectName: string, |
| 441 | usedResources: Array<ResourceReference> |
| 442 | ): Promise<void> { |
| 443 | debugLogger.log( |
| 444 | `Loading of resources for object ${objectName} was requested.` |
| 445 | ); |
| 446 | const objectResourceLoadingQueue = |
| 447 | this.getObjectResourceLoadingQueue(sceneName); |
| 448 | objectResourceLoadingQueue.registerResources(objectName, usedResources); |
| 449 | const task = objectResourceLoadingQueue.enqueue(objectName); |
| 450 | objectResourceLoadingQueue.loadAllTasksInBackground(); |
| 451 | return new Promise<void>((resolve, reject) => { |
| 452 | if (!task) { |
| 453 | debugLogger.log( |
| 454 | `Loading of resources for object ${objectName} was immediately resolved.` |
| 455 | ); |
| 456 | resolve(); |
| 457 | return; |
| 458 | } |
| 459 | task.registerCallback(() => { |
| 460 | debugLogger.log( |
| 461 | `Loading of resources for object ${objectName} just finished.` |
| 462 | ); |
| 463 | resolve(); |
| 464 | }); |
| 465 | }); |
| 466 | } |
| 467 | |
| 468 | private getObjectResourceLoadingQueue(sceneName: string) { |
| 469 | let objectResourceLoadingQueue = |
no test coverage detected