Fix some script bugs

This commit is contained in:
2026-06-07 18:47:34 -05:00
parent ed0420fdce
commit f8c9d33df2
8 changed files with 60 additions and 32 deletions
+6 -1
View File
@@ -31,7 +31,12 @@ interface AssetBatch {
/** `true` if any entry is in an `ERROR` state. */
readonly hasError: boolean;
/**
* Blocks until every entry is loaded.
* Returns a Promise that resolves when all entries have loaded, or rejects
* if any entry errors. Use with `await`.
*/
loaded(): Promise<void>;
/**
* Blocks (spin-waits) until every entry is loaded.
* Returns `this` for chaining.
* @throws If any entry fails to load.
*/
+6 -1
View File
@@ -33,7 +33,12 @@ interface AssetEntry {
/** Event proxy — subscribe up to 4 callbacks for when loading fails. */
readonly onError: AssetEventProxy;
/**
* Blocks until the entry reaches `LOADED` (or `ERROR`).
* Returns a Promise that resolves when the entry is loaded, or rejects on
* error. Use with `await`.
*/
loaded(): Promise<void>;
/**
* Blocks (spin-waits) until the entry reaches `LOADED` (or `ERROR`).
* Returns `this` for chaining.
* @throws If the load fails.
*/
+23
View File
@@ -0,0 +1,23 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
/**
* An event proxy with up to 4 subscribable callback slots (indices 03).
* Assign a function to subscribe; assign `null` to unsubscribe.
*
* @example
* assets.onLoaded[0] = () => { Console.print('all loaded'); };
* assets.onLoaded[0] = null; // unsubscribe
*/
interface AssetEventProxy {
0: (() => void) | null;
1: (() => void) | null;
2: (() => void) | null;
3: (() => void) | null;
/** Number of available slots (always 4). */
readonly length: number;
}