@defold-typescript/types 0.51.0 → 0.53.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 (228) hide show
  1. package/api-availability.json +4 -58
  2. package/api-signatures.json +2804 -3172
  3. package/api-targets.json +15 -5
  4. package/examples/translations.json +19 -71
  5. package/generated/b2d.d.ts +39 -39
  6. package/generated/b2d_body.d.ts +11 -11
  7. package/generated/b2d_chain.d.ts +3 -3
  8. package/generated/b2d_fixture.d.ts +5 -5
  9. package/generated/b2d_joint.d.ts +29 -29
  10. package/generated/b2d_shape.d.ts +13 -13
  11. package/generated/b2d_world.d.ts +15 -15
  12. package/generated/buffer.d.ts +10 -11
  13. package/generated/bullet3d.d.ts +6 -6
  14. package/generated/bullet3d_collision_object.d.ts +10 -10
  15. package/generated/bullet3d_constraint.d.ts +173 -71
  16. package/generated/bullet3d_rigid_body.d.ts +3 -3
  17. package/generated/bullet3d_shape.d.ts +11 -11
  18. package/generated/bullet3d_world.d.ts +20 -20
  19. package/generated/camera.d.ts +4 -4
  20. package/generated/collectionfactory.d.ts +2 -3
  21. package/generated/collectionproxy.d.ts +5 -5
  22. package/generated/compute.d.ts +5 -5
  23. package/generated/crash.d.ts +7 -7
  24. package/generated/editor-vm/http.d.ts +13 -13
  25. package/generated/editor-vm/image.d.ts +4 -4
  26. package/generated/editor-vm/json.d.ts +1 -1
  27. package/generated/editor-vm/tilemap_tiles.d.ts +9 -9
  28. package/generated/editor-vm/zip.d.ts +4 -4
  29. package/generated/editor.d.ts +183 -183
  30. package/generated/factory.d.ts +2 -3
  31. package/generated/font.d.ts +4 -4
  32. package/generated/go.d.ts +122 -230
  33. package/generated/graphics.d.ts +23 -25
  34. package/generated/gui.d.ts +186 -423
  35. package/generated/http.d.ts +3 -3
  36. package/generated/image.d.ts +63 -11
  37. package/generated/json.d.ts +4 -4
  38. package/generated/kinds/gui-script.d.ts +2 -0
  39. package/generated/kinds/render-script.d.ts +14 -15
  40. package/generated/label.d.ts +5 -5
  41. package/generated/liveupdate.d.ts +7 -3
  42. package/generated/material.d.ts +49 -49
  43. package/generated/model.d.ts +46 -14
  44. package/generated/particlefx.d.ts +24 -5
  45. package/generated/physics.d.ts +64 -20
  46. package/generated/profiler.d.ts +3 -5
  47. package/generated/render-script-modules/b2d.d.ts +711 -0
  48. package/generated/render-script-modules/bullet3d.d.ts +73 -0
  49. package/generated/render-script-modules/collectionfactory.d.ts +24 -0
  50. package/generated/render-script-modules/collectionproxy.d.ts +39 -0
  51. package/generated/render-script-modules/factory.d.ts +24 -0
  52. package/generated/render-script-modules/go.d.ts +434 -0
  53. package/generated/render-script-modules/label.d.ts +105 -0
  54. package/generated/render-script-modules/model.d.ts +121 -0
  55. package/generated/render-script-modules/particlefx.d.ts +59 -0
  56. package/generated/render-script-modules/physics.d.ts +333 -0
  57. package/generated/render-script-modules/resource.d.ts +1232 -0
  58. package/generated/render-script-modules/sound.d.ts +227 -0
  59. package/generated/render-script-modules/sprite.d.ts +68 -0
  60. package/generated/render-script-modules/tilemap.d.ts +43 -0
  61. package/generated/render.d.ts +172 -47
  62. package/generated/resource.d.ts +81 -61
  63. package/generated/socket.d.ts +18 -23
  64. package/generated/sound.d.ts +6 -6
  65. package/generated/sprite.d.ts +51 -3
  66. package/generated/sys.d.ts +87 -24
  67. package/generated/tilemap.d.ts +3 -3
  68. package/generated/timer.d.ts +3 -3
  69. package/generated/versions/defold-1.12.4/b2d.d.ts +2 -2
  70. package/generated/versions/defold-1.12.4/b2d_body.d.ts +2 -2
  71. package/generated/versions/defold-1.12.4/buffer.d.ts +8 -8
  72. package/generated/versions/defold-1.12.4/go.d.ts +117 -345
  73. package/generated/versions/defold-1.12.4/graphics.d.ts +2 -1
  74. package/generated/versions/defold-1.12.4/gui.d.ts +169 -532
  75. package/generated/versions/defold-1.12.4/http.d.ts +2 -2
  76. package/generated/versions/defold-1.12.4/image.d.ts +82 -2
  77. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  78. package/generated/versions/defold-1.12.4/label.d.ts +1 -1
  79. package/generated/versions/defold-1.12.4/liveupdate.d.ts +4 -0
  80. package/generated/versions/defold-1.12.4/model.d.ts +42 -10
  81. package/generated/versions/defold-1.12.4/particlefx.d.ts +23 -2
  82. package/generated/versions/defold-1.12.4/physics.d.ts +46 -2
  83. package/generated/versions/defold-1.12.4/render.d.ts +83 -7
  84. package/generated/versions/defold-1.12.4/resource.d.ts +50 -17
  85. package/generated/versions/defold-1.12.4/socket.d.ts +12 -12
  86. package/generated/versions/defold-1.12.4/sound.d.ts +1 -1
  87. package/generated/versions/defold-1.12.4/sprite.d.ts +59 -2
  88. package/generated/versions/defold-1.12.4/sys.d.ts +103 -8
  89. package/generated/versions/defold-1.12.4/tilemap.d.ts +1 -1
  90. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -24
  91. package/generated/versions/defold-1.12.4/window.d.ts +3 -4
  92. package/generated/versions/defold-1.13.0/b2d.d.ts +2 -2
  93. package/generated/versions/defold-1.13.0/b2d_body.d.ts +2 -2
  94. package/generated/versions/defold-1.13.0/b2d_chain.d.ts +1 -1
  95. package/generated/versions/defold-1.13.0/b2d_joint.d.ts +1 -1
  96. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +1 -1
  97. package/generated/versions/defold-1.13.0/buffer.d.ts +8 -8
  98. package/generated/versions/defold-1.13.0/camera.d.ts +1 -1
  99. package/generated/versions/defold-1.13.0/go.d.ts +117 -372
  100. package/generated/versions/defold-1.13.0/graphics.d.ts +2 -1
  101. package/generated/versions/defold-1.13.0/gui.d.ts +169 -532
  102. package/generated/versions/defold-1.13.0/http.d.ts +2 -2
  103. package/generated/versions/defold-1.13.0/image.d.ts +82 -2
  104. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  105. package/generated/versions/defold-1.13.0/label.d.ts +1 -1
  106. package/generated/versions/defold-1.13.0/liveupdate.d.ts +4 -0
  107. package/generated/versions/defold-1.13.0/material.d.ts +3 -1
  108. package/generated/versions/defold-1.13.0/model.d.ts +42 -10
  109. package/generated/versions/defold-1.13.0/particlefx.d.ts +23 -2
  110. package/generated/versions/defold-1.13.0/physics.d.ts +46 -2
  111. package/generated/versions/defold-1.13.0/render.d.ts +147 -9
  112. package/generated/versions/defold-1.13.0/resource.d.ts +50 -17
  113. package/generated/versions/defold-1.13.0/socket.d.ts +12 -12
  114. package/generated/versions/defold-1.13.0/sound.d.ts +1 -1
  115. package/generated/versions/defold-1.13.0/sprite.d.ts +59 -2
  116. package/generated/versions/defold-1.13.0/sys.d.ts +103 -8
  117. package/generated/versions/defold-1.13.0/tilemap.d.ts +1 -1
  118. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -24
  119. package/generated/versions/defold-1.13.0/window.d.ts +3 -4
  120. package/generated/versions/defold-1.13.1/b2d.d.ts +2 -2
  121. package/generated/versions/defold-1.13.1/b2d_body.d.ts +2 -2
  122. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +1 -1
  123. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +1 -1
  124. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +1 -1
  125. package/generated/versions/defold-1.13.1/buffer.d.ts +8 -8
  126. package/generated/versions/defold-1.13.1/camera.d.ts +1 -1
  127. package/generated/versions/defold-1.13.1/go.d.ts +117 -372
  128. package/generated/versions/defold-1.13.1/graphics.d.ts +2 -1
  129. package/generated/versions/defold-1.13.1/gui.d.ts +169 -548
  130. package/generated/versions/defold-1.13.1/http.d.ts +2 -2
  131. package/generated/versions/defold-1.13.1/image.d.ts +82 -2
  132. package/generated/versions/defold-1.13.1/index.d.ts +2 -0
  133. package/generated/versions/defold-1.13.1/label.d.ts +1 -1
  134. package/generated/versions/defold-1.13.1/liveupdate.d.ts +4 -0
  135. package/generated/versions/defold-1.13.1/material.d.ts +3 -1
  136. package/generated/versions/defold-1.13.1/model.d.ts +42 -10
  137. package/generated/versions/defold-1.13.1/particlefx.d.ts +23 -2
  138. package/generated/versions/defold-1.13.1/physics.d.ts +46 -2
  139. package/generated/versions/defold-1.13.1/render.d.ts +147 -9
  140. package/generated/versions/defold-1.13.1/resource.d.ts +50 -17
  141. package/generated/versions/defold-1.13.1/socket.d.ts +12 -12
  142. package/generated/versions/defold-1.13.1/sound.d.ts +1 -1
  143. package/generated/versions/defold-1.13.1/sprite.d.ts +59 -2
  144. package/generated/versions/defold-1.13.1/sys.d.ts +103 -8
  145. package/generated/versions/defold-1.13.1/tilemap.d.ts +1 -1
  146. package/generated/versions/defold-1.13.1/vmath.d.ts +0 -24
  147. package/generated/versions/defold-1.13.1/window.d.ts +3 -4
  148. package/generated/versions/defold-1.13.2/b2d.d.ts +39 -39
  149. package/generated/versions/defold-1.13.2/b2d_body.d.ts +11 -11
  150. package/generated/versions/defold-1.13.2/b2d_chain.d.ts +3 -3
  151. package/generated/versions/defold-1.13.2/b2d_fixture.d.ts +5 -5
  152. package/generated/versions/defold-1.13.2/b2d_joint.d.ts +29 -29
  153. package/generated/versions/defold-1.13.2/b2d_shape.d.ts +13 -13
  154. package/generated/versions/defold-1.13.2/b2d_world.d.ts +15 -15
  155. package/generated/versions/defold-1.13.2/buffer.d.ts +10 -11
  156. package/generated/versions/defold-1.13.2/bullet3d.d.ts +6 -6
  157. package/generated/versions/defold-1.13.2/bullet3d_collision_object.d.ts +10 -10
  158. package/generated/versions/defold-1.13.2/bullet3d_constraint.d.ts +173 -71
  159. package/generated/versions/defold-1.13.2/bullet3d_rigid_body.d.ts +3 -3
  160. package/generated/versions/defold-1.13.2/bullet3d_shape.d.ts +11 -11
  161. package/generated/versions/defold-1.13.2/bullet3d_world.d.ts +20 -20
  162. package/generated/versions/defold-1.13.2/camera.d.ts +4 -4
  163. package/generated/versions/defold-1.13.2/collectionfactory.d.ts +2 -3
  164. package/generated/versions/defold-1.13.2/collectionproxy.d.ts +5 -5
  165. package/generated/versions/defold-1.13.2/compute.d.ts +5 -5
  166. package/generated/versions/defold-1.13.2/crash.d.ts +7 -7
  167. package/generated/versions/defold-1.13.2/editor-vm/http.d.ts +13 -13
  168. package/generated/versions/defold-1.13.2/editor-vm/image.d.ts +4 -4
  169. package/generated/versions/defold-1.13.2/editor-vm/json.d.ts +1 -1
  170. package/generated/versions/defold-1.13.2/editor-vm/tilemap_tiles.d.ts +9 -9
  171. package/generated/versions/defold-1.13.2/editor-vm/zip.d.ts +4 -4
  172. package/generated/versions/defold-1.13.2/editor.d.ts +183 -183
  173. package/generated/versions/defold-1.13.2/factory.d.ts +2 -3
  174. package/generated/versions/defold-1.13.2/font.d.ts +4 -4
  175. package/generated/versions/defold-1.13.2/go.d.ts +122 -230
  176. package/generated/versions/defold-1.13.2/graphics.d.ts +22 -24
  177. package/generated/versions/defold-1.13.2/gui.d.ts +186 -423
  178. package/generated/versions/defold-1.13.2/http.d.ts +3 -3
  179. package/generated/versions/defold-1.13.2/image.d.ts +63 -11
  180. package/generated/versions/defold-1.13.2/index.d.ts +2 -0
  181. package/generated/versions/defold-1.13.2/json.d.ts +4 -4
  182. package/generated/versions/defold-1.13.2/label.d.ts +5 -5
  183. package/generated/versions/defold-1.13.2/liveupdate.d.ts +7 -3
  184. package/generated/versions/defold-1.13.2/material.d.ts +49 -49
  185. package/generated/versions/defold-1.13.2/model.d.ts +46 -14
  186. package/generated/versions/defold-1.13.2/particlefx.d.ts +24 -5
  187. package/generated/versions/defold-1.13.2/physics.d.ts +64 -20
  188. package/generated/versions/defold-1.13.2/profiler.d.ts +3 -5
  189. package/generated/versions/defold-1.13.2/render.d.ts +161 -46
  190. package/generated/versions/defold-1.13.2/resource.d.ts +81 -61
  191. package/generated/versions/defold-1.13.2/socket.d.ts +18 -23
  192. package/generated/versions/defold-1.13.2/sound.d.ts +6 -6
  193. package/generated/versions/defold-1.13.2/sprite.d.ts +51 -3
  194. package/generated/versions/defold-1.13.2/sys.d.ts +87 -24
  195. package/generated/versions/defold-1.13.2/tilemap.d.ts +3 -3
  196. package/generated/versions/defold-1.13.2/timer.d.ts +3 -3
  197. package/generated/versions/defold-1.13.2/vmath.d.ts +0 -25
  198. package/generated/versions/defold-1.13.2/window.d.ts +8 -10
  199. package/generated/vmath.d.ts +0 -25
  200. package/generated/window.d.ts +8 -10
  201. package/identity-vocabulary.json +86 -34
  202. package/index.d.ts +2 -0
  203. package/package.json +3 -1
  204. package/scripts/generate-api-availability.ts +10 -24
  205. package/scripts/generate-api-signatures.ts +75 -14
  206. package/scripts/materialize-version.ts +48 -7
  207. package/scripts/regen.ts +214 -19
  208. package/scripts/shared-handle-methods.ts +3 -2
  209. package/scripts/signature-store-fs.ts +1 -0
  210. package/scripts/target-version.ts +26 -0
  211. package/src/api-doc.ts +34 -0
  212. package/src/api-identity.ts +32 -1
  213. package/src/component-properties.d.ts +96 -7
  214. package/src/core-types.ts +71 -28
  215. package/src/doc-corrections.ts +62 -5
  216. package/src/emit-dts.ts +1423 -401
  217. package/src/engine-globals.d.ts +5 -1
  218. package/src/engine-type-name.ts +33 -0
  219. package/src/go-overloads.d.ts +74 -19
  220. package/src/gui-overloads.d.ts +489 -0
  221. package/src/gui-texture-removal.d.ts +41 -0
  222. package/src/index.ts +3 -0
  223. package/src/lifecycle.ts +32 -23
  224. package/src/msg-overloads.d.ts +25 -13
  225. package/src/signature-store.ts +50 -0
  226. package/src/socket-types.d.ts +3 -3
  227. package/src/timers.d.ts +2 -1
  228. package/src/vmath-overloads.d.ts +26 -0
