@defold-typescript/types 0.39.0 → 0.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/api-availability.json +4024 -716
  2. package/api-migrations.json +27 -0
  3. package/api-signatures.json +18118 -10264
  4. package/api-targets.json +448 -11
  5. package/examples/translations.json +619 -148
  6. package/fixtures/messages_doc.json +96 -0
  7. package/generated/b2d.d.ts +680 -4
  8. package/generated/b2d_body.d.ts +29 -103
  9. package/generated/b2d_chain.d.ts +5 -6
  10. package/generated/b2d_fixture.d.ts +34 -38
  11. package/generated/b2d_joint.d.ts +503 -25
  12. package/generated/b2d_shape.d.ts +199 -14
  13. package/generated/b2d_world.d.ts +57 -63
  14. package/generated/buffer.d.ts +33 -29
  15. package/generated/builtin-messages.d.ts +7 -1
  16. package/generated/bullet3d.d.ts +91 -0
  17. package/generated/bullet3d_collision_object.d.ts +433 -0
  18. package/generated/bullet3d_constraint.d.ts +818 -0
  19. package/generated/bullet3d_rigid_body.d.ts +429 -0
  20. package/generated/bullet3d_shape.d.ts +123 -0
  21. package/generated/bullet3d_world.d.ts +492 -0
  22. package/generated/camera.d.ts +31 -34
  23. package/generated/collectionfactory.d.ts +26 -27
  24. package/generated/collectionproxy.d.ts +22 -6
  25. package/generated/compute.d.ts +12 -238
  26. package/generated/crash.d.ts +24 -10
  27. package/generated/editor-vm/http.d.ts +90 -7
  28. package/generated/editor-vm/image.d.ts +7 -7
  29. package/generated/editor-vm/json.d.ts +11 -0
  30. package/generated/editor-vm/localization.d.ts +7 -7
  31. package/generated/editor-vm/tilemap_tiles.d.ts +56 -10
  32. package/generated/editor-vm/zip.d.ts +28 -0
  33. package/generated/editor.d.ts +1496 -430
  34. package/generated/factory.d.ts +21 -25
  35. package/generated/font.d.ts +64 -22
  36. package/generated/go.d.ts +243 -186
  37. package/generated/graphics.d.ts +374 -84
  38. package/generated/gui.d.ts +282 -492
  39. package/generated/html5.d.ts +5 -3
  40. package/generated/http.d.ts +31 -36
  41. package/generated/image.d.ts +127 -85
  42. package/generated/json.d.ts +34 -16
  43. package/generated/kinds/gui-script.d.ts +8 -0
  44. package/generated/kinds/render-script.d.ts +8 -0
  45. package/generated/kinds/script.d.ts +8 -0
  46. package/generated/label.d.ts +77 -7
  47. package/generated/liveupdate.d.ts +13 -10
  48. package/generated/material.d.ts +312 -360
  49. package/generated/model.d.ts +72 -42
  50. package/generated/particlefx.d.ts +19 -28
  51. package/generated/physics.d.ts +378 -144
  52. package/generated/profiler.d.ts +14 -24
  53. package/generated/render.d.ts +294 -297
  54. package/generated/resource.d.ts +753 -641
  55. package/generated/socket.d.ts +131 -134
  56. package/generated/sound.d.ts +65 -34
  57. package/generated/sprite.d.ts +39 -17
  58. package/generated/sys.d.ts +237 -182
  59. package/generated/tilemap.d.ts +21 -16
  60. package/generated/timer.d.ts +34 -21
  61. package/generated/versions/defold-1.12.4/b2d_body.d.ts +0 -7
  62. package/generated/versions/defold-1.12.4/buffer.d.ts +18 -17
  63. package/generated/versions/defold-1.12.4/camera.d.ts +23 -23
  64. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +21 -19
  65. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +2 -2
  66. package/generated/versions/defold-1.12.4/crash.d.ts +2 -2
  67. package/generated/versions/defold-1.12.4/factory.d.ts +15 -16
  68. package/generated/versions/defold-1.12.4/go.d.ts +15 -17
  69. package/generated/versions/defold-1.12.4/gui.d.ts +111 -193
  70. package/generated/versions/defold-1.12.4/html5.d.ts +4 -2
  71. package/generated/versions/defold-1.12.4/http.d.ts +4 -15
  72. package/generated/versions/defold-1.12.4/image.d.ts +38 -46
  73. package/generated/versions/defold-1.12.4/index.d.ts +2 -0
  74. package/generated/versions/defold-1.12.4/json.d.ts +10 -6
  75. package/generated/versions/defold-1.12.4/label.d.ts +2 -3
  76. package/generated/versions/defold-1.12.4/liveupdate.d.ts +5 -3
  77. package/generated/versions/defold-1.12.4/model.d.ts +34 -13
  78. package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
  79. package/generated/versions/defold-1.12.4/physics.d.ts +82 -78
  80. package/generated/versions/defold-1.12.4/profiler.d.ts +3 -6
  81. package/generated/versions/defold-1.12.4/render.d.ts +160 -132
  82. package/generated/versions/defold-1.12.4/resource.d.ts +212 -209
  83. package/generated/versions/defold-1.12.4/socket.d.ts +45 -61
  84. package/generated/versions/defold-1.12.4/sound.d.ts +11 -11
  85. package/generated/versions/defold-1.12.4/sprite.d.ts +24 -6
  86. package/generated/versions/defold-1.12.4/sys.d.ts +45 -68
  87. package/generated/versions/defold-1.12.4/tilemap.d.ts +18 -11
  88. package/generated/versions/defold-1.12.4/timer.d.ts +5 -3
  89. package/generated/versions/defold-1.12.4/vmath.d.ts +5 -26
  90. package/generated/versions/defold-1.12.4/window.d.ts +1 -16
  91. package/generated/versions/defold-1.13.0/b2d_body.d.ts +10 -55
  92. package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +25 -25
  93. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +188 -5
  94. package/generated/versions/defold-1.13.0/b2d_world.d.ts +16 -10
  95. package/generated/versions/defold-1.13.0/buffer.d.ts +18 -17
  96. package/generated/versions/defold-1.13.0/camera.d.ts +27 -27
  97. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +21 -19
  98. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
  99. package/generated/versions/defold-1.13.0/compute.d.ts +1 -70
  100. package/generated/versions/defold-1.13.0/crash.d.ts +2 -2
  101. package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +3 -3
  102. package/generated/versions/defold-1.13.0/editor.d.ts +34 -24
  103. package/generated/versions/defold-1.13.0/factory.d.ts +15 -16
  104. package/generated/versions/defold-1.13.0/go.d.ts +15 -17
  105. package/generated/versions/defold-1.13.0/graphics.d.ts +121 -37
  106. package/generated/versions/defold-1.13.0/gui.d.ts +111 -193
  107. package/generated/versions/defold-1.13.0/html5.d.ts +4 -2
  108. package/generated/versions/defold-1.13.0/http.d.ts +4 -15
  109. package/generated/versions/defold-1.13.0/image.d.ts +38 -46
  110. package/generated/versions/defold-1.13.0/index.d.ts +2 -0
  111. package/generated/versions/defold-1.13.0/json.d.ts +10 -6
  112. package/generated/versions/defold-1.13.0/label.d.ts +2 -3
  113. package/generated/versions/defold-1.13.0/liveupdate.d.ts +7 -5
  114. package/generated/versions/defold-1.13.0/material.d.ts +69 -107
  115. package/generated/versions/defold-1.13.0/model.d.ts +34 -13
  116. package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
  117. package/generated/versions/defold-1.13.0/physics.d.ts +82 -78
  118. package/generated/versions/defold-1.13.0/profiler.d.ts +3 -6
  119. package/generated/versions/defold-1.13.0/render.d.ts +160 -132
  120. package/generated/versions/defold-1.13.0/resource.d.ts +217 -210
  121. package/generated/versions/defold-1.13.0/socket.d.ts +45 -61
  122. package/generated/versions/defold-1.13.0/sound.d.ts +11 -11
  123. package/generated/versions/defold-1.13.0/sprite.d.ts +24 -6
  124. package/generated/versions/defold-1.13.0/sys.d.ts +45 -68
  125. package/generated/versions/defold-1.13.0/tilemap.d.ts +18 -11
  126. package/generated/versions/defold-1.13.0/timer.d.ts +5 -3
  127. package/generated/versions/defold-1.13.0/vmath.d.ts +5 -26
  128. package/generated/versions/defold-1.13.0/window.d.ts +1 -16
  129. package/generated/versions/defold-1.13.1/b2d.d.ts +33 -0
  130. package/generated/versions/defold-1.13.1/b2d_body.d.ts +636 -0
  131. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +106 -0
  132. package/generated/versions/defold-1.13.1/b2d_fixture.d.ts +157 -0
  133. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +823 -0
  134. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +400 -0
  135. package/generated/versions/defold-1.13.1/b2d_world.d.ts +320 -0
  136. package/generated/versions/defold-1.13.1/buffer.d.ts +189 -0
  137. package/generated/versions/defold-1.13.1/camera.d.ts +303 -0
  138. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +151 -0
  139. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +93 -0
  140. package/generated/versions/defold-1.13.1/compute.d.ts +237 -0
  141. package/generated/versions/defold-1.13.1/crash.d.ts +143 -0
  142. package/generated/versions/defold-1.13.1/editor-vm/http.d.ts +56 -0
  143. package/generated/versions/defold-1.13.1/editor-vm/image.d.ts +48 -0
  144. package/generated/versions/defold-1.13.1/editor-vm/json.d.ts +10 -0
  145. package/generated/versions/defold-1.13.1/editor-vm/localization.d.ts +42 -0
  146. package/generated/versions/defold-1.13.1/editor-vm/tilemap_tiles.d.ts +80 -0
  147. package/generated/versions/defold-1.13.1/editor-vm/zip.d.ts +10 -0
  148. package/generated/versions/defold-1.13.1/editor-vm/zlib.d.ts +24 -0
  149. package/generated/versions/defold-1.13.1/editor.d.ts +1121 -0
  150. package/generated/versions/defold-1.13.1/factory.d.ts +124 -0
  151. package/generated/versions/defold-1.13.1/font.d.ts +81 -0
  152. package/generated/versions/defold-1.13.1/go.d.ts +1107 -0
  153. package/generated/versions/defold-1.13.1/graphics.d.ts +411 -0
  154. package/generated/versions/defold-1.13.1/gui.d.ts +2353 -0
  155. package/generated/versions/defold-1.13.1/html5.d.ts +55 -0
  156. package/generated/versions/defold-1.13.1/http.d.ts +77 -0
  157. package/generated/versions/defold-1.13.1/image.d.ts +131 -0
  158. package/generated/versions/defold-1.13.1/index.d.ts +57 -0
  159. package/generated/versions/defold-1.13.1/json.d.ts +80 -0
  160. package/generated/versions/defold-1.13.1/kinds/editor-script.d.ts +14 -0
  161. package/generated/versions/defold-1.13.1/label.d.ts +93 -0
  162. package/generated/versions/defold-1.13.1/liveupdate.d.ts +142 -0
  163. package/generated/versions/defold-1.13.1/material.d.ts +408 -0
  164. package/generated/versions/defold-1.13.1/model.d.ts +272 -0
  165. package/generated/versions/defold-1.13.1/msg.d.ts +10 -0
  166. package/generated/versions/defold-1.13.1/particlefx.d.ts +163 -0
  167. package/generated/versions/defold-1.13.1/physics.d.ts +559 -0
  168. package/generated/versions/defold-1.13.1/profiler.d.ts +235 -0
  169. package/generated/versions/defold-1.13.1/render.d.ts +1190 -0
  170. package/generated/versions/defold-1.13.1/resource.d.ts +1523 -0
  171. package/generated/versions/defold-1.13.1/socket.d.ts +784 -0
  172. package/generated/versions/defold-1.13.1/sound.d.ts +292 -0
  173. package/generated/versions/defold-1.13.1/sprite.d.ts +175 -0
  174. package/generated/versions/defold-1.13.1/sys.d.ts +678 -0
  175. package/generated/versions/defold-1.13.1/tilemap.d.ts +208 -0
  176. package/generated/versions/defold-1.13.1/timer.d.ts +125 -0
  177. package/generated/versions/defold-1.13.1/types.d.ts +61 -0
  178. package/generated/versions/defold-1.13.1/vmath.d.ts +774 -0
  179. package/generated/versions/defold-1.13.1/window.d.ts +183 -0
  180. package/generated/versions/defold-1.13.1/zlib.d.ts +41 -0
  181. package/generated/vmath.d.ts +6 -26
  182. package/generated/window.d.ts +71 -71
  183. package/identity-vocabulary.json +561 -0
  184. package/index.d.ts +8 -0
  185. package/package.json +13 -2
  186. package/scripts/example-store-io.ts +12 -1
  187. package/scripts/extension-goldens.ts +1 -0
  188. package/scripts/fidelity-baseline.json +146 -46
  189. package/scripts/generate-api-availability.ts +90 -12
  190. package/scripts/generate-api-signatures.ts +14 -3
  191. package/scripts/import-defold-release.ts +85 -24
  192. package/scripts/prose-constants.ts +157 -0
  193. package/scripts/regen.ts +396 -78
  194. package/scripts/shared-handle-methods.ts +53 -0
  195. package/scripts/signature-store-fs.ts +1 -0
  196. package/scripts/sync-api-docs.ts +16 -5
  197. package/src/api-availability.ts +0 -0
  198. package/src/api-doc.ts +201 -3
  199. package/src/api-identity.ts +252 -0
  200. package/src/component-properties.d.ts +33 -0
  201. package/src/core-types.ts +28 -3
  202. package/src/correction-pins.ts +49 -0
  203. package/src/custom-messages.d.ts +4 -3
  204. package/src/doc-comment.ts +139 -23
  205. package/src/doc-corrections.ts +108 -0
  206. package/src/editor-vm-globals.d.ts +5 -2
  207. package/src/emit-dts.ts +2474 -281
  208. package/src/emit-messages.ts +52 -0
  209. package/src/engine-globals.d.ts +2 -2
  210. package/src/example-store.ts +125 -14
  211. package/src/field-correction-coverage.ts +204 -0
  212. package/src/fnv1a.ts +16 -0
  213. package/src/go-overloads.d.ts +33 -13
  214. package/src/index-base-table.ts +145 -0
  215. package/src/index-slot-classifications.ts +588 -0
  216. package/src/index.ts +39 -2
  217. package/src/library-index-slot-classifications.ts +332 -0
  218. package/src/lifecycle.ts +61 -199
  219. package/src/luals-type-expr.ts +354 -0
  220. package/src/msg-overloads.d.ts +0 -1
  221. package/src/param-correction-provenance.ts +64 -0
  222. package/src/return-correction-provenance.ts +58 -16
  223. package/src/script-api.ts +3 -1
  224. package/src/sys-overloads.d.ts +48 -0
  225. package/src/vmath-overloads.d.ts +27 -1
  226. package/src/window-event-guard.d.ts +6 -9
  227. package/url-parameters.json +1 -2
