@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
@@ -6,6 +6,7 @@ declare global {
6
6
  * Functions and messages used to manipulate tile map components.
7
7
  */
8
8
  namespace tilemap {
9
+ type TRANSFORM = typeof tilemap.H_FLIP | typeof tilemap.ROTATE_180 | typeof tilemap.ROTATE_270 | typeof tilemap.ROTATE_90 | typeof tilemap.V_FLIP;
9
10
  /**
10
11
  * flip tile horizontally
11
12
  */
@@ -34,6 +35,11 @@ declare global {
34
35
  * the bounds are calculated as if all layers were collapsed into one.
35
36
  *
36
37
  * @param url - the tile map
38
+ * @returns `[x, y, w, h]`:
39
+ * - `x` — x coordinate of the bottom left corner. **⚠️ 1-based; passed to Defold unchanged.**
40
+ * - `y` — y coordinate of the bottom left corner. **⚠️ 1-based; passed to Defold unchanged.**
41
+ * - `w` — number of columns (width) in the tile map
42
+ * - `h` — number of rows (height) in the tile map
37
43
  * @example
38
44
  * ```ts
39
45
  * // get the level bounds.
@@ -50,8 +56,8 @@ declare global {
50
56
  *
51
57
  * @param url - the tile map
52
58
  * @param layer - name of the layer for the tile
53
- * @param x - x-coordinate of the tile
54
- * @param y - y-coordinate of the tile
59
+ * @param x - x-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
60
+ * @param y - y-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
55
61
  * @returns index of the tile
56
62
  * @example
57
63
  * ```ts
@@ -71,9 +77,9 @@ declare global {
71
77
  *
72
78
  * @param url - the tile map
73
79
  * @param layer - name of the layer for the tile
74
- * @param x - x-coordinate of the tile
75
- * @param y - y-coordinate of the tile
76
- * @returns index of the tile
80
+ * @param x - x-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
81
+ * @param y - y-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
82
+ * @returns full tile information
77
83
  * @example
78
84
  * ```ts
79
85
  * function tile_info_under_player(self: { player_x: number; player_y: number }) {
@@ -113,7 +119,7 @@ declare global {
113
119
  * }
114
120
  * ```
115
121
  */
116
- function get_tiles(url: string | Hash | Url, layer: string | Hash): LuaMap<number, LuaMap<number, number>>;
122
+ function get_tiles(url: string | Hash | Url, layer: string | Hash): LuaTable<number, LuaTable<number, number>>;
117
123
  /**
118
124
  * Resets a shader constant for a tile map component.
119
125
  * The constant must be defined in the material assigned to the tile map.
@@ -134,27 +140,26 @@ declare global {
134
140
  * above and to the right of origin has coordinates 1,1.
135
141
  * Tiles to the left of and below origin are indexed 0, -1, -2 and so forth.
136
142
  *
143
+ * ```text
137
144
  * +-------+-------+------+------+
138
- * | 0,3 | 1,3 | 2,3 | 3,3 |
145
+ * | 0,3 | 1,3 | 2,3 | 3,3 |
139
146
  * +-------+-------+------+------+
140
- * | 0,2 | 1,2 | 2,2 | 3,2 |
147
+ * | 0,2 | 1,2 | 2,2 | 3,2 |
141
148
  * +-------+-------+------+------+
142
- * | 0,1 | 1,1 | 2,1 | 3,1 |
149
+ * | 0,1 | 1,1 | 2,1 | 3,1 |
143
150
  * +-------O-------+------+------+
144
- * | 0,0 | 1,0 | 2,0 | 3,0 |
151
+ * | 0,0 | 1,0 | 2,0 | 3,0 |
145
152
  * +-------+-------+------+------+
153
+ * ```
146
154
  *
147
155
  * The coordinates must be within the bounds of the tile map as it were created.
148
156
  * That is, it is not possible to extend the size of a tile map by setting tiles outside the edges.
149
157
  * To clear a tile, set the tile to number 0. Which tile map and layer to manipulate is identified by the URL and the layer name parameters.
150
- * Transform bitmask is arithmetic sum of one or both FLIP constants (`tilemap.H_FLIP`, `tilemap.V_FLIP`) and/or one of ROTATION constants
151
- * (`tilemap.ROTATE_90`, `tilemap.ROTATE_180`, `tilemap.ROTATE_270`).
152
- * Flip always applies before rotation (clockwise).
153
158
  *
154
159
  * @param url - the tile map
155
160
  * @param layer - name of the layer for the tile
156
- * @param x - x-coordinate of the tile
157
- * @param y - y-coordinate of the tile
161
+ * @param x - x-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
162
+ * @param y - y-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
158
163
  * @param tile - index of new tile to set. 0 resets the cell
159
164
  * @param transform_bitmask - optional flip and/or rotation should be applied to the tile
160
165
  * @example
@@ -171,7 +176,7 @@ declare global {
171
176
  * }
172
177
  * ```
173
178
  */
174
- function set_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number, tile: number, transform_bitmask?: number): void;
179
+ function set_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number, tile: number, transform_bitmask?: tilemap.TRANSFORM | number): boolean;
175
180
  /**
176
181
  * Sets the visibility of the tilemap layer
177
182
  *
@@ -8,6 +8,24 @@ declare global {
8
8
  * also affect the new timer.
9
9
  */
10
10
  namespace timer {
11
+ /**
12
+ * Timer information
13
+ */
14
+ interface info {
15
+ /**
16
+ * Time remaining until the next callback.
17
+ */
18
+ time_remaining: number;
19
+ /**
20
+ * Timer interval.
21
+ */
22
+ delay: number;
23
+ /**
24
+ * Whether the timer repeats until cancelled.
25
+ */
26
+ repeating: boolean;
27
+ }
28
+ type timer_handle = number;
11
29
  /**
12
30
  * Indicates an invalid timer handle
13
31
  */
@@ -17,14 +35,14 @@ declare global {
17
35
  * Cancelling a timer that is already executed or cancelled is safe.
18
36
  *
19
37
  * @param handle - the timer handle returned by timer.delay()
20
- * @returns if the timer was active, false if the timer is already cancelled / complete
38
+ * @returns `true` if the timer was active and cancelled, `false` if the timer was already cancelled or complete
21
39
  * @example
22
40
  * ```ts
23
41
  * function cancel_ticking(self: { handle: number }) {
24
42
  * self.handle = timer.delay(1, true, () => print("print every second"));
25
43
  * // ...
26
- * const result = timer.cancel(self.handle);
27
- * if (!result) {
44
+ * const cancelled = timer.cancel(self.handle);
45
+ * if (!cancelled) {
28
46
  * print("the timer is already cancelled");
29
47
  * }
30
48
  * }
@@ -44,18 +62,20 @@ declare global {
44
62
  * @param callback - timer callback function
45
63
  *
46
64
  * `self`
47
- * object The current object
65
+ * script_instance The current script instance
48
66
  * `handle`
49
- * number The handle of the timer
67
+ * timer_handle The handle of the timer
50
68
  * `time_elapsed`
51
69
  * number The elapsed time - on first trigger it is time since timer.delay call, otherwise time since last trigger
52
70
  * @returns identifier for the create timer, returns timer.INVALID_TIMER_HANDLE if the timer can not be created
53
71
  * @example
72
+ * A simple one-shot timer
54
73
  * ```ts
55
- * // A simple one-shot timer
56
74
  * timer.delay(1, false, () => print("print in one second"));
57
- *
58
- * // Repetitive timer which canceled after 10 calls
75
+ * ```
76
+ * @example
77
+ * Repetitive timer which canceled after 10 calls
78
+ * ```ts
59
79
  * function call_every_second(self: unknown, handle: unknown, time_elapsed: unknown) {
60
80
  * const state = self as { counter: number };
61
81
  * state.counter = state.counter + 1;
@@ -71,19 +91,12 @@ declare global {
71
91
  * }
72
92
  * ```
73
93
  */
74
- function delay(delay: number, repeating: boolean, callback: (self: unknown, handle: unknown, time_elapsed: unknown) => void): number;
94
+ function delay(delay: number, repeating: boolean, callback: (self: unknown, handle: number, time_elapsed: number) => void): number;
75
95
  /**
76
96
  * Get information about timer.
77
97
  *
78
98
  * @param handle - the timer handle returned by timer.delay()
79
- * @returns table or `nil` if timer is cancelled/completed. table with data in the following fields:
80
- *
81
- * `time_remaining`
82
- * number Time remaining until the next time a timer.delay() fires.
83
- * `delay`
84
- * number Time interval.
85
- * `repeating`
86
- * boolean true = repeat timer until cancel, false = one-shot timer.
99
+ * @returns timer information, or `nil` if the timer is cancelled or complete
87
100
  * @example
88
101
  * ```ts
89
102
  * function report_ticking(self: { handle: number }) {
@@ -98,19 +111,19 @@ declare global {
98
111
  * }
99
112
  * ```
100
113
  */
101
- function get_info(handle: number): { time_remaining: number; delay: number; repeating: boolean } | undefined;
114
+ function get_info(handle: number): timer.info | undefined;
102
115
  /**
103
116
  * Manual triggering a callback for a timer.
104
117
  *
105
118
  * @param handle - the timer handle returned by timer.delay()
106
- * @returns if the timer was active, false if the timer is already cancelled / complete
119
+ * @returns `true` if the timer was active and triggered, `false` if the timer was already cancelled or complete
107
120
  * @example
108
121
  * ```ts
109
122
  * function trigger_ticking(self: { handle: number }) {
110
123
  * self.handle = timer.delay(1, true, () => print("print every second or manually by timer.trigger"));
111
124
  * // ...
112
- * const result = timer.trigger(self.handle);
113
- * if (!result) {
125
+ * const triggered = timer.trigger(self.handle);
126
+ * if (!triggered) {
114
127
  * print("the timer is already cancelled or complete");
115
128
  * }
116
129
  * }
@@ -243,13 +243,6 @@ declare global {
243
243
  * @returns true if the body is allowed to sleep
244
244
  */
245
245
  function is_sleeping_enabled(body: Opaque<"b2Body">): boolean;
246
- /**
247
- * This resets the mass properties to the sum of the mass properties of the fixtures.
248
- * This normally does not need to be called unless you called SetMassData to override
249
- *
250
- * @param body - body
251
- */
252
- function reset_mass_data(body: Opaque<"b2Body">): void;
253
246
  /**
254
247
  * Set the active state of the body. An inactive body is not
255
248
  * simulated and cannot be collided with or woken up.
@@ -88,10 +88,10 @@ declare global {
88
88
  * // copy entire stream
89
89
  * const srcstream = buffer.get_stream(srcbuffer, hash("xyz"));
90
90
  * const dststream = buffer.get_stream(dstbuffer, hash("xyz"));
91
- * buffer.copy_stream(dststream, 0, srcstream, 0, srcstream.length);
91
+ * buffer.copy_stream(dststream, 0, srcstream, 0, srcstream.length());
92
92
  * ```
93
93
  */
94
- function copy_stream(dst: Opaque<"bufferstream"> & { [index: number]: number }, dstoffset: number, src: Opaque<"bufferstream"> & { [index: number]: number }, srcoffset: number, count: number): void;
94
+ function copy_stream(dst: Opaque<"bufferstream"> & { [index: number]: number; length: LuaLengthMethod<number> }, dstoffset: number, src: Opaque<"bufferstream"> & { [index: number]: number; length: LuaLengthMethod<number> }, srcoffset: number, count: number): void;
95
95
  /**
96
96
  * Create a new data buffer containing a specified set of streams. A data buffer
97
97
  * can contain one or more streams with typed data. This is useful for managing
@@ -102,33 +102,34 @@ declare global {
102
102
  * @param declaration - A table where each entry (table) describes a stream
103
103
  *
104
104
  * - hash | string `name`: The name of the stream
105
- *
106
105
  * - constant `type`: The data type of the stream
107
- *
108
106
  * - number `count`: The number of values each element should hold
109
107
  * @returns the new buffer
110
108
  * @example
111
109
  * ```ts
112
110
  * // How to create and initialize a buffer
113
111
  * export default defineScript({
114
- * init(self) {
112
+ * init() {
115
113
  * const size = 128;
116
- * self.image = buffer.create(size * size, [{ name: hash("rgb"), type: buffer.VALUE_TYPE_UINT8, count: 3 }]);
117
- * self.imagestream = buffer.get_stream(self.image, hash("rgb"));
118
- *
119
- * for (let y = 0; y < self.height; y++) {
120
- * for (let x = 0; x < self.width; x++) {
121
- * const index = y * self.width * 3 + x * 3;
122
- * self.imagestream[index + 0] = self.r;
123
- * self.imagestream[index + 1] = self.g;
124
- * self.imagestream[index + 2] = self.b;
114
+ * const [width, height] = [size, size];
115
+ * const [r, g, b] = [0xff, 0x80, 0x10];
116
+ * const image = buffer.create(size * size, [{ name: hash("rgb"), type: buffer.VALUE_TYPE_UINT8, count: 3 }]);
117
+ * const imagestream = buffer.get_stream(image, hash("rgb"));
118
+ *
119
+ * for (let y = 0; y < height; y++) {
120
+ * for (let x = 0; x < width; x++) {
121
+ * const index = y * width * 3 + x * 3;
122
+ * imagestream[index + 0] = r;
123
+ * imagestream[index + 1] = g;
124
+ * imagestream[index + 2] = b;
125
125
  * }
126
126
  * }
127
+ * return { image, imagestream };
127
128
  * },
128
129
  * });
129
130
  * ```
130
131
  */
131
- function create(element_count: number, declaration: { name?: Hash | string; type?: Opaque<"constant">; count?: number }): Opaque<"buffer">;
132
+ function create(element_count: number, declaration: { name?: Hash | string; type: buffer.ValueType; count?: number }[]): Opaque<"buffer">;
132
133
  /**
133
134
  * Get a copy of all the bytes from a specified stream as a Lua string.
134
135
  *
@@ -136,7 +137,7 @@ declare global {
136
137
  * @param stream_name - the name of the stream
137
138
  * @returns the buffer data as a Lua string
138
139
  */
139
- function get_bytes(buffer: Opaque<"buffer">, stream_name: Hash): string;
140
+ function get_bytes(buffer: Opaque<"buffer">, stream_name: Hash | string): string;
140
141
  /**
141
142
  * Get a named metadata entry from a buffer along with its type.
142
143
  *
@@ -160,7 +161,7 @@ declare global {
160
161
  * @param stream_name - the stream name
161
162
  * @returns the data stream
162
163
  */
163
- function get_stream(buffer: Opaque<"buffer">, stream_name: Hash | string): Opaque<"bufferstream"> & { [index: number]: number };
164
+ function get_stream(buffer: Opaque<"buffer">, stream_name: Hash | string): Opaque<"bufferstream"> & { [index: number]: number; length: LuaLengthMethod<number> };
164
165
  /**
165
166
  * Creates or updates a metadata array entry on a buffer.
166
167
  * The value type and count given when updating the entry should match those used when first creating it.
@@ -1,5 +1,5 @@
1
1
  /** @noSelfInFile */
2
- import type { Matrix4, Url, Vector3 } from "../../../src/core-types";
2
+ import type { Hash, Matrix4, Url, Vector3 } from "../../../src/core-types";
3
3
 
4
4
  declare global {
5
5
  /**
@@ -28,7 +28,7 @@ declare global {
28
28
  * @param camera - camera id
29
29
  * @returns the effective aspect ratio.
30
30
  */
31
- function get_aspect_ratio(camera?: Url | number): number;
31
+ function get_aspect_ratio(camera?: Url | number | string | Hash): number;
32
32
  /**
33
33
  * Returns whether auto aspect ratio is enabled. When enabled, the camera automatically
34
34
  * calculates aspect ratio from render target dimensions. When disabled, uses the
@@ -37,7 +37,7 @@ declare global {
37
37
  * @param camera - camera id
38
38
  * @returns true if auto aspect ratio is enabled
39
39
  */
40
- function get_auto_aspect_ratio(camera?: Url | number): boolean;
40
+ function get_auto_aspect_ratio(camera?: Url | number | string | Hash): boolean;
41
41
  /**
42
42
  * This function returns a table with all the camera URLs that have been
43
43
  * registered in the render context.
@@ -60,28 +60,28 @@ declare global {
60
60
  * @param camera - camera id
61
61
  * @returns true if the camera is enabled
62
62
  */
63
- function get_enabled(camera?: Url | number): boolean;
63
+ function get_enabled(camera?: Url | number | string | Hash): boolean;
64
64
  /**
65
65
  * get far z
66
66
  *
67
67
  * @param camera - camera id
68
68
  * @returns the far z.
69
69
  */
70
- function get_far_z(camera?: Url | number): number;
70
+ function get_far_z(camera?: Url | number | string | Hash): number;
71
71
  /**
72
72
  * get field of view
73
73
  *
74
74
  * @param camera - camera id
75
75
  * @returns the field of view.
76
76
  */
77
- function get_fov(camera?: Url | number): number;
77
+ function get_fov(camera?: Url | number | string | Hash): number;
78
78
  /**
79
79
  * get near z
80
80
  *
81
81
  * @param camera - camera id
82
82
  * @returns the near z.
83
83
  */
84
- function get_near_z(camera?: Url | number): number;
84
+ function get_near_z(camera?: Url | number | string | Hash): number;
85
85
  /**
86
86
  * get orthographic zoom mode
87
87
  *
@@ -89,28 +89,28 @@ declare global {
89
89
  * @returns one of camera.ORTHO_MODE_FIXED, camera.ORTHO_MODE_AUTO_FIT or
90
90
  * camera.ORTHO_MODE_AUTO_COVER
91
91
  */
92
- function get_orthographic_mode(camera?: Url | number): number;
92
+ function get_orthographic_mode(camera?: Url | number | string | Hash): number;
93
93
  /**
94
94
  * get orthographic zoom
95
95
  *
96
96
  * @param camera - camera id
97
97
  * @returns the zoom level when the camera uses orthographic projection.
98
98
  */
99
- function get_orthographic_zoom(camera?: Url | number): number;
99
+ function get_orthographic_zoom(camera?: Url | number | string | Hash): number;
100
100
  /**
101
101
  * get projection matrix
102
102
  *
103
103
  * @param camera - camera id
104
104
  * @returns the projection matrix.
105
105
  */
106
- function get_projection(camera?: Url | number): Matrix4;
106
+ function get_projection(camera?: Url | number | string | Hash): Matrix4;
107
107
  /**
108
108
  * get view matrix
109
109
  *
110
110
  * @param camera - camera id
111
111
  * @returns the view matrix.
112
112
  */
113
- function get_view(camera?: Url | number): Matrix4;
113
+ function get_view(camera?: Url | number | string | Hash): Matrix4;
114
114
  /**
115
115
  * Converts a screen-space 2D point with view depth to a 3D world point.
116
116
  * z is the view depth in world units measured from the camera plane along the camera forward axis.
@@ -126,7 +126,7 @@ declare global {
126
126
  * export default defineScript({
127
127
  * on_input(self, action_id, action) {
128
128
  * if (action_id === hash("touch")) {
129
- * if (action.pressed) {
129
+ * if (action.pressed && action.screen_x !== undefined && action.screen_y !== undefined) {
130
130
  * const perspective_camera = msg.url("#perspective_camera");
131
131
  * const random_z = math.random(
132
132
  * camera.get_near_z(perspective_camera) + 0.01,
@@ -143,7 +143,7 @@ declare global {
143
143
  * });
144
144
  * ```
145
145
  */
146
- function screen_to_world(pos: Vector3, camera?: Url | number): Vector3;
146
+ function screen_to_world(pos: Vector3, camera?: Url | number | string | Hash): Vector3;
147
147
  /**
148
148
  * Converts 2D screen coordinates (x,y) to the 3D world-space point on the camera's near plane for that pixel.
149
149
  * If a camera isn't specified, the last enabled camera is used.
@@ -158,7 +158,7 @@ declare global {
158
158
  * export default defineScript({
159
159
  * on_input(self, action_id, action) {
160
160
  * if (action_id === hash("touch")) {
161
- * if (action.pressed) {
161
+ * if (action.pressed && action.screen_x !== undefined && action.screen_y !== undefined) {
162
162
  * const world_position = camera.screen_xy_to_world(action.screen_x, action.screen_y);
163
163
  * go.set_position(world_position, "/go1");
164
164
  * }
@@ -167,7 +167,7 @@ declare global {
167
167
  * });
168
168
  * ```
169
169
  */
170
- function screen_xy_to_world(x: number, y: number, camera?: Url | number): Vector3;
170
+ function screen_xy_to_world(x: number, y: number, camera?: Url | number | string | Hash): Vector3;
171
171
  /**
172
172
  * Sets the manual aspect ratio for the camera. This value is only used when
173
173
  * auto aspect ratio is disabled. To disable auto aspect ratio and use this
@@ -176,7 +176,7 @@ declare global {
176
176
  * @param camera - camera id
177
177
  * @param aspect_ratio - the manual aspect ratio value.
178
178
  */
179
- function set_aspect_ratio(camera: Url | number | undefined, aspect_ratio: number): void;
179
+ function set_aspect_ratio(camera: Url | number | string | Hash | undefined, aspect_ratio: number): void;
180
180
  /**
181
181
  * Enables or disables automatic aspect ratio calculation. When enabled (true),
182
182
  * the camera automatically calculates aspect ratio from render target dimensions.
@@ -185,42 +185,42 @@ declare global {
185
185
  * @param camera - camera id
186
186
  * @param auto_aspect_ratio - true to enable auto aspect ratio
187
187
  */
188
- function set_auto_aspect_ratio(camera: Url | number | undefined, auto_aspect_ratio: boolean): void;
188
+ function set_auto_aspect_ratio(camera: Url | number | string | Hash | undefined, auto_aspect_ratio: boolean): void;
189
189
  /**
190
190
  * set far z
191
191
  *
192
192
  * @param camera - camera id
193
193
  * @param far_z - the far z.
194
194
  */
195
- function set_far_z(camera: Url | number | undefined, far_z: number): void;
195
+ function set_far_z(camera: Url | number | string | Hash | undefined, far_z: number): void;
196
196
  /**
197
197
  * set field of view
198
198
  *
199
199
  * @param camera - camera id
200
200
  * @param fov - the field of view.
201
201
  */
202
- function set_fov(camera: Url | number | undefined, fov: number): void;
202
+ function set_fov(camera: Url | number | string | Hash | undefined, fov: number): void;
203
203
  /**
204
204
  * set near z
205
205
  *
206
206
  * @param camera - camera id
207
207
  * @param near_z - the near z.
208
208
  */
209
- function set_near_z(camera: Url | number | undefined, near_z: number): void;
209
+ function set_near_z(camera: Url | number | string | Hash | undefined, near_z: number): void;
210
210
  /**
211
211
  * set orthographic zoom mode
212
212
  *
213
213
  * @param camera - camera id
214
214
  * @param mode - camera.ORTHO_MODE_FIXED, camera.ORTHO_MODE_AUTO_FIT or camera.ORTHO_MODE_AUTO_COVER
215
215
  */
216
- function set_orthographic_mode(camera: Url | number | undefined, mode: number): void;
216
+ function set_orthographic_mode(camera: Url | number | string | Hash | undefined, mode: number): void;
217
217
  /**
218
218
  * set orthographic zoom
219
219
  *
220
220
  * @param camera - camera id
221
221
  * @param orthographic_zoom - the zoom level when the camera uses orthographic projection.
222
222
  */
223
- function set_orthographic_zoom(camera: Url | number | undefined, orthographic_zoom: number): void;
223
+ function set_orthographic_zoom(camera: Url | number | string | Hash | undefined, orthographic_zoom: number): void;
224
224
  /**
225
225
  * Converts a 3D world position to screen-space coordinates with view depth.
226
226
  * Returns a vector3 where x and y are in screen pixels and z is the view depth in world units
@@ -239,7 +239,7 @@ declare global {
239
239
  * const screen_pos = camera.world_to_screen(world_pos);
240
240
  * ```
241
241
  */
242
- function world_to_screen(world_pos: Vector3, camera?: Url | number): Vector3;
242
+ function world_to_screen(world_pos: Vector3, camera?: Url | number | string | Hash): Vector3;
243
243
  }
244
244
  }
245
245
 
@@ -43,21 +43,20 @@ declare global {
43
43
  * @param scale - uniform scaling to apply to the newly spawned collection (must be greater than 0).
44
44
  * @returns a table mapping the id:s from the collection to the new instance id:s
45
45
  * @example
46
+ * How to spawn a collection of game objects:
46
47
  * ```ts
47
- * // How to spawn a collection of game objects:
48
48
  * export default defineScript({
49
- * init(self) {
49
+ * init() {
50
50
  * // Spawn a small group of enemies.
51
51
  * const pos = vmath.vector3(100, 12.5, 0);
52
52
  * const rot = vmath.quat_rotation_z(Math.PI / 2);
53
53
  * const scale = 0.5;
54
- * const props = {
55
- * [hash("/enemy_leader")]: { health: 1000.0 },
56
- * [hash("/enemy_1")]: { health: 200.0 },
57
- * [hash("/enemy_2")]: { health: 400.0, color: hash("green") },
58
- * };
54
+ * const props = new LuaMap<Hash, Record<string, unknown>>();
55
+ * props.set(hash("/enemy_leader"), { health: 1000.0 });
56
+ * props.set(hash("/enemy_1"), { health: 200.0 });
57
+ * props.set(hash("/enemy_2"), { health: 400.0, color: hash("green") });
59
58
  *
60
- * self.enemy_ids = collectionfactory.create("#enemyfactory", pos, rot, props, scale);
59
+ * const enemy_ids = collectionfactory.create("#enemyfactory", pos, rot, props, scale);
61
60
  * // enemy_ids now map to the spawned instance ids:
62
61
  * //
63
62
  * // pprint(self.enemy_ids)
@@ -70,18 +69,23 @@ declare global {
70
69
  * // }
71
70
  *
72
71
  * // Send "attack" message to the leader. First look up its instance id.
73
- * const leader_id = self.enemy_ids[hash("/enemy_leader")];
74
- * msg.post(leader_id, "attack");
72
+ * const leader_id = enemy_ids.get(hash("/enemy_leader"));
73
+ * if (leader_id !== undefined) {
74
+ * msg.post(leader_id, "attack");
75
+ * }
76
+ * return { enemy_ids };
75
77
  * },
76
78
  * });
77
- *
78
- * // How to delete a spawned collection:
79
+ * ```
80
+ * @example
81
+ * How to delete a spawned collection:
82
+ * ```ts
79
83
  * function delete_enemies(self: { enemy_ids: Hash[] }) {
80
84
  * go.delete(self.enemy_ids);
81
85
  * }
82
86
  * ```
83
87
  */
84
- function create(url: string | Hash | Url, position?: Vector3, rotation?: Quaternion, properties?: Record<string | number, unknown>, scale?: number | Vector3): LuaMap<Hash, Hash>;
88
+ function create(url: string | Hash | Url, position?: Vector3, rotation?: Quaternion, properties?: LuaMap<Hash, Record<string | number, unknown>> | Record<string, Record<string | number, unknown>>, scale?: number | Vector3): LuaMap<Hash, Hash>;
85
89
  /**
86
90
  * This returns status of the collection factory.
87
91
  * Calling this function when the factory is not marked as dynamic loading always returns COMP_COLLECTION_FACTORY_STATUS_LOADED.
@@ -90,12 +94,10 @@ declare global {
90
94
  * @returns status of the collection factory component
91
95
  *
92
96
  * - `collectionfactory.STATUS_UNLOADED`
93
- *
94
97
  * - `collectionfactory.STATUS_LOADING`
95
- *
96
98
  * - `collectionfactory.STATUS_LOADED`
97
99
  */
98
- function get_status(url?: string | Hash | Url): collectionfactory.Status;
100
+ function get_status(url: string | Hash | Url): collectionfactory.Status;
99
101
  /**
100
102
  * Resources loaded are referenced by the collection factory component until the existing (parent) collection is destroyed or collectionfactory.unload is called.
101
103
  * Calling this function when the factory is not marked as dynamic loading does nothing.
@@ -115,7 +117,7 @@ declare global {
115
117
  * collectionfactory.load("#factory", (self, url, result) => {});
116
118
  * ```
117
119
  */
118
- function load(url?: string | Hash | Url, complete_function?: (self: unknown, url: unknown, result: unknown) => void): void;
120
+ function load(url: string | Hash | Url, complete_function: (self: unknown, url: unknown, result: unknown) => void): void;
119
121
  /**
120
122
  * Changes the prototype for the collection factory.
121
123
  * Setting the prototype to "nil" will revert back to the original prototype.
@@ -130,7 +132,7 @@ declare global {
130
132
  * const ids = collectionfactory.create("#factory", go.get_world_position(), vmath.quat());
131
133
  * ```
132
134
  */
133
- function set_prototype(url?: string | Hash | Url, prototype?: string): void;
135
+ function set_prototype(url: string | Hash | Url, prototype: string | undefined): void;
134
136
  /**
135
137
  * This decreases the reference count for each resource loaded with collectionfactory.load. If reference is zero, the resource is destroyed.
136
138
  * Calling this function when the factory is not marked as dynamic loading does nothing.
@@ -142,7 +144,7 @@ declare global {
142
144
  * collectionfactory.unload("#factory");
143
145
  * ```
144
146
  */
145
- function unload(url?: string | Hash | Url): void;
147
+ function unload(url: string | Hash | Url): void;
146
148
  }
147
149
  }
148
150
 
@@ -40,7 +40,7 @@ declare global {
40
40
  * }
41
41
  * ```
42
42
  */
43
- function get_resources(collectionproxy: Url): Hash[];
43
+ function get_resources(collectionproxy: Url | string | Hash): string[];
44
44
  /**
45
45
  * The collection should be loaded by the collection proxy.
46
46
  * Setting the collection to "nil" will revert it back to the original collection.
@@ -64,7 +64,7 @@ declare global {
64
64
  * msg.post("/go#collectionproxy", "enable");
65
65
  * ```
66
66
  */
67
- function set_collection(url?: string | Hash | Url, prototype?: string): LuaMultiReturn<[boolean, number]>;
67
+ function set_collection(url: string | Hash | Url, prototype: string | undefined): LuaMultiReturn<[boolean, number]>;
68
68
  }
69
69
  }
70
70
 
@@ -99,7 +99,7 @@ declare global {
99
99
  * reads user field from a loaded crash dump
100
100
  *
101
101
  * @param handle - crash dump handle
102
- * @param index - user data slot index
102
+ * @param index - user data slot index. **0️⃣ 0-based; passed to Defold unchanged.**
103
103
  * @returns user data value recorded in the crash dump
104
104
  */
105
105
  function get_user_field(handle: number, index: number): string;
@@ -127,7 +127,7 @@ declare global {
127
127
  * a crash occurs. This can be user id:s, breadcrumb data etc.
128
128
  * There are 32 slots indexed from 0. Each slot stores at most 255 characters.
129
129
  *
130
- * @param index - slot index. 0-indexed
130
+ * @param index - slot index. 0-indexed. **0️⃣ 0-based; passed to Defold unchanged.**
131
131
  * @param value - string value to store
132
132
  */
133
133
  function set_user_field(index: number, value: string): void;