@@ -1,5 +1,5 @@
1
1
  /** @noSelfInFile */
2
- import type { Hash } from "../../../src/core-types";
2
+ import type { Hash, Url } from "../../../src/core-types";
3
3
 
4
4
  declare global {
5
5
  /**
@@ -72,7 +72,7 @@ declare global {
72
72
  * });
73
73
  * ```
74
74
  */
75
- function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; url: string; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_sent?: number; 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;
75
+ function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; url: string; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_sent?: number; bytes_received?: number; bytes_total?: number; range_start?: number; range_end?: number; document_size?: number }, sender: Url) => 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;
76
76
  }
77
77
  }
78
78
 
@@ -77,7 +77,87 @@ declare global {
77
77
  * });
78
78
  * ```
79
79
  */
80
- function load(buffer: string, options?: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
80
+ function load(buffer: string): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
81
+ /**
82
+ * Load image (PNG or JPEG) from buffer.
83
+ *
84
+ * @param buffer - image data buffer
85
+ * @param options - An optional table containing parameters for loading the image. Supported entries:
86
+ *
87
+ * `premultiply_alpha`
88
+ * boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
89
+ * `flip_vertically`
90
+ * boolean True if the image contents should be flipped vertically. Defaults to `false`.
91
+ * @returns object or `nil` if loading fails. The object is a table with the following fields:
92
+ *
93
+ * - number `width`: image width
94
+ * - number `height`: image height
95
+ * - constant `type`: image type
96
+ * - `image.TYPE_RGB`
97
+ * - `image.TYPE_RGBA`
98
+ * - `image.TYPE_LUMINANCE`
99
+ * - `image.TYPE_LUMINANCE_ALPHA`
100
+ * - string `buffer`: the raw image data
101
+ * @example
102
+ * ```ts
103
+ * // How to load an image from an URL and create a GUI texture from it:
104
+ * const imgurl = "http://www.site.com/image.png";
105
+ * http.request(imgurl, "GET", (self, id, response) => {
106
+ * const img = response.response !== undefined ? image.load(response.response) : undefined;
107
+ * if (img !== undefined) {
108
+ * const tx = gui.new_texture("image_node", img.width, img.height, img.type, img.buffer);
109
+ * }
110
+ * });
111
+ * ```
112
+ */
113
+ function load(buffer: string, options: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
114
+ /**
115
+ * Load image (PNG or JPEG) from a string buffer.
116
+ *
117
+ * @param buffer - image data buffer
118
+ * @param options - An optional table containing parameters for loading the image. Supported entries:
119
+ *
120
+ * `premultiply_alpha`
121
+ * boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
122
+ * `flip_vertically`
123
+ * boolean True if the image contents should be flipped vertically. Defaults to `false`.
124
+ * @returns object or `nil` if loading fails. The object is a table with the following fields:
125
+ *
126
+ * - number `width`: image width
127
+ * - number `height`: image height
128
+ * - constant `type`: image type
129
+ * - `image.TYPE_RGB`
130
+ * - `image.TYPE_RGBA`
131
+ * - `image.TYPE_LUMINANCE`
132
+ * - `image.TYPE_LUMINANCE_ALPHA`
133
+ * - buffer `buffer`: the script buffer that holds the decompressed image data. See buffer.create how to use the buffer.
134
+ * @example
135
+ * ```ts
136
+ * // Load an image from an URL as a buffer and create a texture resource from it:
137
+ * const imgurl = "http://www.site.com/image.png";
138
+ * http.request(imgurl, "GET", (self, id, response) => {
139
+ * const img =
140
+ * response.response !== undefined
141
+ * ? image.load_buffer(response.response, { flip_vertically: true })
142
+ * : undefined;
143
+ * // the engine registers a texture format only when the driver supports it
144
+ * const format = graphics.TEXTURE_FORMAT_RGBA;
145
+ * if (img !== undefined && format !== undefined) {
146
+ * const tparams = {
147
+ * width: img.width,
148
+ * height: img.height,
149
+ * type: graphics.TEXTURE_TYPE_2D,
150
+ * format,
151
+ * };
152
+ *
153
+ * const my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer);
154
+ * // Apply the texture to a model
155
+ * go.set("/go1#model", "texture0", my_texture_id);
156
+ * }
157
+ * });
158
+ * ```
159
+ */
160
+ function load_buffer(buffer: string): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } } | undefined;
81
161
  /**
82
162
  * Load image (PNG or JPEG) from a string buffer.
83
163
  *
@@ -124,7 +204,7 @@ declare global {
124
204
  * });
125
205
  * ```
