@defold-typescript/types 0.40.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 (224) hide show
  1. package/api-availability.json +3963 -772
  2. package/api-migrations.json +27 -0
  3. package/api-signatures.json +18069 -10240
  4. package/api-targets.json +448 -11
  5. package/examples/translations.json +560 -89
  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 +183 -20
  13. package/generated/b2d_world.d.ts +57 -63
  14. package/generated/buffer.d.ts +16 -15
  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 +29 -32
  23. package/generated/collectionfactory.d.ts +15 -18
  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 +235 -182
  37. package/generated/graphics.d.ts +335 -97
  38. package/generated/gui.d.ts +240 -471
  39. package/generated/html5.d.ts +2 -2
  40. package/generated/http.d.ts +28 -35
  41. package/generated/image.d.ts +105 -72
  42. package/generated/json.d.ts +34 -16
  43. package/generated/kinds/gui-script.d.ts +7 -0
  44. package/generated/kinds/render-script.d.ts +7 -0
  45. package/generated/kinds/script.d.ts +7 -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 +40 -39
  50. package/generated/particlefx.d.ts +19 -28
  51. package/generated/physics.d.ts +365 -133
  52. package/generated/profiler.d.ts +13 -23
  53. package/generated/render.d.ts +237 -297
  54. package/generated/resource.d.ts +664 -583
  55. package/generated/socket.d.ts +120 -133
  56. package/generated/sound.d.ts +62 -31
  57. package/generated/sprite.d.ts +31 -17
  58. package/generated/sys.d.ts +234 -190
  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 +1 -3
  63. package/generated/versions/defold-1.12.4/camera.d.ts +21 -21
  64. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +9 -9
  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 +6 -12
  69. package/generated/versions/defold-1.12.4/gui.d.ts +77 -175
  70. package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
  71. package/generated/versions/defold-1.12.4/http.d.ts +0 -13
  72. package/generated/versions/defold-1.12.4/image.d.ts +16 -33
  73. package/generated/versions/defold-1.12.4/index.d.ts +1 -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 +2 -10
  78. package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
  79. package/generated/versions/defold-1.12.4/physics.d.ts +69 -67
  80. package/generated/versions/defold-1.12.4/profiler.d.ts +2 -5
  81. package/generated/versions/defold-1.12.4/render.d.ts +99 -128
  82. package/generated/versions/defold-1.12.4/resource.d.ts +120 -148
  83. package/generated/versions/defold-1.12.4/socket.d.ts +34 -60
  84. package/generated/versions/defold-1.12.4/sound.d.ts +8 -8
  85. package/generated/versions/defold-1.12.4/sprite.d.ts +15 -5
  86. package/generated/versions/defold-1.12.4/sys.d.ts +37 -71
  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 +0 -21
  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 +169 -8
  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 +1 -3
  96. package/generated/versions/defold-1.13.0/camera.d.ts +25 -25
  97. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +9 -9
  98. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
  99. package/generated/versions/defold-1.13.0/compute.d.ts +0 -69
  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 +6 -12
  105. package/generated/versions/defold-1.13.0/graphics.d.ts +73 -37
  106. package/generated/versions/defold-1.13.0/gui.d.ts +77 -175
  107. package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
  108. package/generated/versions/defold-1.13.0/http.d.ts +0 -13
  109. package/generated/versions/defold-1.13.0/image.d.ts +16 -33
  110. package/generated/versions/defold-1.13.0/index.d.ts +1 -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 +68 -106
  115. package/generated/versions/defold-1.13.0/model.d.ts +2 -10
  116. package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
  117. package/generated/versions/defold-1.13.0/physics.d.ts +69 -67
  118. package/generated/versions/defold-1.13.0/profiler.d.ts +2 -5
  119. package/generated/versions/defold-1.13.0/render.d.ts +99 -128
  120. package/generated/versions/defold-1.13.0/resource.d.ts +126 -150
  121. package/generated/versions/defold-1.13.0/socket.d.ts +34 -60
  122. package/generated/versions/defold-1.13.0/sound.d.ts +8 -8
  123. package/generated/versions/defold-1.13.0/sprite.d.ts +15 -5
  124. package/generated/versions/defold-1.13.0/sys.d.ts +37 -71
  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 +0 -21
  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 +1 -21
  182. package/generated/window.d.ts +71 -71
  183. package/identity-vocabulary.json +561 -0
  184. package/index.d.ts +7 -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 +12 -2
  191. package/scripts/import-defold-release.ts +85 -24
  192. package/scripts/prose-constants.ts +77 -16
  193. package/scripts/regen.ts +391 -77
  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/core-types.ts +26 -3
  201. package/src/correction-pins.ts +49 -0
  202. package/src/doc-comment.ts +104 -11
  203. package/src/doc-corrections.ts +108 -0
  204. package/src/editor-vm-globals.d.ts +5 -2
  205. package/src/emit-dts.ts +2064 -281
  206. package/src/emit-messages.ts +52 -0
  207. package/src/example-store.ts +125 -14
  208. package/src/field-correction-coverage.ts +204 -0
  209. package/src/fnv1a.ts +16 -0
  210. package/src/go-overloads.d.ts +25 -6
  211. package/src/index-base-table.ts +145 -0
  212. package/src/index-slot-classifications.ts +588 -0
  213. package/src/index.ts +38 -5
  214. package/src/library-index-slot-classifications.ts +332 -0
  215. package/src/lifecycle.ts +61 -199
  216. package/src/luals-type-expr.ts +354 -0
  217. package/src/msg-overloads.d.ts +0 -1
  218. package/src/param-correction-provenance.ts +8 -11
  219. package/src/render-overloads.d.ts +0 -15
  220. package/src/return-correction-provenance.ts +58 -16
  221. package/src/sys-overloads.d.ts +48 -0
  222. package/src/vmath-overloads.d.ts +27 -1
  223. package/src/window-event-guard.d.ts +6 -9
  224. package/url-parameters.json +1 -2
