@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
@@ -34,6 +34,11 @@ declare global {
34
34
  * the bounds are calculated as if all layers were collapsed into one.
35
35
  *
36
36
  * @param url - the tile map
37
+ * @returns `[x, y, w, h]`:
38
+ * - `x` — x coordinate of the bottom left corner. **⚠️ 1-based; passed to Defold unchanged.**
39
+ * - `y` — y coordinate of the bottom left corner. **⚠️ 1-based; passed to Defold unchanged.**
40
+ * - `w` — number of columns (width) in the tile map
41
+ * - `h` — number of rows (height) in the tile map
37
42
  * @example
38
43
  * ```ts
39
44
  * // get the level bounds.
@@ -50,8 +55,8 @@ declare global {
50
55
  *
51
56
  * @param url - the tile map
52
57
  * @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
58
+ * @param x - x-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
59
+ * @param y - y-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
55
60
  * @returns index of the tile
56
61
  * @example
57
62
  * ```ts
@@ -71,8 +76,8 @@ declare global {
71
76
  *
72
77
  * @param url - the tile map
73
78
  * @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
79
+ * @param x - x-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
80
+ * @param y - y-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
76
81
  * @returns index of the tile
77
82
  * @example
78
83
  * ```ts
@@ -120,15 +125,17 @@ declare global {
120
125
  * above and to the right of origin has coordinates 1,1.
121
126
  * Tiles to the left of and below origin are indexed 0, -1, -2 and so forth.
122
127
  *
128
+ * ```text
123
129
  * +-------+-------+------+------+
124
- * | 0,3 | 1,3 | 2,3 | 3,3 |
130
+ * | 0,3 | 1,3 | 2,3 | 3,3 |
125
131
  * +-------+-------+------+------+
126
- * | 0,2 | 1,2 | 2,2 | 3,2 |
132
+ * | 0,2 | 1,2 | 2,2 | 3,2 |
127
133
  * +-------+-------+------+------+
128
- * | 0,1 | 1,1 | 2,1 | 3,1 |
134
+ * | 0,1 | 1,1 | 2,1 | 3,1 |
129
135
  * +-------O-------+------+------+
130
- * | 0,0 | 1,0 | 2,0 | 3,0 |
136
+ * | 0,0 | 1,0 | 2,0 | 3,0 |
131
137
  * +-------+-------+------+------+
138
+ * ```
132
139
  *
133
140
  * The coordinates must be within the bounds of the tile map as it were created.
134
141
  * That is, it is not possible to extend the size of a tile map by setting tiles outside the edges.
@@ -139,8 +146,8 @@ declare global {
139
146
  *
140
147
  * @param url - the tile map
141
148
  * @param layer - name of the layer for the tile
142
- * @param x - x-coordinate of the tile
143
- * @param y - y-coordinate of the tile
149
+ * @param x - x-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
150
+ * @param y - y-coordinate of the tile. **⚠️ 1-based; passed to Defold unchanged.**
144
151
  * @param tile - index of new tile to set. 0 resets the cell
145
152
  * @param transform_bitmask - optional flip and/or rotation should be applied to the tile
146
153
  * @example
@@ -157,7 +164,7 @@ declare global {
157
164
  * }
158
165
  * ```
159
166
  */
160
- function set_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number, tile: number, transform_bitmask?: number): void;
167
+ function set_tile(url: string | Hash | Url, layer: string | Hash, x: number, y: number, tile: number, transform_bitmask?: number): boolean;
161
168
  /**
162
169
  * Sets the visibility of the tilemap layer
163
170
  *
@@ -51,11 +51,13 @@ declare global {
51
51
  * number The elapsed time - on first trigger it is time since timer.delay call, otherwise time since last trigger
52
52
  * @returns identifier for the create timer, returns timer.INVALID_TIMER_HANDLE if the timer can not be created
53
53
  * @example
54
+ * A simple one-shot timer
54
55
  * ```ts
55
- * // A simple one-shot timer
56
56
  * timer.delay(1, false, () => print("print in one second"));
57
- *
58
- * // Repetitive timer which canceled after 10 calls
57
+ * ```
58
+ * @example
59
+ * Repetitive timer which canceled after 10 calls
60
+ * ```ts
59
61
  * function call_every_second(self: unknown, handle: unknown, time_elapsed: unknown) {
60
62
  * const state = self as { counter: number };
61
63
  * state.counter = state.counter + 1;
@@ -49,7 +49,7 @@ declare global {
49
49
  function conj(q1: Quaternion): Quaternion;
50
50
  /**
51
51
  * Given two linearly independent vectors P and Q, the cross product,
52
- * P × Q, is a vector that is perpendicular to both P and Q and
52
+ * P × Q, is a vector that is perpendicular to both P and Q and
53
53
  * therefore normal to the plane containing them.
54
54
  * If the two vectors have the same direction (or have the exact
55
55
  * opposite direction from one another, i.e. are not linearly independent)
@@ -70,13 +70,11 @@ declare global {
70
70
  function cross(v1: Vector3, v2: Vector3): Vector3;
71
71
  /**
72
72
  * The returned value is a scalar defined as:
73
- * `P ⋅ Q = |P| |Q| cos θ`
74
- * where θ is the angle between the vectors P and Q.
73
+ * `P ⋅ Q = |P| |Q| cos θ`
74
+ * where θ is the angle between the vectors P and Q.
75
75
  *
76
76
  * - If the dot product is positive then the angle between the vectors is below 90 degrees.
77
- *
78
77
  * - If the dot product is zero the vectors are perpendicular (at right-angles to each other).
79
- *
80
78
  * - If the dot product is negative then the angle between the vectors is more than 90 degrees.
81
79
  *
82
80
  * @param v1 - first vector
@@ -437,8 +435,8 @@ declare global {
437
435
  /**
438
436
  * Calculates the extent the projection of the first vector onto the second.
439
437
  * The returned value is a scalar p defined as:
440
- * `p = |P| cos θ / |Q|`
441
- * where θ is the angle between the vectors P and Q.
438
+ * `p = |P| cos θ / |Q|`
439
+ * where θ is the angle between the vectors P and Q.
442
440
  *
443
441
  * @param v1 - vector to be projected on the second
444
442
  * @param v2 - vector onto which the first will be projected, must not have zero length
@@ -643,25 +641,6 @@ declare global {
643
641
  * ```
644
642
  */
645
643
  function rotate(q: Quaternion, v1: Vector3): Vector3;
646
- /**
647
- * Creates a vector of arbitrary size. The vector is initialized
648
- * with numeric values from a table.
649
- * The table values are converted to floating point
650
- * values. If a value cannot be converted, a 0 is stored in that
651
- * value position in the vector.
652
- *
653
- * @param t - table of numbers
654
- * @returns new vector
655
- * @example
656
- * ```ts
657
- * // How to create a vector with custom data to be used for animation easing:
658
- * const values = [0, 0.5, 0];
659
- * const vec = vmath.vector(values);
660
- * print(vec); // => vmath.vector (size: 3)
661
- * print(vec[2]); // => 0.5
662
- * ```
663
- */
664
- function vector(t: number[]): Vector;
665
644
  /**
666
645
  * Creates a new zero vector with all components set to 0.
667
646
  *
@@ -53,9 +53,7 @@ declare global {
53
53
  * @returns The mode for screen dimming
54
54
  *
55
55
  * - `window.DIMMING_UNKNOWN`
56
- *
57
56
  * - `window.DIMMING_ON`
58
- *
59
57
  * - `window.DIMMING_OFF`
60
58
  */
61
59
  function get_dim_mode(): window.DimModeState;
@@ -82,19 +80,12 @@ declare global {
82
80
  * table table containing these keys:
83
81
  *
84
82
  * - number `x`
85
- *
86
83
  * - number `y`
87
- *
88
84
  * - number `width`
89
- *
90
85
  * - number `height`
91
- *
92
86
  * - number `inset_left`
93
- *
94
87
  * - number `inset_top`
95
- *
96
88
  * - number `inset_right`
97
- *
98
89
  * - number `inset_bottom`
99
90
  */
100
91
  function get_safe_area(): { x: number; y: number; width: number; height: number; inset_left: number; inset_top: number; inset_right: number; inset_bottom: number };
@@ -110,7 +101,6 @@ declare global {
110
101
  * @param mode - The mode for screen dimming
111
102
  *
112
103
  * - `window.DIMMING_ON`
113
- *
114
104
  * - `window.DIMMING_OFF`
115
105
  */
116
106
  function set_dim_mode(mode: window.DimModeStateSettable): void;
@@ -125,20 +115,15 @@ declare global {
125
115
  * constant The type of event. Can be one of these:
126
116
  *
127
117
  * - `window.WINDOW_EVENT_FOCUS_LOST`
128
- *
129
118
  * - `window.WINDOW_EVENT_FOCUS_GAINED`
130
- *
131
119
  * - `window.WINDOW_EVENT_RESIZED`
132
- *
133
120
  * - `window.WINDOW_EVENT_ICONIFIED`
134
- *
135
121
  * - `window.WINDOW_EVENT_DEICONIFIED`
136
122
  *
137
123
  * `data`
138
124
  * table The callback value `data` is a table which currently holds these values
139
125
  *
140
126
  * - number `width`: The width of a resize event. nil otherwise.
141
- *
142
127
  * - number `height`: The height of a resize event. nil otherwise.
143
128
  * @example
144
129
  * ```ts
@@ -163,7 +148,7 @@ declare global {
163
148
  * });
164
149
  * ```
165
150
  */
166
- function set_listener(callback?: (self: unknown, event: typeof WINDOW_EVENT_FOCUS_LOST | typeof WINDOW_EVENT_FOCUS_GAINED | typeof WINDOW_EVENT_RESIZED | typeof WINDOW_EVENT_ICONFIED | typeof WINDOW_EVENT_DEICONIFIED, data: Record<string | number, unknown>) => void): void;
151
+ function set_listener(callback: ((self: unknown, event: (typeof window)[Extract<keyof typeof window, `WINDOW_EVENT_${string}`>], data: Record<string | number, unknown>) => void) | undefined): void;
167
152
  /**
168
153
  * Set the locking state for current mouse cursor on a PC platform.
169
154
  * This function locks or unlocks the mouse cursor to the center point of the window. While the cursor is locked,
@@ -1,5 +1,5 @@
1
1
  /** @noSelfInFile */
2
- import type { Hash, Opaque, Vector3 } from "../../../src/core-types";
2
+ import type { Opaque, Vector3 } from "../../../src/core-types";
3
3
 
4
4
  declare global {
5
5
  /**
@@ -114,7 +114,7 @@ declare global {
114
114
  * }
115
115
  * ```
116
116
  */
117
- function create_chain(body: Opaque<"b2Body">, definition: Record<string | number, unknown>): LuaMultiReturn<[Opaque<"b2Chain">, { shape_id: number }[]]>;
117
+ function create_chain(body: Opaque<"b2Body">, definition: { vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3; friction?: number; restitution?: number; material?: number; filter?: { category_bits?: number; mask_bits?: number; group_index?: number }; enable_sensor_events?: boolean }): LuaMultiReturn<[Opaque<"b2Chain">, { shape_id: number }[]]>;
118
118
  /**
119
119
  * Creates a fixture and attach it to this body. Use this function if you need
120
120
  * to set some fixture parameters, like friction. Otherwise you can create the
@@ -132,7 +132,7 @@ declare global {
132
132
  * `polygon` = `{ type = b2d.shape.SHAPE_TYPE_POLYGON, vertices = { vector3, ... } }`
133
133
  * `box` = `{ type = b2d.shape.SHAPE_TYPE_BOX, hx = number, hy = number, center = vector3_or_nil, angle = radians_or_nil }`
134
134
  * `chain` = `{ type = b2d.shape.SHAPE_TYPE_CHAIN, vertices = { vector3, ... }, loop = boolean_or_nil, prev_vertex = vector3_or_nil, next_vertex = vector3_or_nil }`
135
- * @returns fixture info table with `index`, `type`, `sensor`, `density`, `friction`, `restitution`, and `child_count`
135
+ * @returns fixture info table with `index`, `type`, `sensor`, `density`, `friction`, `restitution`, and `child_count`. **⚠️ `index` is 1-based; passed to Defold unchanged.**
136
136
  * @example
137
137
  * ```ts
138
138
  * const body = b2d.get_body("#collisionobject");
@@ -144,18 +144,7 @@ declare global {
144
144
  * }
145
145
  * ```
146
146
  */
147
- function create_fixture(body: Opaque<"b2Body">, definition: { shape?: { type?: number; radius?: number; center?: Vector3; v0?: Vector3; v1?: Vector3; v2?: Vector3; v3?: Vector3; vertices?: Vector3[]; hx?: number; hy?: number; angle?: number; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }; friction?: number; restitution?: number; density?: number; sensor?: boolean; filter?: { category_bits?: number; mask_bits?: number; group_index?: number } }): { index: number; type: number; sensor: boolean; density: number; friction: number; restitution: number; child_count: number };
148
- /**
149
- * Creates a fixture from a shape and attach it to this body.
150
- * This is a convenience function. Use b2FixtureDef if you need to set parameters
151
- * like friction, restitution, user data, or filtering.
152
- * If the density is non-zero, this function automatically updates the mass of the body.
153
- *
154
- * @param body - body
155
- * @param shape - the shape to be cloned.
156
- * @param density - the shape density (set to zero for static bodies).
157
- */
158
- function create_fixture(body: Opaque<"b2Body">, shape: Opaque<"b2Shape">, density: number): void;
147
+ function create_fixture(body: Opaque<"b2Body">, definition: { shape: { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; hx: number; hy: number; center?: Vector3; angle?: number } | { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; vertices: Vector3[] } | { type: typeof b2d.shape.SHAPE_TYPE_CIRCLE; radius: number; center?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_EDGE; v1: Vector3; v2: Vector3; v0?: Vector3; v3?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CHAIN; vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }; friction?: number; restitution?: number; density?: number; sensor?: boolean; is_sensor?: boolean; filter?: { category_bits: number; mask_bits: number; group_index: number } }): { index: number; type: number; sensor: boolean; density: number; friction: number; restitution: number; child_count: number };
159
148
  /**
160
149
  * Creates a shape and attaches it to this body.
161
150
  * If the density is non-zero, this function automatically updates the mass of the body.
@@ -166,13 +155,14 @@ declare global {
166
155
  *
167
156
  * @param body - body
168
157
  * @param definition - the shape definition.
158
+ * @returns **⚠️ `index` is 1-based; passed to Defold unchanged.**
169
159
  */
170
- function create_shape(body: Opaque<"b2Body">, definition: Record<string | number, unknown>): void;
160
+ function create_shape(body: Opaque<"b2Body">, definition: ({ shape: { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; hx: number; hy: number; center?: Vector3; angle?: number } | { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; vertices: Vector3[] } | { type: typeof b2d.shape.SHAPE_TYPE_CIRCLE; radius: number; center?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CAPSULE; radius: number; center1: Vector3; center2: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_EDGE | typeof b2d.shape.SHAPE_TYPE_SEGMENT; v1: Vector3; v2: Vector3 } } | { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; hx: number; hy: number; center?: Vector3; angle?: number } | { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; vertices: Vector3[] } | { type: typeof b2d.shape.SHAPE_TYPE_CIRCLE; radius: number; center?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CAPSULE; radius: number; center1: Vector3; center2: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_EDGE | typeof b2d.shape.SHAPE_TYPE_SEGMENT; v1: Vector3; v2: Vector3 }) & { density?: number; friction?: number; restitution?: number; material?: number; sensor?: boolean; is_sensor?: boolean; filter?: { category_bits: number; mask_bits: number; group_index: number } }): { index: number; shape_id: Opaque<"b2Shape">; type: number; sensor: boolean; density: number; friction: number; restitution: number; material: number; child_count: number; is_chain_segment: boolean };
171
161
  /**
172
162
  * Destroy a fixture from a body.
173
163
  *
174
164
  * @param body - body
175
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
165
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
176
166
  */
177
167
  function destroy_fixture(body: Opaque<"b2Body">, fixture_index: number): void;
178
168
  /**
@@ -183,7 +173,7 @@ declare global {
183
173
  * All shapes attached to a body are implicitly destroyed when the body is destroyed.
184
174
  *
185
175
  * @param body - body
186
- * @param shape_index - 1-based shape index from `b2d.body.get_shapes`
176
+ * @param shape_index - 1-based shape index from `b2d.body.get_shapes`. **⚠️ 1-based; passed to Defold unchanged.**
187
177
  */
188
178
  function destroy_shape(body: Opaque<"b2Body">, shape_index: number): void;
189
179
  /**
@@ -241,18 +231,11 @@ declare global {
241
231
  * @returns array of contact tables
242
232
  */
243
233
  function get_contact_data(body: Opaque<"b2Body">): Record<string | number, unknown>;
244
- /**
245
- * Get the list of all contacts attached to this body.
246
- *
247
- * @param body - body
248
- * @returns the first edge
249
- */
250
- function get_contact_list(body: Opaque<"b2Body">): Opaque<"b2ContactEdge">;
251
234
  /**
252
235
  * Get the fixtures attached to this body.
253
236
  *
254
237
  * @param body - body
255
- * @returns array of fixture info tables with `index`, `type`, `sensor`, `density`, `friction`, `restitution`, and `child_count`
238
+ * @returns array of fixture info tables with `index`, `type`, `sensor`, `density`, `friction`, `restitution`, and `child_count`. **⚠️ `index` is 1-based; passed to Defold unchanged.**
256
239
  */
257
240
  function get_fixtures(body: Opaque<"b2Body">): { index: number; type: number; sensor: boolean; density: number; friction: number; restitution: number; child_count: number }[];
258
241
  /**
@@ -426,26 +409,12 @@ declare global {
426
409
  * @returns the body type
427
410
  */
428
411
  function get_type(body: Opaque<"b2Body">): (number & { readonly __brand: "b2d.body.B2_DYNAMIC_BODY" }) | (number & { readonly __brand: "b2d.body.B2_KINEMATIC_BODY" }) | (number & { readonly __brand: "b2d.body.B2_STATIC_BODY" });
429
- /**
430
- * Get the user data pointer that was provided in the body definition.
431
- *
432
- * @param body - body
433
- * @returns the game object id this body is connected to
434
- */
435
- function get_user_data(body: Opaque<"b2Body">): Hash;
436
412
  /**
437
413
  * Get the parent world of this body.
438
414
  *
439
415
  * @param body - body
440
416
  */
441
417
  function get_world(body: Opaque<"b2Body">): Opaque<"b2World">;
442
- /**
443
- * Get the angle in radians.
444
- *
445
- * @param body - body
446
- * @returns the current world rotation angle in radians.
447
- */
448
- function get_world_center(body: Opaque<"b2Body">): number;
449
418
  /**
450
419
  * Get the world position of the center of mass.
451
420
  *
@@ -613,14 +582,7 @@ declare global {
613
582
  * @param body - body
614
583
  * @param data - table with `mass`, `center` in local coordinates, and `inertia`.
615
584
  */
616
- function set_mass_data(body: Opaque<"b2Body">, data: { mass?: number; center?: Vector3; inertia?: number }): void;
617
- /**
618
- * Set the mass properties to override the mass properties of the shapes.
619
- *
620
- * @param body - body
621
- * @param data - the mass properties.
622
- */
623
- function set_mass_data(body: Opaque<"b2Body">, data: Opaque<"b2MassData">): void;
585
+ function set_mass_data(body: Opaque<"b2Body">, data: { mass: number; center: Vector3; inertia: number }): void;
624
586
  /**
625
587
  * Set the body name.
626
588
  *
@@ -668,13 +630,6 @@ declare global {
668
630
  * @param type - the body type
669
631
  */
670
632
  function set_type(body: Opaque<"b2Body">, type: (number & { readonly __brand: "b2d.body.B2_DYNAMIC_BODY" }) | (number & { readonly __brand: "b2d.body.B2_KINEMATIC_BODY" }) | (number & { readonly __brand: "b2d.body.B2_STATIC_BODY" })): void;
671
- /**
672
- * Set the user data. Use this to store your application specific data.
673
- *
674
- * @param body - body
675
- * @param id - the game object id
676
- */
677
- function set_user_data(body: Opaque<"b2Body">, id: Hash): void;
678
633
  }
679
634
  }
680
635
 
@@ -11,8 +11,8 @@ declare global {
11
11
  * Get fixture AABB for a child shape.
12
12
  *
13
13
  * @param body - body
14
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
15
- * @param child_index - 1-based child shape index
14
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
15
+ * @param child_index - 1-based child shape index. **⚠️ 1-based; passed to Defold unchanged.**
16
16
  * @returns table with `lower` and `upper`
17
17
  */
18
18
  function get_aabb(body: Opaque<"b2Body">, fixture_index: number, child_index: number): { lower: Vector3; upper: Vector3 };
@@ -20,7 +20,7 @@ declare global {
20
20
  * Get fixture density.
21
21
  *
22
22
  * @param body - body
23
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
23
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
24
24
  * @returns density in kg/m^2
25
25
  */
26
26
  function get_density(body: Opaque<"b2Body">, fixture_index: number): number;
@@ -28,8 +28,8 @@ declare global {
28
28
  * Get fixture filter data for a child shape.
29
29
  *
30
30
  * @param body - body
31
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
32
- * @param child_index - 1-based child shape index
31
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
32
+ * @param child_index - 1-based child shape index. **⚠️ 1-based; passed to Defold unchanged.**
33
33
  * @returns table with `category_bits`, `mask_bits`, and `group_index`
34
34
  */
35
35
  function get_filter_data(body: Opaque<"b2Body">, fixture_index: number, child_index: number): { category_bits: number; mask_bits: number; group_index: number };
@@ -37,47 +37,47 @@ declare global {
37
37
  * Get fixture friction.
38
38
  *
39
39
  * @param body - body
40
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
40
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
41
41
  */
42
42
  function get_friction(body: Opaque<"b2Body">, fixture_index: number): number;
43
43
  /**
44
44
  * Get fixture restitution.
45
45
  *
46
46
  * @param body - body
47
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
47
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
48
48
  */
49
49
  function get_restitution(body: Opaque<"b2Body">, fixture_index: number): number;
50
50
  /**
51
51
  * Get the fixture shape as a functional shape table.
52
52
  *
53
53
  * @param body - body
54
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
54
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
55
55
  * @returns shape table with numeric `type` from `b2d.shape.SHAPE_TYPE_*`,
56
56
  * suitable for reuse in `b2d.body.create_fixture`.
57
57
  * Circle shapes use `radius` and `center`, edge shapes use `v1`, `v2`, optional `v0`, `v3`,
58
58
  * polygon shapes use `vertices`, and chain shapes use `vertices`, `loop`, optional `prev_vertex`, and `next_vertex`.
59
59
  * Any angle values are in radians.
60
60
  */
61
- function get_shape(body: Opaque<"b2Body">, fixture_index: number): { type: number; radius?: number; center?: Vector3; v0?: Vector3; v1?: Vector3; v2?: Vector3; v3?: Vector3; vertices?: Vector3[]; hx?: number; hy?: number; angle?: number; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 };
61
+ function get_shape(body: Opaque<"b2Body">, fixture_index: number): { type: number; radius?: number; center?: Vector3; v0?: Vector3; v1?: Vector3; v2?: Vector3; v3?: Vector3; vertices?: Vector3[]; hx?: number; hy?: number; angle?: number; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3; center1?: Vector3; center2?: Vector3 };
62
62
  /**
63
63
  * Get the fixture type.
64
64
  *
65
65
  * @param body - body
66
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
66
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
67
67
  */
68
68
  function get_type(body: Opaque<"b2Body">, fixture_index: number): number;
69
69
  /**
70
70
  * Check if a fixture is a sensor.
71
71
  *
72
72
  * @param body - body
73
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
73
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
74
74
  */
75
75
  function is_sensor(body: Opaque<"b2Body">, fixture_index: number): boolean;
76
76
  /**
77
77
  * Refilter a fixture.
78
78
  *
79
79
  * @param body - body
80
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
80
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
81
81
  * @param touch_proxies - if true, touch broad-phase proxies
82
82
  */
83
83
  function refilter(body: Opaque<"b2Body">, fixture_index: number, touch_proxies: boolean): void;
@@ -85,39 +85,39 @@ declare global {
85
85
  * Set fixture density.
86
86
  *
87
87
  * @param body - body
88
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
88
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
89
89
  * @param density - density in kg/m^2
90
90
  * @param update_mass - if true, reset body mass data after the change
91
91
  */
92
- function set_density(body: Opaque<"b2Body">, fixture_index: number, density: number, update_mass: boolean): void;
92
+ function set_density(body: Opaque<"b2Body">, fixture_index: number, density: number, update_mass?: boolean): void;
93
93
  /**
94
94
  * Set fixture filter data for a child shape.
95
95
  *
96
96
  * @param body - body
97
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
98
- * @param child_index - 1-based child shape index
97
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
98
+ * @param child_index - 1-based child shape index. **⚠️ 1-based; passed to Defold unchanged.**
99
99
  * @param filter - table with `category_bits`, `mask_bits`, and `group_index`
100
100
  */
101
- function set_filter_data(body: Opaque<"b2Body">, fixture_index: number, child_index: number, filter: { category_bits?: number; mask_bits?: number; group_index?: number }): void;
101
+ function set_filter_data(body: Opaque<"b2Body">, fixture_index: number, child_index: number, filter: { category_bits: number; mask_bits: number; group_index: number }): void;
102
102
  /**
103
103
  * Set fixture friction.
104
104
  *
105
105
  * @param body - body
106
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
106
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
107
107
  */
108
108
  function set_friction(body: Opaque<"b2Body">, fixture_index: number, friction: number): void;
109
109
  /**
110
110
  * Set fixture restitution.
111
111
  *
112
112
  * @param body - body
113
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
113
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
114
114
  */
115
115
  function set_restitution(body: Opaque<"b2Body">, fixture_index: number, restitution: number): void;
116
116
  /**
117
117
  * Set sensor mode for a fixture.
118
118
  *
119
119
  * @param body - body
120
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
120
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
121
121
  */
122
122
  function set_sensor(body: Opaque<"b2Body">, fixture_index: number, enabled: boolean): void;
123
123
  /**
@@ -128,7 +128,7 @@ declare global {
128
128
  * The body mass is not updated unless `update_mass` is true.
129
129
  *
130
130
  * @param body - body
131
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
131
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
132
132
  * @param shape - shape table with numeric `type` from `b2d.shape.SHAPE_TYPE_*`
133
133
  * @param update_mass - if true, reset body mass data after the change
134
134
  * @example
@@ -136,18 +136,18 @@ declare global {
136
136
  * const body = b2d.get_body("#collisionobject");
137
137
  * if (body !== undefined) {
138
138
  * const circle = b2d.fixture.get_shape(body, 1);
139
- * circle.center = vmath.vector3(24, 0, 0);
140
- * b2d.fixture.set_shape(body, 1, circle, true);
139
+ * const radius = "radius" in circle ? circle.radius : undefined;
140
+ * b2d.fixture.set_shape(body, 1, { type: b2d.shape.SHAPE_TYPE_CIRCLE, radius: radius ?? 16, center: vmath.vector3(24, 0, 0) }, true);
141
141
  * b2d.fixture.set_shape(body, 2, { type: b2d.shape.SHAPE_TYPE_EDGE, v1: vmath.vector3(-32, 0, 0), v2: vmath.vector3(32, 0, 0) });
142
142
  * }
143
143
  * ```
144
144
  */
145
- function set_shape(body: Opaque<"b2Body">, fixture_index: number, shape: { type?: number; radius?: number; center?: Vector3; v0?: Vector3; v1?: Vector3; v2?: Vector3; v3?: Vector3; vertices?: Vector3[]; hx?: number; hy?: number; angle?: number; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }, update_mass?: boolean): void;
145
+ function set_shape(body: Opaque<"b2Body">, fixture_index: number, shape: { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; hx: number; hy: number; center?: Vector3; angle?: number } | { type: typeof b2d.shape.SHAPE_TYPE_POLYGON | typeof b2d.shape.SHAPE_TYPE_BOX; vertices: Vector3[] } | { type: typeof b2d.shape.SHAPE_TYPE_CIRCLE; radius: number; center?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_EDGE; v1: Vector3; v2: Vector3; v0?: Vector3; v3?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CHAIN; vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }, update_mass?: boolean): void;
146
146
  /**
147
147
  * Test a point against a fixture.
148
148
  *
149
149
  * @param body - body
150
- * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`
150
+ * @param fixture_index - 1-based fixture index from `b2d.body.get_fixtures`. **⚠️ 1-based; passed to Defold unchanged.**
151
151
  * @param point - point in world coordinates
152
152
  */
153
153
  function test_point(body: Opaque<"b2Body">, fixture_index: number, point: Vector3): boolean;