126
206
  */
127
- function load_buffer(buffer: string, options?: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> } | undefined;
207
+ function load_buffer(buffer: string, options: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } } | undefined;
128
208
  }
129
209
  }
130
210
 
@@ -45,6 +45,7 @@ import "../../../src/scene-addresses";
45
45
  import "../../../src/go-overloads";
46
46
  import "../../../src/component-properties";
47
47
  import "../../../src/render-overloads";
48
+ import "../../../src/gui-overloads";
48
49
  import "../../../src/vmath-overloads";
49
50
  import "../../../src/sys-overloads";
50
51
 
@@ -39,7 +39,7 @@ declare global {
39
39
  * ```
40
40
  */
41
41
  function set_text(url: string | Hash | Url, text: string | number): void;
42
- interface properties {
42
+ interface Properties {
43
43
  /**
44
44
  * The color of the label. The type of the property is vector4.
45
45
  */
@@ -36,6 +36,10 @@ declare global {
36
36
  * Memory wasn't allocated
37
37
  */
38
38
  const LIVEUPDATE_MEM_ERROR: number & { readonly __brand: "liveupdate.LIVEUPDATE_MEM_ERROR" };
39
+ /**
40
+ * Live update is not initialized. `liveupdate.add_mount` and `liveupdate.remove_mount` return it while live update is disabled.
41
+ */
42
+ const LIVEUPDATE_NOT_INITIALIZED: number & { readonly __brand: "liveupdate.LIVEUPDATE_NOT_INITIALIZED" };
39
43
  /**
40
44
  * LIVEUPDATE_OK
41
45
  */
@@ -155,7 +155,7 @@ declare global {
155
155
  * });
156
156
  * ```
157
157
  */
158
- function play_anim(url: string | Hash | Url, anim_id: string | Hash, playback: go.Playback, play_properties?: { blend_duration?: number; offset?: number; playback_rate?: number }, complete_function?: (self: unknown, message_id: Hash, message: BuiltinMessages["model_animation_done"]) => void): void;
158
+ function play_anim(url: string | Hash | Url, anim_id: string | Hash, playback: Exclude<go.Playback, typeof go.PLAYBACK_NONE>, play_properties?: { blend_duration?: number; offset?: number; playback_rate?: number }, complete_function?: (self: unknown, message_id: Hash, message: BuiltinMessages["model_animation_done"]) => void): void;
159
159
  /**
160
160
  * Enable or disable visibility of a mesh
161
161
  *
@@ -173,7 +173,7 @@ declare global {
173
173
  * ```
174
174
  */
175
175
  function set_mesh_enabled(url: string | Hash | Url, mesh_id: string | Hash, enabled: boolean): void;
176
- interface properties {
176
+ interface Properties {
177
177
  /**
178
178
  * The current animation set on the component. The type of the property is hash.
179
179
  */
@@ -192,37 +192,69 @@ declare global {
192
192
  */
193
193
  playback_rate: number;
194
194
  /**
195
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
195
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
196
196
  */
197
197
  texture0: Hash;
198
198
  /**
199
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
199
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
200
200
  */
201
201
  texture1: Hash;
202
202
  /**
203
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
203
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
204
204
  */
205
205
  texture2: Hash;
206
206
  /**
207
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
207
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
208
208
  */
209
209
  texture3: Hash;
210
210
  /**
211
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
211
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
212
212
  */
213
213
  texture4: Hash;
214
214
  /**
215
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
215
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
216
216
  */
217
217
  texture5: Hash;
218
218
  /**
219
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
219
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
220
220
  */
221
221
  texture6: Hash;
222
222
  /**
223
- * The texture hash id of the model. Used for getting/setting model texture for unit 0-7
223
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
224
224
  */
225
225
  texture7: Hash;
226
+ /**
227
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
228
+ */
229
+ texture8: Hash;
230
+ /**
231
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
232
+ */
233
+ texture9: Hash;
234
+ /**
235
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
236
+ */
237
+ texture10: Hash;
238
+ /**
239
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
240
+ */
241
+ texture11: Hash;
242
+ /**
243
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
244
+ */
245
+ texture12: Hash;
246
+ /**
247
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
248
+ */
249
+ texture13: Hash;
250
+ /**
251
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
252
+ */
253
+ texture14: Hash;
254
+ /**
255
+ * The texture hash id of the model, read and written on the texture unit the key's number names (`texture3` is unit 3).
256
+ */
257
+ texture15: Hash;
226
258
  }
227
259
  }
228
260
  }
@@ -134,8 +134,29 @@ declare global {
134
134
  * });