@@ -33,7 +33,7 @@ declare global {
33
33
  * @param callback - The interaction callback. Pass an empty function or `nil` if you no longer wish to receive callbacks.
34
34
  *
35
35
  * `self`
36
- * object The calling script
36
+ * script_instance The calling script instance
37
37
  * @example
38
38
  * ```ts
39
39
  * function on_interaction(self: unknown) {
@@ -48,7 +48,7 @@ declare global {
48
48
  * });
49
49
  * ```
50
50
  */
51
- function set_interaction_listener(callback?: (self: unknown) => void): void;
51
+ function set_interaction_listener(callback: ((self: unknown) => void) | undefined): void;
52
52
  }
53
53
  }
54
54
 
@@ -6,6 +6,31 @@ declare global {
6
6
  * Functions for performing HTTP and HTTPS requests.
7
7
  */
8
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
+ }
9
34
  /**
10
35
  * Perform a HTTP/HTTPS request.
11
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).
@@ -15,44 +40,12 @@ declare global {
15
40
  * @param callback - response callback function
16
41
  *
17
42
  * `self`
18
- * object The script instance
43
+ * script_instance The current script instance
19
44
  * `id`
20
45
  * hash Internal message identifier. Do not use!
21
- * `response`
22
- * table The response data. Contains the fields:
23
- *
24
- * - number `status`: the status of the response
25
- *
26
- * - string `response`: the response data (if not saved on disc)
27
- *
28
- * - table `headers`: all the returned headers (if status is 200 or 206)
29
- *
30
- * - string `path`: the stored path (if saved to disc)
31
- *
32
- * - string `error`: if any unforeseen errors occurred (e.g. file I/O)
33
- *
34
- * - number `bytes_received`: the amount of bytes received/sent for a request, only if option `report_progress` is true
35
- *
36
- * - number `bytes_total`: the total amount of bytes for a request, only if option `report_progress` is true
37
- *
38
- * - number `range_start`: the start offset into the requested file
39
- *
40
- * - number `range_end`: the end offset into the requested file (inclusive)
41
- *
42
- * - number `document_size`: the full size of the requested file
43
46
  * @param headers - optional table with custom headers
44
47
  * @param post_data - optional data to send
45
- * @param options - optional table with request parameters. Supported entries:
46
- *
47
- * - number `timeout`: timeout in seconds
48
- *
49
- * - string `path`: path on disc where to download the file. Only overwrites the path if status is 200. Path should be absolute
50
- *
51
- * - boolean `ignore_cache`: don't return cached data if we get a 304. Not available in HTML5 build
52
- *
53
- * - boolean `chunked_transfer`: use chunked transfer encoding for https requests larger than 16kb. Defaults to true. Not available in HTML5 build
54
- *
55
- * - 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
56
49
  * @example
57
50
  * ```ts
58
51
  * function update_my_progress_bar(self: unknown, fraction: number) {
@@ -83,7 +76,7 @@ declare global {
83
76
  * });
84
77
  * ```
85
78
  */
86
- 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?: { 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;
87
80
  }