@@ -18,7 +18,9 @@ declare global {
18
18
  * const res = html5.run("10 + 20"); // returns the string "30"
19
19
  * print(res);
20
20
  * const res_num = tonumber(res); // convert to number
21
- * print(res_num - 20); // prints 10
21
+ * if (res_num !== undefined) {
22
+ * print(res_num - 20); // prints 10
23
+ * }
22
24
  * ```
23
25
  */
24
26
  function run(code: string): string;
@@ -31,7 +33,7 @@ declare global {
31
33
  * @param callback - The interaction callback. Pass an empty function or `nil` if you no longer wish to receive callbacks.
32
34
  *
33
35
  * `self`
34
- * object The calling script
36
+ * script_instance The calling script instance
35
37
  * @example
36
38
  * ```ts
37
39
  * function on_interaction(self: unknown) {
@@ -46,7 +48,7 @@ declare global {
46
48
  * });
47
49
  * ```
48
50
  */
49
- function set_interaction_listener(callback?: (self: unknown) => void): void;
51
+ function set_interaction_listener(callback: ((self: unknown) => void) | undefined): void;
50
52
  }
51
53
  }
52
54
 
@@ -1,9 +1,36 @@
1
1
  /** @noSelfInFile */
2
+ import type { Hash } from "../src/core-types";
3
+
2
4
  declare global {
3
5
  /**
4
6
  * Functions for performing HTTP and HTTPS requests.
5
7
  */
6
8
  namespace http {
9
+ /**
10
+ * HTTP request options
11
+ */
12
+ interface request_options {
13
+ /**
14
+ * timeout in seconds
15
+ */
16
+ timeout?: number;
17
+ /**
18
+ * absolute destination path; overwritten only for status 200
19
+ */
20
+ path?: string;
21
+ /**
22
+ * do not return cached data for status 304; unavailable on HTML5
23
+ */
24
+ ignore_cache?: boolean;
25
+ /**
26
+ * use chunked transfer encoding for HTTPS requests larger than 16 KB; defaults to true and is unavailable on HTML5
27
+ */
28
+ chunked_transfer?: boolean;
29
+ /**
30
+ * report transferred and total byte counts to the callback
31
+ */
32
+ report_progress?: boolean;
33
+ }
7
34
  /**
8
35
  * Perform a HTTP/HTTPS request.
9
36
  * If no timeout value is passed, the configuration value "network.http_timeout" is used. If that is not set, the timeout value is `0` (which blocks indefinitely).
@@ -13,44 +40,12 @@ declare global {
13
40
  * @param callback - response callback function
14
41
  *
15
42
  * `self`
16
- * object The script instance
43
+ * script_instance The current script instance
17
44
  * `id`
18
45
  * hash Internal message identifier. Do not use!
19
- * `response`
20
- * table The response data. Contains the fields:
21
- *
22
- * - number `status`: the status of the response
23
- *
24
- * - string `response`: the response data (if not saved on disc)
25
- *
26
- * - table `headers`: all the returned headers (if status is 200 or 206)
27
- *
28
- * - string `path`: the stored path (if saved to disc)
29
- *
30
- * - string `error`: if any unforeseen errors occurred (e.g. file I/O)
31
- *
32
- * - number `bytes_received`: the amount of bytes received/sent for a request, only if option `report_progress` is true
33
- *
34
- * - number `bytes_total`: the total amount of bytes for a request, only if option `report_progress` is true
35
- *
36
- * - number `range_start`: the start offset into the requested file
37
- *
38
- * - number `range_end`: the end offset into the requested file (inclusive)
39
- *
40
- * - number `document_size`: the full size of the requested file
41
46
  * @param headers - optional table with custom headers
42
47
  * @param post_data - optional data to send
43
- * @param options - optional table with request parameters. Supported entries:
44
- *
45
- * - number `timeout`: timeout in seconds
46
- *
47
- * - string `path`: path on disc where to download the file. Only overwrites the path if status is 200. Path should be absolute
48
- *
49
- * - boolean `ignore_cache`: don't return cached data if we get a 304. Not available in HTML5 build
50
- *
51
- * - boolean `chunked_transfer`: use chunked transfer encoding for https requests larger than 16kb. Defaults to true. Not available in HTML5 build
52
- *
53
- * - boolean `report_progress`: when it is true, the amount of bytes sent and/or received for a request will be passed into the callback function
48
+ * @param options - optional request options
54
49
  * @example
55
50
  * ```ts
56
51
  * function update_my_progress_bar(self: unknown, fraction: number) {
@@ -65,7 +60,7 @@ declare global {
65
60
  * "http://www.google.com",
66
61
  * "GET",
67
62
  * (self, _id, response) => {
68
- * if (response.bytes_total !== undefined) {
63
+ * if (response.bytes_received !== undefined && response.bytes_total !== undefined) {
69
64
  * update_my_progress_bar(self, response.bytes_received / response.bytes_total);
70
65
  * } else {
71
66
  * print(response.status);
@@ -81,7 +76,7 @@ declare global {
81
76
  * });
82
77
  * ```
83
78
  */
84
- function request(url: string, method: string, callback: (self: unknown, id: unknown, response: unknown) => void, headers?: LuaMap<string, string>, post_data?: string, options?: { timeout?: number; path?: string; ignore_cache?: boolean; chunked_transfer?: boolean; report_progress?: boolean }): void;
79
+ function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_received?: number; bytes_total?: number; range_start?: number; range_end?: number; document_size?: number }) => void, headers?: LuaMap<string, string> | Record<string, string>, post_data?: string, options?: http.request_options): void;
85
80
  }
86
81
  }
87
82
 
@@ -7,132 +7,174 @@ declare global {
7
7
  */
8
8
  namespace image {
9
9
  /**
10
- * luminance image type
10
+ * ASTC image header
11
11
  */
12
- const TYPE_LUMINANCE: number & { readonly __brand: "image.TYPE_LUMINANCE" };
12
+ interface astc_header {
13
+ /**
14
+ * Image width.
15
+ */
16
+ width: number;
17
+ /**
18
+ * Image height.
19
+ */
20
+ height: number;
21
+ /**
22
+ * Image depth.
23
+ */
24
+ depth: number;
25
+ /**
26
+ * Block size on the x-axis.
27
+ */
28
+ block_size_x: number;
29
+ /**
30
+ * Block size on the y-axis.
31
+ */
32
+ block_size_y: number;
33
+ /**
34
+ * Block size on the z-axis.
35
+ */
36
+ block_size_z: number;
37
+ }
13
38
  /**
14
- * luminance image type
39
+ * Loaded buffer image data
15
40
  */
16
- const TYPE_LUMINANCE_ALPHA: number & { readonly __brand: "image.TYPE_LUMINANCE_ALPHA" };
41
+ interface load_buffer_result {
42
+ /**
43
+ * Image width.
44
+ */
45
+ width: number;
46
+ /**
47
+ * Image height.
48
+ */
49
+ height: number;
50
+ /**
51
+ * Image type.
52
+ */
53
+ type: image.TYPE;
54
+ /**
55
+ * Script buffer containing the decompressed image data.
56
+ */
57
+ buffer: Opaque<"buffer">;
58
+ }
17
59
  /**
18
- * RGB image type
60
+ * Image loading options
19
61
  */
20
- const TYPE_RGB: number & { readonly __brand: "image.TYPE_RGB" };
62
+ interface load_options {
63
+ /**
64
+ * Whether to premultiply alpha into the color components. Defaults to `false`.
65
+ */
66
+ premultiply_alpha?: boolean;
67
+ /**
68
+ * Whether to flip the image contents vertically. Defaults to `false`.
69
+ */
70
+ flip_vertically?: boolean;
71
+ }
21
72
  /**
22
- * RGBA image type
73
+ * Loaded string image data
23
74
  */
24
- const TYPE_RGBA: number & { readonly __brand: "image.TYPE_RGBA" };
75
+ interface load_result {
76
+ /**
77
+ * Image width.
78
+ */
79
+ width: number;
80
+ /**
81
+ * Image height.
82
+ */
83
+ height: number;
84
+ /**
85
+ * Image type.
86
+ */
87
+ type: image.TYPE;
88
+ /**
89
+ * Raw image data.
90
+ */
91
+ buffer: string;
92
+ }
93
+ type TYPE = typeof image.TYPE_RGB | typeof image.TYPE_RGBA | typeof image.TYPE_LUMINANCE | typeof image.TYPE_LUMINANCE_ALPHA;
94
+ /**
95
+ * Luminance image type.
96
+ */
97
+ const TYPE_LUMINANCE: string & { readonly __brand: "image.TYPE_LUMINANCE" };
98
+ /**
99
+ * Luminance-alpha image type.
100
+ */
101
+ const TYPE_LUMINANCE_ALPHA: string & { readonly __brand: "image.TYPE_LUMINANCE_ALPHA" };
102
+ /**
103
+ * RGB image type.
104
+ */
105
+ const TYPE_RGB: string & { readonly __brand: "image.TYPE_RGB" };
106
+ /**
107
+ * RGBA image type.
108
+ */
109
+ const TYPE_RGBA: string & { readonly __brand: "image.TYPE_RGBA" };
25
110
  /**
26
111
  * get the header of an .astc buffer
27
112
  *
28
113
  * @param buffer - .astc file data buffer
29
- * @returns header or `nil` if buffer is not a valid .astc. The header has these fields:
30
- *
31
- * - number `width`: image width
32
- *
33
- * - number `height`: image height
34
- *
35
- * - number `depth`: image depth
36
- *
37
- * - number `block_size_x`: block size x
38
- *
39
- * - number `block_size_y`: block size y
40
- *
41
- * - number `block_size_z`: block size z
114
+ * @returns header, or `nil` if the buffer is not a valid ASTC image
42
115
  * @example
43
116
  * ```ts
44
117
  * // How to get the block size and dimensions from a .astc file
45
118
  * const [s] = sys.load_resource("/assets/cat.astc");
46
- * const header = image.get_astc_header(s);
47
- * pprint(s);
119
+ * if (s !== undefined) {
120
+ * const header = image.get_astc_header(s);
121
+ * pprint(s);
122
+ * }
48
123
  * ```
49
124
  */
50
- function get_astc_header(buffer: string): { width: number; height: number; depth: number; block_size_x: number; block_size_y: number; block_size_z: number } | undefined;
125
+ function get_astc_header(buffer: string): image.astc_header | undefined;
51
126
  /**
52
127
  * Load image (PNG or JPEG) from buffer.
53
128
  *
54
129
  * @param buffer - image data buffer
55
- * @param options - An optional table containing parameters for loading the image. Supported entries:
56
- *
57
- * `premultiply_alpha`
58
- * boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
59
- * `flip_vertically`
60
- * boolean True if the image contents should be flipped vertically. Defaults to `false`.
61
- * @returns object or `nil` if loading fails. The object is a table with the following fields:
62
- *
63
- * - number `width`: image width
64
- *
65
- * - number `height`: image height
66
- *
67
- * - constant `type`: image type
68
- *
69
- * - `image.TYPE_RGB`
70
- *
71
- * - `image.TYPE_RGBA`
72
- *
73
- * - `image.TYPE_LUMINANCE`
74
- *
75
- * - `image.TYPE_LUMINANCE_ALPHA`
76
- *
77
- * - string `buffer`: the raw image data
130
+ * @param options - Optional loading parameters. A boolean is accepted for backwards compatibility and controls `premultiply_alpha`.
131
+ * @returns loaded image, or `nil` if loading fails
78
132
  * @example
79
133
  * ```ts
80
134
  * // How to load an image from an URL and create a GUI texture from it:
81
135
  * const imgurl = "http://www.site.com/image.png";
82
136
  * http.request(imgurl, "GET", (self, id, response) => {
83
- * const img = image.load(response.response);
84
- * const tx = gui.new_texture("image_node", img.width, img.height, img.type, img.buffer);
137
+ * const img = response.response !== undefined ? image.load(response.response) : undefined;
138
+ * if (img !== undefined) {
139
+ * const tx = gui.new_texture("image_node", img.width, img.height, img.type, img.buffer);
140
+ * }
85
141
  * });
86
142
  * ```
87
143
  */
88
- function load(buffer: string, options?: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
144
+ function load(buffer: string, options?: boolean | image.load_options): image.load_result | undefined;
89
145
  /**
90
146
  * Load image (PNG or JPEG) from a string buffer.
91
147
  *
92
148
  * @param buffer - image data buffer
93
- * @param options - An optional table containing parameters for loading the image. Supported entries:
94
- *
95
- * `premultiply_alpha`
96
- * boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
97
- * `flip_vertically`
98
- * boolean True if the image contents should be flipped vertically. Defaults to `false`.
99
- * @returns object or `nil` if loading fails. The object is a table with the following fields:
100
- *
101
- * - number `width`: image width
102
- *
103
- * - number `height`: image height
104
- *
105
- * - constant `type`: image type
106
- *
107
- * - `image.TYPE_RGB`
108
- *
109
- * - `image.TYPE_RGBA`
110
- *
111
- * - `image.TYPE_LUMINANCE`
112
- *
113
- * - `image.TYPE_LUMINANCE_ALPHA`
114
- *
115
- * - buffer `buffer`: the script buffer that holds the decompressed image data. See buffer.create how to use the buffer.
149
+ * @param options - Optional loading parameters. A boolean is accepted for backwards compatibility and controls `premultiply_alpha`.
150
+ * @returns loaded image, or `nil` if loading fails
116
151
  * @example
117
152
  * ```ts
118
153
  * // Load an image from an URL as a buffer and create a texture resource from it:
119
154
  * const imgurl = "http://www.site.com/image.png";
120
155
  * http.request(imgurl, "GET", (self, id, response) => {
121
- * const img = image.load_buffer(response.response, { flip_vertically: true });
122
- * const tparams = {
123
- * width: img.width,
124
- * height: img.height,
125
- * type: graphics.TEXTURE_TYPE_2D,
126
- * format: graphics.TEXTURE_FORMAT_RGBA,
127
- * };
128
- *
129
- * const my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer);
130
- * // Apply the texture to a model
131
- * go.set("/go1#model", "texture0", my_texture_id);
156
+ * const img =
157
+ * response.response !== undefined
158
+ * ? image.load_buffer(response.response, { flip_vertically: true })
159
+ * : undefined;
160
+ * // the engine registers a texture format only when the driver supports it
161
+ * const format = graphics.TEXTURE_FORMAT_RGBA;
162
+ * if (img !== undefined && format !== undefined) {
163
+ * const tparams = {
164
+ * width: img.width,
165
+ * height: img.height,
166
+ * type: graphics.TEXTURE_TYPE_2D,
167
+ * format,
168
+ * };
169
+ *
170
+ * const my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer);
171
+ * // Apply the texture to a model
172
+ * go.set("/go1#model", "texture0", my_texture_id);
173
+ * }
132
174
  * });
133
175
  * ```
134
176
  */
135
- function load_buffer(buffer: string, options?: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> } | undefined;
177
+ function load_buffer(buffer: string, options?: boolean | image.load_options): image.load_buffer_result | undefined;
136
178
  }
137
179
  }
138
180
 
@@ -4,6 +4,24 @@ declare global {
4
4
  * Manipulation of JSON data strings.
5
5
  */
6
6
  namespace json {
7
+ /**
8
+ * JSON decoding options
9
+ */
10
+ export interface decode_options {
11
+ /**
12
+ * Decode JSON `null` as json.null instead of `nil`.
13
+ */
14
+ decode_null_as_userdata?: boolean;
15
+ }
16
+ /**
17
+ * JSON encoding options
18
+ */
19
+ export interface encode_options {
20
+ /**
21
+ * Encode an empty table as an object instead of an array. The default is true.
22
+ */
23
+ encode_empty_table_as_object?: boolean;
24
+ }
7
25
  /**
8
26
  * Represents the null primitive from a json file
9
27
  */
@@ -13,13 +31,11 @@ declare global {
13
31
  * A Lua error is raised for syntax errors.
14
32
  *
15
33
  * @param json - json data
16
- * @param options - table with decode options
17
- *
18
- * - boolean `decode_null_as_userdata`: whether to decode a JSON null value as json.null or nil (default is nil)
19
- * @returns decoded json
34
+ * @param options - optional decoding options
35
+ * @returns decoded JSON value
20
36
  * @example
37
+ * Converting a string containing JSON data into a Lua table:
21
38
  * ```ts
22
- * // Converting a string containing JSON data into a table:
23
39
  * export default defineScript({
24
40
  * init() {
25
41
  * const jsonstring = '{"persons":[{"name":"John Doe"},{"name":"Darth Vader"}]}';
@@ -27,8 +43,10 @@ declare global {
27
43
  * pprint(data);
28
44
  * },
29
45
  * });
30
- *
31
- * // Results in the following printout:
46
+ * ```
47
+ * @example
48
+ * Results in the following printout:
49
+ * ```ts
32
50
  * // {
33
51
  * // persons = {
34
52
  * // 1 = {
@@ -41,19 +59,17 @@ declare global {
41
59
  * // }
42
60
  * ```
43
61
  */
44
- export function decode(json: string, options?: { decode_null_as_userdata?: boolean }): Record<string | number, unknown>;
62
+ export function decode(json: string, options?: json.decode_options): unknown;
45
63
  /**
46
64
  * Encode a lua table to a JSON string.
47
65
  * A Lua error is raised for syntax errors.
48
66
  *
49
- * @param tbl - lua table to encode
50
- * @param options - table with encode options
51
- *
52
- * - string `encode_empty_table_as_object`: whether to encode an empty table as an JSON object or array (default is object)
67
+ * @param tbl - Lua value to encode
68
+ * @param options - optional encoding options
53
69
  * @returns encoded json
54
70
  * @example
71
+ * Convert a lua table to a JSON string:
55
72
  * ```ts
56
- * // Convert a table to a JSON string:
57
73
  * export default defineScript({
58
74
  * init() {
59
75
  * const tbl = {
@@ -63,12 +79,14 @@ declare global {
63
79
  * pprint(jsonstring);
64
80
  * },
65
81
  * });
66
- *
67
- * // Results in the following printout:
82
+ * ```
83
+ * @example
84
+ * Results in the following printout:
85
+ * ```ts
68
86
  * // {"persons":[{"name":"John Doe"},{"name":"Darth Vader"}]}
69
87
  * ```
70
88
  */
71
- export function encode(tbl: Record<string | number, unknown>, options?: { encode_empty_table_as_object?: string }): string;
89
+ export function encode(tbl: unknown, options?: json.encode_options): string;
72
90
  export { _null as null };
73
91
  }
74
92
  }
@@ -8,6 +8,12 @@ import "../b2d_joint";
8
8
  import "../b2d_shape";
9
9
  import "../b2d_world";
10
10
  import "../buffer";
11
+ import "../bullet3d";
12
+ import "../bullet3d_collision_object";
13
+ import "../bullet3d_constraint";
14
+ import "../bullet3d_rigid_body";
15
+ import "../bullet3d_shape";
16
+ import "../bullet3d_world";
11
17
  import "../camera";
12
18
  import "../collectionfactory";
13
19
  import "../collectionproxy";
@@ -40,12 +46,14 @@ import "../types";
40
46
  import "../vmath";
41
47
  import "../window";
42
48
  import "../zlib";
49
+ import "../../src/component-properties";
43
50
  import "../../src/custom-messages";
44
51
  import "../../src/engine-globals";
45
52
  import "../../src/go-overloads";
46
53
  import "../../src/message-guard";
47
54
  import "../../src/msg-overloads";
48
55
  import "../../src/scene-addresses";
56
+ import "../../src/sys-overloads";
49
57
  import "../../src/vmath-overloads";
50
58
  import "../../src/window-event-guard";
51
59
  import "../builtin-messages";
@@ -8,6 +8,12 @@ import "../b2d_joint";
8
8
  import "../b2d_shape";
9
9
  import "../b2d_world";
10
10
  import "../buffer";
11
+ import "../bullet3d";
12
+ import "../bullet3d_collision_object";
13
+ import "../bullet3d_constraint";
14
+ import "../bullet3d_rigid_body";
15
+ import "../bullet3d_shape";
16
+ import "../bullet3d_world";
11
17
  import "../camera";
12
18
  import "../collectionfactory";
13
19
  import "../collectionproxy";
@@ -40,6 +46,7 @@ import "../types";
40
46
  import "../vmath";
41
47
  import "../window";
42
48
  import "../zlib";
49
+ import "../../src/component-properties";
43
50
  import "../../src/custom-messages";
44
51
  import "../../src/engine-globals";
45
52
  import "../../src/go-overloads";
@@ -47,6 +54,7 @@ import "../../src/message-guard";
47
54
  import "../../src/msg-overloads";
48
55
  import "../../src/render-overloads";
49
56
  import "../../src/scene-addresses";
57
+ import "../../src/sys-overloads";
50
58
  import "../../src/vmath-overloads";
51
59
  import "../../src/window-event-guard";
52
60
  import "../builtin-messages";
@@ -8,6 +8,12 @@ import "../b2d_joint";
8
8
  import "../b2d_shape";
9
9
  import "../b2d_world";
10
10
  import "../buffer";
11
+ import "../bullet3d";
12
+ import "../bullet3d_collision_object";
13
+ import "../bullet3d_constraint";
14
+ import "../bullet3d_rigid_body";
15
+ import "../bullet3d_shape";
16
+ import "../bullet3d_world";
11
17
  import "../camera";
12
18
  import "../collectionfactory";
13
19
  import "../collectionproxy";
@@ -40,12 +46,14 @@ import "../types";
40
46
  import "../vmath";
41
47
  import "../window";
42
48
  import "../zlib";
49
+ import "../../src/component-properties";
43
50
  import "../../src/custom-messages";
44
51
  import "../../src/engine-globals";
45
52
  import "../../src/go-overloads";
46
53
  import "../../src/message-guard";
47
54
  import "../../src/msg-overloads";
48
55
  import "../../src/scene-addresses";
56
+ import "../../src/sys-overloads";
49
57
  import "../../src/vmath-overloads";
50
58
  import "../../src/window-event-guard";
51
59
  import "../builtin-messages";