135
135
  * ```
136
136
  */
137
- function stop(url: string | Hash | Url, options?: { clear?: boolean }): void;
138
- interface properties {
137
+ function stop(url: string | Hash | Url): void;
138
+ /**
139
+ * Stops a particle FX component from playing.
140
+ * Stopping a particle FX does not remove already spawned particles.
141
+ * Which particle FX to stop is identified by the URL.
142
+ *
143
+ * @param url - the particle fx that should stop playing
144
+ * @param options - Options when stopping the particle fx. Supported options:
145
+ *
146
+ * - boolean `clear`: instantly clear spawned particles
147
+ * @example
148
+ * ```ts
149
+ * // How to stop a particle fx when a game object is deleted and immediately also
150
+ * // clear any spawned particles:
151
+ * export default defineScript({
152
+ * final(self) {
153
+ * particlefx.stop("#particlefx", { clear: true });
154
+ * },
155
+ * });
156
+ * ```
157
+ */
158
+ function stop(url: string | Hash | Url, options: { clear?: boolean }): void;
159
+ interface Properties {
139
160
  /**
140
161
  * The animation used during rendering by an emitter in a particle FX component.
141
162
  * The property type is a hash and refers to a valid animation in an atlas or a tile source resource.
@@ -271,7 +271,51 @@ declare global {
271
271
  * });
272
272
  * ```