88
81
  }
89
82
 
@@ -7,38 +7,111 @@ 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
@@ -49,34 +122,13 @@ declare global {
49
122
  * }
50
123
  * ```
51
124
  */
52
- 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;
53
126
  /**
54
127
  * Load image (PNG or JPEG) from buffer.
55
128
  *
56
129
  * @param buffer - image data buffer
57
- * @param options - An optional table containing parameters for loading the image. Supported entries:
58
- *
59
- * `premultiply_alpha`
60
- * boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
61
- * `flip_vertically`
62
- * boolean True if the image contents should be flipped vertically. Defaults to `false`.
63
- * @returns object or `nil` if loading fails. The object is a table with the following fields:
64
- *
65
- * - number `width`: image width
66
- *
67
- * - number `height`: image height
68
- *
69
- * - constant `type`: image type
70
- *
71
- * - `image.TYPE_RGB`
72
- *
73
- * - `image.TYPE_RGBA`
74
- *
75
- * - `image.TYPE_LUMINANCE`
76
- *
77
- * - `image.TYPE_LUMINANCE_ALPHA`
78
- *
79
- * - 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
80
132
  * @example
81
133
  * ```ts
82
134
  * // How to load an image from an URL and create a GUI texture from it:
@@ -89,34 +141,13 @@ declare global {
89
141
  * });
90
142
  * ```
91
143
  */
92
- 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;
93
145
  /**
94
146
  * Load image (PNG or JPEG) from a string buffer.
95
147
  *
96
148
  * @param buffer - image data buffer
97
- * @param options - An optional table containing parameters for loading the image. Supported entries:
98
- *
99
- * `premultiply_alpha`
100
- * boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
101
- * `flip_vertically`
102
- * boolean True if the image contents should be flipped vertically. Defaults to `false`.
103
- * @returns object or `nil` if loading fails. The object is a table with the following fields:
104
- *
105
- * - number `width`: image width
106
- *
107
- * - number `height`: image height
108
- *
109
- * - constant `type`: image type
110
- *
111
- * - `image.TYPE_RGB`
112
- *
113
- * - `image.TYPE_RGBA`
114
- *
115
- * - `image.TYPE_LUMINANCE`
116
- *
117
- * - `image.TYPE_LUMINANCE_ALPHA`
118
- *
119
- * - 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
120
151
  * @example
121
152
  * ```ts
122
153
  * // Load an image from an URL as a buffer and create a texture resource from it:
@@ -126,12 +157,14 @@ declare global {
126
157
  * response.response !== undefined
127
158
  * ? image.load_buffer(response.response, { flip_vertically: true })
128
159
  * : undefined;
129
- * if (img !== 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) {
130
163
  * const tparams = {
131
164
  * width: img.width,
132
165
  * height: img.height,
133
166
  * type: graphics.TEXTURE_TYPE_2D,
134
- * format: graphics.TEXTURE_FORMAT_RGBA,
167
+ * format,
135
168
  * };
136
169
  *
137
170
  * const my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer);
@@ -141,7 +174,7 @@ declare global {
141
174
  * });