273
273
  */
274
- function raycast_async(from: Vector3, to: Vector3, groups: Hash[], request_id?: number): void;
274
+ function raycast_async(from: Vector3, to: Vector3, groups: Hash[]): void;
275
+ /**
276
+ * Ray casts are used to test for intersections against collision objects in the physics world.
277
+ * Collision objects of types kinematic, dynamic and static are tested against. Trigger objects
278
+ * do not intersect with ray casts.
279
+ * Which collision objects to hit is filtered by their collision groups and can be configured
280
+ * through `groups`.
281
+ * The actual ray cast will be performed during the physics-update.
282
+ *
283
+ * - If an object is hit, the result will be reported via a ray_cast_response message.
284
+ * - If there is no object hit, the result will be reported via a ray_cast_missed message.
285
+ *
286
+ * NOTE: Ray casts will ignore collision objects that contain the starting point of the ray. This is a limitation in Box2D.
287
+ *
288
+ * @param from - the world position of the start of the ray
289
+ * @param to - the world position of the end of the ray
290
+ * @param groups - a lua table containing the hashed groups for which to test collisions against
291
+ * @param request_id - a number in range [0,255]. It will be sent back in the response for identification, 0 by default
292
+ * @example
293
+ * ```ts
294
+ * // How to perform a ray cast asynchronously:
295
+ * export default defineScript({
296
+ * init() {
297
+ * return { my_groups: [hash("my_group1"), hash("my_group2")] };
298
+ * },
299
+ *
300
+ * update(self, dt) {
301
+ * // request ray cast
302
+ * const my_start = go.get_world_position();
303
+ * const my_end = vmath.vector3(my_start.x, my_start.y - 100, my_start.z);
304
+ * physics.raycast_async(my_start, my_end, self.my_groups);
305
+ * },
306
+ *
307
+ * on_message(self, message_id, message, sender) {
308
+ * // check for the response
309
+ * if (message_id === hash("ray_cast_response")) {
310
+ * // act on the hit
311
+ * } else if (message_id === hash("ray_cast_missed")) {
312
+ * // act on the miss
313
+ * }
314
+ * },
315
+ * });
316
+ * ```
317
+ */
318
+ function raycast_async(from: Vector3, to: Vector3, groups: Hash[], request_id: number): void;
275
319
  /**
276
320
  * Only one physics world event listener can be set at a time.
277
321
  *
@@ -528,7 +572,7 @@ declare global {
528
572
  * ```
529
573
  */
530
574
  function wakeup(url: string | Hash | Url): void;
531
- interface properties {
575
+ interface Properties {
532
576
  /**
533
577
  * The angular damping value for the collision object. Setting this value alters the damping of
534
578
  * angular motion of the object (rotation). Valid values are between 0 (no damping) and 1 (full damping).
@@ -14,10 +14,11 @@ declare global {
14
14
  * require features not in OpenGL ES 2.0, but those will not work cross platform.
15
15
  */
16
16
  namespace render {
17
- type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> };
18
- type render_target = Opaque<"render_target">;
19
- type texture = Opaque<"texture">;
17
+ type ConstantBuffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> };
18
+ type RenderTarget = Opaque<"render_target">;
19
+ type Texture = Opaque<"texture">;
20
20
  type ClearBufferKey = typeof graphics.BUFFER_TYPE_COLOR0_BIT | typeof graphics.BUFFER_TYPE_DEPTH_BIT | typeof graphics.BUFFER_TYPE_STENCIL_BIT;
21
+ type RenderTargetTextureType = typeof graphics.TEXTURE_TYPE_2D | typeof graphics.TEXTURE_TYPE_CUBE_MAP;
21
22
  type RenderTargetParams = Record<string | number, unknown>;
22
23
  /**
23
24
  * The rendering context was lost. Rendering is paused and all graphics resources become invalid. Passed to the `render.set_listener` callback.
@@ -185,7 +186,7 @@ declare global {
185
186
  * });
186
187
  * ```
187
188
  */
188
- function disable_state(state: graphics.State): void;
189
+ function disable_state(state: Exclude<graphics.State, typeof graphics.STATE_ALPHA_TEST_SUPPORTED | typeof graphics.STATE_SCISSOR_TEST>): void;
189
190
  /**
190
191
  * Disables a texture that has previourly been enabled.
191
192
  *
@@ -220,7 +221,7 @@ declare global {
220
221
  * });
221
222
  * ```
222
223
  */
223
- function disable_texture(binding: Opaque<"texture"> | string | Hash | number): void;
224
+ function disable_texture(binding: string | Hash | number): void;
224
225
  /**
225
226
  * Dispatches the currently enabled compute program. The dispatch call takes three arguments x,y,z which constitutes
226
227
  * the 'global working group' of the compute dispatch. Together with the 'local working group' specified in the compute shader
@@ -408,7 +409,7 @@ declare global {
408
409
  * });
409
410
  * ```
410
411
  */
411
- function enable_state(state: graphics.State): void;
412
+ function enable_state(state: Exclude<graphics.State, typeof graphics.STATE_ALPHA_TEST_SUPPORTED | typeof graphics.STATE_SCISSOR_TEST>): void;
412
413
  /**
413
414
  * Sets the specified texture handle for a render target attachment or a regular texture
414
415
  * that should be used for rendering. The texture can be bound to either a texture unit
@@ -1027,7 +1028,82 @@ declare global {
1027
1028
  * });
1028
1029
  * ```
1029
1030
  */
1030
- function set_render_target(render_target?: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT, options?: { transient?: graphics.BufferType[] }): void;
1031
+ function set_render_target(render_target?: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT): void;
1032
+ /**
1033
+ * Sets a render target. Subsequent draw operations will be to the
1034
+ * render target until it is replaced by a subsequent call to set_render_target.
1035
+ * This function supports render targets created by a render script, or a render target resource.
1036
+ *
1037
+ * @param render_target - render target to set. render.RENDER_TARGET_DEFAULT to set the default render target
1038
+ * @param options - optional table with behaviour parameters
1039
+ *
1040
+ * `transient`
1041
+ * table Transient frame buffer types are only valid while the render target is active, i.e becomes undefined when a new target is set by a subsequent call to set_render_target.
1042
+ * Default is all non-transient. Be aware that some hardware uses a combined depth stencil buffer and when this is the case both are considered non-transient if exclusively selected!
1043
+ * A buffer type defined that doesn't exist in the render target is silently ignored.
1044
+ *
1045
+ * - `graphics.BUFFER_TYPE_COLOR0_BIT`
1046
+ * - `graphics.BUFFER_TYPE_DEPTH_BIT`
1047
+ * - `graphics.BUFFER_TYPE_STENCIL_BIT`
1048
+ * @example
1049
+ * How to set a render target and draw to it and then switch back to the default render target
1050
+ * The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
1051
+ * ```ts
1052
+ * // How to set a render target and draw to it and then switch back to the default render target
1053
+ * // The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
1054
+ * export default defineRenderScript({
1055
+ * init() {
1056
+ * // the engine registers a texture format only when the driver supports it
1057
+ * const format = graphics.TEXTURE_FORMAT_RGBA;
1058
+ * if (format === undefined) return undefined;
1059
+ * const color_params = {
1060
+ * format,
1061
+ * width: render.get_window_width(),
1062
+ * height: render.get_window_height(),
1063
+ * };
1064
+ * return {
1065
+ * my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
1066
+ * my_pred: render.predicate([hash("my_tag")]),
1067
+ * };
1068
+ * },
1069
+ *
1070
+ * update(self, dt) {
1071
+ * if (self === undefined) return;
1072
+ * // set render target so all drawing is done to it
1073
+ * render.set_render_target(self.my_render_target, {
1074
+ * transient: [graphics.BUFFER_TYPE_DEPTH_BIT, graphics.BUFFER_TYPE_STENCIL_BIT],
1075
+ * });
1076
+ *
1077
+ * // draw a predicate to the render target
1078
+ * render.draw(self.my_pred);
1079
+ *
1080
+ * // set default render target. This also invalidates the depth and stencil buffers of the current target (self.my_render_target)
1081
+ * // which can be an optimisation on some hardware
1082
+ * render.set_render_target(render.RENDER_TARGET_DEFAULT);
1083
+ * },
1084
+ * });
1085
+ * ```
1086
+ * @example
1087
+ * ```ts
1088
+ * export default defineRenderScript({
1089
+ * init() {
1090
+ * return { my_pred: render.predicate([hash("my_tag")]) };
1091
+ * },
1092
+ *
1093
+ * update(self, dt) {
1094
+ * // set render target by a render target resource identifier
1095
+ * render.set_render_target("my_rt_resource");
1096
+ *
1097
+ * // draw a predicate to the render target
1098
+ * render.draw(self.my_pred);
1099
+ *
1100
+ * // reset the render target to the default backbuffer
1101
+ * render.set_render_target(render.RENDER_TARGET_DEFAULT);
1102
+ * },
1103
+ * });
1104
+ * ```
1105
+ */
1106
+ function set_render_target(render_target: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT | undefined, options: { transient?: graphics.BufferType[] }): void;
1031
1107
  /**
1032
1108
  * Sets the render target size for a render target created from
1033
1109
  * either a render script, or from a render target resource.
@@ -277,7 +277,7 @@ declare global {
277
277
  * });
278
278
  * ```
279
279
  */
280
- function create_buffer(path: string, table: { buffer: Opaque<"buffer">; transfer_ownership?: boolean }): Hash;
280
+ function create_buffer(path: string, table: { buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }; transfer_ownership?: boolean }): Hash;
281
281
  /**
282
282
  * Creates a sound data resource
283
283
  * Supported formats are .oggc, .opusc and .wavc
@@ -310,7 +310,7 @@ declare global {
310
310
  * });
311
311
  * ```
312
312
  */