142
175
  * ```
143
176
  */
144
- 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;
145
178
  }
146
179
  }
147
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";
@@ -47,6 +53,7 @@ import "../../src/go-overloads";
47
53
  import "../../src/message-guard";
48
54
  import "../../src/msg-overloads";
49
55
  import "../../src/scene-addresses";
56
+ import "../../src/sys-overloads";
50
57
  import "../../src/vmath-overloads";
51
58
  import "../../src/window-event-guard";
52
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";
@@ -48,6 +54,7 @@ import "../../src/message-guard";
48
54
  import "../../src/msg-overloads";
49
55
  import "../../src/render-overloads";
50
56
  import "../../src/scene-addresses";
57
+ import "../../src/sys-overloads";
51
58
  import "../../src/vmath-overloads";
52
59
  import "../../src/window-event-guard";
53
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";
@@ -47,6 +53,7 @@ import "../../src/go-overloads";
47
53
  import "../../src/message-guard";
48
54
  import "../../src/msg-overloads";
49
55
  import "../../src/scene-addresses";
56
+ import "../../src/sys-overloads";
50
57
  import "../../src/vmath-overloads";
51
58
  import "../../src/window-event-guard";
52
59
  import "../builtin-messages";
@@ -6,16 +6,82 @@ declare global {
6
6
  * Label API documentation
7
7
  */
8
8
  namespace label {
9
+ /**
10
+ * Rich-text layout object
11
+ */
12
+ interface layout_object {
13
+ /**
14
+ * object type, currently `link` or `sprite`
15
+ */
16
+ type: string;
17
+ /**
18
+ * the object's `id` attribute, or its generated layout object id
19
+ */
20
+ id: Hash;
21
+ /**
22
+ * zero-based UTF-32 offset in the visible text
23
+ */
24
+ text_offset: number;
25
+ /**
26
+ * visible UTF-32 text length covered by the object
27
+ */
28
+ text_length: number;
29
+ /**
30
+ * lower-left x-coordinate relative to the label's upper-left layout origin
31
+ */
32
+ x: number;
33
+ /**
34
+ * lower-left y-coordinate relative to the label's upper-left layout origin
35
+ */
36
+ y: number;
37
+ /**
38
+ * resolved object width
39
+ */
40
+ width: number;
41
+ /**
42
+ * resolved object height
43
+ */
44
+ height: number;
45
+ /**
46
+ * markup attributes keyed by name
47
+ */
48
+ attributes: LuaTable<string, string>;
49
+ }
50
+ /**
51
+ * Returns the sprites and links found in the label's current layout.
52
+ * Each entry contains `type`, `id`, the zero-based UTF-32 `text_offset`,
53
+ * `text_length`, resolved `x`, `y`, `width`
54
+ * and `height`, and an `attributes` table. The position is the lower-left
55
+ * object corner relative to the label's upper-left layout origin.
56
+ * Inline resource rendering is not part of this MVP; sprites use their explicit
57
+ * dimensions or a one-em square fallback.
58
+ *
59
+ * @param url - the label to inspect
60
+ * @returns layout objects in source order. **0️⃣ `text_offset` is 0-based; passed to Defold unchanged.**
61
+ * @example
62
+ * ```ts
63
+ * const objects = label.get_layout_objects("#label");
64
+ * for (const object of objects) {
65
+ * if (object.type === "link") {
66
+ * print(object.attributes.get("src"), object.text_offset, object.text_length);
67
+ * } else if (object.type === "sprite") {
68
+ * print(object.attributes.get("src"), object.x, object.y, object.width, object.height);
69
+ * }
70
+ * }
71
+ * ```
72
+ */
73
+ function get_layout_objects(url: string | Hash | Url): label.layout_object[];
9
74
  /**
10
75
  * Gets the text from a label component
76
+ * This function is deprecated. Use `go.get("#label", "text")` instead.
11
77
  *
12
78
  * @param url - the label to get the text from
13
79
  * @returns the label text
14
80
  * @example
15
81
  * ```ts
16
82
  * export default defineScript({
17
- * init(self) {
18
- * const text = label.get_text("#label");
83
+ * init() {
84
+ * const text = go.get<label.properties>()("#label", "text");
19
85
  * print(text);
20
86
  * },
21
87
  * });
@@ -24,6 +90,7 @@ declare global {
24
90
  function get_text(url: string | Hash | Url): string;
25
91
  /**
26
92
  * Sets the text of a label component
93
+ * This function is deprecated. Use `go.set("#label", "text", value)` instead.
27
94
  * This method uses the message passing that means the value will be set after `dispatch messages` step.
28
95
  * More information is available in the Application Lifecycle manual.
29
96
  *
@@ -32,8 +99,8 @@ declare global {
32
99
  * @example
33
100
  * ```ts
34
101
  * export default defineScript({
35
- * init(self) {
36
- * label.set_text("#label", "Hello World!");
102
+ * init() {
103
+ * go.set<label.properties>()("#label", "text", "Hello World!");
37
104
  * },
38
105
  * });
39
106
  * ```
@@ -68,10 +135,9 @@ declare global {
68
135
  */
69
136
  outline: Vector4;
70
137
  /**
71
- * The scale of the label. The type of the property is number (uniform)
72
- * or vector3 (non uniform).
138
+ * The scale of the label. `go.get` returns and `go.set` takes a vector3; `go.animate` also takes a number, which sets a uniform scale.
73
139
  */
74
- scale: number | Vector3;
140
+ scale: Vector3;
75
141
  /**
76
142
  * The shadow color of the label. The type of the property is vector4.
77
143
  */
@@ -81,6 +147,10 @@ declare global {
81
147
  * The type of the property is vector3.
82
148
  */
83
149
  size: Vector3;
150
+ /**
151
+ * The text of the label.
152
+ */
153
+ text: string;
84
154
  /**
85
155
  * The tracking of the label.
86
156
  * This value is used to adjust the vertical spacing of characters in the text.