313
- function create_sound_data(path: string, options: { data: string | Opaque<"buffer">; filesize?: number; partial?: boolean }): Hash;
313
+ function create_sound_data(path: string, options: { data: string | Opaque<"buffer">; filesize?: number; partial?: boolean } & ({ partial?: false } | ({ partial: true } & Required<Pick<{ data: string | Opaque<"buffer">; filesize?: number; partial?: boolean }, "filesize">>))): Hash;
314
314
  /**
315
315
  * Creates a new texture resource that can be used in the same way as any texture created during build time.
316
316
  * The path used for creating the texture must be unique, trying to create a resource at a path that is already
@@ -496,7 +496,7 @@ declare global {
496
496
  * }
497
497
  * ```
498
498
  */
499
- function create_texture(path: string, table: { type: number; width: number; height: number; depth?: number; format: number; flags?: number; max_mipmaps?: number; compression_type?: number; page_count?: number }, buffer?: Opaque<"buffer">): Hash;
499
+ function create_texture(path: string, table: { type: number; width: number; height: number; depth?: number; format: number; flags?: number; max_mipmaps?: number; compression_type?: number; page_count?: number }, buffer?: Opaque<"buffer"> & { length: LuaLengthMethod<number> }): Hash;
500
500
  /**
501
501
  * Creates a new texture resource that can be used in the same way as any texture created during build time.
502
502
  * The path used for creating the texture must be unique, trying to create a resource at a path that is already
@@ -666,7 +666,7 @@ declare global {
666
666
  * });
667
667
  * ```
668
668
  */
669
- function create_texture_async(path: string, table: { type: number; width: number; height: number; depth?: number; format: number; flags?: number; max_mipmaps?: number; compression_type?: number }, buffer: Opaque<"buffer"> | undefined, callback: (...args: unknown[]) => unknown): LuaMultiReturn<[Hash, number]>;
669
+ function create_texture_async(path: string, table: { type: number; width: number; height: number; depth?: number; format: number; flags?: number; max_mipmaps?: number; compression_type?: number }, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } | undefined, callback: (...args: unknown[]) => unknown): LuaMultiReturn<[Hash, number]>;
670
670
  /**
671
671
  * Constructor-like function with two purposes:
672
672
  *
@@ -734,7 +734,7 @@ declare global {
734
734
  * // How to get the data from a buffer
735
735
  * export default defineScript({
736
736
  * init() {
737
- * const res_path = go.get<mesh.properties>()("#mesh", "vertices");
737
+ * const res_path = go.get<mesh.Properties>()("#mesh", "vertices");
738
738
  * const buf = resource.get_buffer(res_path);
739
739
  * const stream_positions = buffer.get_stream(buf, "position");
740
740
  *
@@ -745,7 +745,7 @@ declare global {
745
745
  * });
746
746
  * ```
747
747
  */
748
- function get_buffer(path: Hash | string): Opaque<"buffer">;
748
+ function get_buffer(path: Hash | string): Opaque<"buffer"> & { length: LuaLengthMethod<number> };
749
749
  /**
750
750
  * Gets render target info from a render target resource path or a render target handle
751
751
  *
@@ -837,14 +837,47 @@ declare global {
837
837
  * ```ts
838
838
  * export default defineScript({
839
839
  * init() {
840
- * const font = go.get<label.properties>()("#label", "font");
840
+ * const font = go.get<label.Properties>()("#label", "font");
841
841
  * const metrics = resource.get_text_metrics(font, "The quick brown fox\n jumps over the lazy dog");
842
842
  * pprint(metrics);
843
843
  * },
844
844
  * });
845
845
  * ```
846
846
  */
847
- function get_text_metrics(url: Hash | string, text: string, options?: { width?: number; leading?: number; tracking?: number; line_break?: boolean }): { width: number; height: number; max_ascent: number; max_descent: number };
847
+ function get_text_metrics(url: Hash | string, text: string): { width: number; height: number; max_ascent: number; max_descent: number };
848
+ /**
849
+ * Gets the text metrics from a font
850
+ *
851
+ * @param url - the font to get the (unscaled) metrics from
852
+ * @param text - text to measure
853
+ * @param options - A table containing parameters for the text. Supported entries:
854
+ *
855
+ * `width`
856
+ * number The width of the text field. Not used if `line_break` is false.
857
+ * `leading`
858
+ * number The leading (default 1.0)
859
+ * `tracking`
860
+ * number The tracking (default 0.0)
861
+ * `line_break`
862
+ * boolean If the calculation should consider line breaks (default false)
863
+ * @returns a table with the following fields:
864
+ *
865
+ * - width
866
+ * - height
867
+ * - max_ascent
868
+ * - max_descent
869
+ * @example
870
+ * ```ts
871
+ * export default defineScript({
872
+ * init() {
873
+ * const font = go.get<label.Properties>()("#label", "font");
874
+ * const metrics = resource.get_text_metrics(font, "The quick brown fox\n jumps over the lazy dog");
875
+ * pprint(metrics);
876
+ * },
877
+ * });
878
+ * ```
879
+ */
880
+ function get_text_metrics(url: Hash | string, text: string, options: { width?: number; leading?: number; tracking?: number; line_break?: boolean }): { width: number; height: number; max_ascent: number; max_descent: number };
848
881
  /**
849
882
  * Gets texture info from a texture resource path or a texture handle
850
883
  *
@@ -943,7 +976,7 @@ declare global {
943
976
  * // custom_resources = resources/,assets/level_data.json
944
977
  * ```
945
978
  */
946
- function load(path: string): Opaque<"buffer">;
979
+ function load(path: string): Opaque<"buffer"> & { length: LuaLengthMethod<number> };
947
980
  /**
948
981
  * Constructor-like function with two purposes:
949
982
  *
@@ -1027,10 +1060,10 @@ declare global {
1027
1060
  * // Assuming the folder "/res" is added to the project custom resources:
1028
1061
  * // load a texture resource and set it on a sprite
1029
1062
  * const buffer = resource.load("/res/new.texturec");
1030
- * resource.set(go.get<sprite.properties>()("#sprite", "texture0"), buffer);
1063
+ * resource.set(go.get<sprite.Properties>()("#sprite", "texture0"), buffer);
1031
1064
  * ```
1032
1065
  */
1033
- function set(path: string | Hash, buffer: Opaque<"buffer">): void;
1066
+ function set(path: string | Hash, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }): void;
1034
1067
  /**
1035
1068
  * Sets the data for a specific atlas resource. Setting new atlas data is specified by passing in
1036
1069
  * a texture path for the backing texture of the atlas, a list of geometries and a list of animations
@@ -1186,7 +1219,7 @@ declare global {
1186
1219
  *
1187
1220
  * export default defineScript({
1188
1221
  * init() {
1189
- * const res_path = go.get<mesh.properties>()("#mesh", "vertices");
1222
+ * const res_path = go.get<mesh.Properties>()("#mesh", "vertices");
1190
1223
  *
1191
1224
  * const positions = [
1192
1225
  * 1, -1, 0,
@@ -1209,7 +1242,7 @@ declare global {
1209
1242
  * });
1210
1243
  * ```
1211
1244
  */
1212
- function set_buffer(path: Hash | string, buffer: Opaque<"buffer">, table?: { transfer_ownership?: boolean }): void;
1245
+ function set_buffer(path: Hash | string, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }, table?: { transfer_ownership?: boolean }): void;
1213
1246
  /**
1214
1247
  * Update internal sound resource (wavc/oggc/opusc) with new data
1215
1248
  *
@@ -1320,7 +1353,7 @@ declare global {
1320
1353
  * // the engine registers a texture format only when the driver supports it
1321
1354
  * const format = graphics.TEXTURE_FORMAT_RGB;
1322
1355
  * if (format !== undefined) {
1323
- * const resource_path = go.get<model.properties>()("#model", "texture0");
1356
+ * const resource_path = go.get<model.Properties>()("#model", "texture0");
1324
1357
  * const args = { width, height, type: graphics.TEXTURE_TYPE_2D, format, num_mip_maps: 1 };
1325
1358
  * resource.set_texture(resource_path, args, buf);
1326
1359
  * }
@@ -1353,7 +1386,7 @@ declare global {
1353
1386
  * // the engine registers a texture format only when the driver supports it
1354
1387
  * const format = graphics.TEXTURE_FORMAT_RGB;
1355
1388
  * if (format !== undefined) {
1356
- * const resource_path = go.get<model.properties>()("#model", "texture0");
1389
+ * const resource_path = go.get<model.Properties>()("#model", "texture0");
1357
1390
  * const args = { width, height, x, y, type: graphics.TEXTURE_TYPE_2D, format, num_mip_maps: 1 };
1358
1391
  * resource.set_texture(resource_path, args, buf);
1359
1392
  * }
@@ -1374,7 +1407,7 @@ declare global {
1374
1407
  * // the engine registers a texture format only when the driver supports it
1375
1408
  * const format = graphics.TEXTURE_FORMAT_RGB;
1376
1409
  * if (format === undefined) return;
1377
- * const resource_path = go.get<model.properties>()("#model", "texture0");
1410
+ * const resource_path = go.get<model.Properties>()("#model", "texture0");
1378
1411
  * // the "my_buffer" resource is expected to hold 128 * 128 * 3 bytes!
1379
1412
  * const args = {
1380
1413
  * width: 128,
@@ -1462,7 +1495,7 @@ declare global {
1462
1495
  * }
1463
1496
  * ```
1464
1497
  */
1465
- function set_texture(path: Hash | string, table: { type: number; width: number; height: number; format: number; x?: number; y?: number; z?: number; page?: number; mipmap?: number; compression_type?: number }, buffer: Opaque<"buffer">): void;
1498
+ function set_texture(path: Hash | string, table: { type: number; width: number; height: number; format: number; x?: number; y?: number; z?: number; page?: number; mipmap?: number; compression_type?: number }, buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> }): void;
1466
1499
  /**
1467
1500
  * Constructor-like function with two purposes:
1468
1501
  *