@defold-typescript/types 0.40.0 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/api-availability.json +3963 -772
  2. package/api-migrations.json +27 -0
  3. package/api-signatures.json +18069 -10240
  4. package/api-targets.json +448 -11
  5. package/examples/translations.json +560 -89
  6. package/fixtures/messages_doc.json +96 -0
  7. package/generated/b2d.d.ts +680 -4
  8. package/generated/b2d_body.d.ts +29 -103
  9. package/generated/b2d_chain.d.ts +5 -6
  10. package/generated/b2d_fixture.d.ts +34 -38
  11. package/generated/b2d_joint.d.ts +503 -25
  12. package/generated/b2d_shape.d.ts +183 -20
  13. package/generated/b2d_world.d.ts +57 -63
  14. package/generated/buffer.d.ts +16 -15
  15. package/generated/builtin-messages.d.ts +7 -1
  16. package/generated/bullet3d.d.ts +91 -0
  17. package/generated/bullet3d_collision_object.d.ts +433 -0
  18. package/generated/bullet3d_constraint.d.ts +818 -0
  19. package/generated/bullet3d_rigid_body.d.ts +429 -0
  20. package/generated/bullet3d_shape.d.ts +123 -0
  21. package/generated/bullet3d_world.d.ts +492 -0
  22. package/generated/camera.d.ts +29 -32
  23. package/generated/collectionfactory.d.ts +15 -18
  24. package/generated/collectionproxy.d.ts +22 -6
  25. package/generated/compute.d.ts +12 -238
  26. package/generated/crash.d.ts +24 -10
  27. package/generated/editor-vm/http.d.ts +90 -7
  28. package/generated/editor-vm/image.d.ts +7 -7
  29. package/generated/editor-vm/json.d.ts +11 -0
  30. package/generated/editor-vm/localization.d.ts +7 -7
  31. package/generated/editor-vm/tilemap_tiles.d.ts +56 -10
  32. package/generated/editor-vm/zip.d.ts +28 -0
  33. package/generated/editor.d.ts +1496 -430
  34. package/generated/factory.d.ts +21 -25
  35. package/generated/font.d.ts +64 -22
  36. package/generated/go.d.ts +235 -182
  37. package/generated/graphics.d.ts +335 -97
  38. package/generated/gui.d.ts +240 -471
  39. package/generated/html5.d.ts +2 -2
  40. package/generated/http.d.ts +28 -35
  41. package/generated/image.d.ts +105 -72
  42. package/generated/json.d.ts +34 -16
  43. package/generated/kinds/gui-script.d.ts +7 -0
  44. package/generated/kinds/render-script.d.ts +7 -0
  45. package/generated/kinds/script.d.ts +7 -0
  46. package/generated/label.d.ts +77 -7
  47. package/generated/liveupdate.d.ts +13 -10
  48. package/generated/material.d.ts +312 -360
  49. package/generated/model.d.ts +40 -39
  50. package/generated/particlefx.d.ts +19 -28
  51. package/generated/physics.d.ts +365 -133
  52. package/generated/profiler.d.ts +13 -23
  53. package/generated/render.d.ts +237 -297
  54. package/generated/resource.d.ts +664 -583
  55. package/generated/socket.d.ts +120 -133
  56. package/generated/sound.d.ts +62 -31
  57. package/generated/sprite.d.ts +31 -17
  58. package/generated/sys.d.ts +234 -190
  59. package/generated/tilemap.d.ts +21 -16
  60. package/generated/timer.d.ts +34 -21
  61. package/generated/versions/defold-1.12.4/b2d_body.d.ts +0 -7
  62. package/generated/versions/defold-1.12.4/buffer.d.ts +1 -3
  63. package/generated/versions/defold-1.12.4/camera.d.ts +21 -21
  64. package/generated/versions/defold-1.12.4/collectionfactory.d.ts +9 -9
  65. package/generated/versions/defold-1.12.4/collectionproxy.d.ts +2 -2
  66. package/generated/versions/defold-1.12.4/crash.d.ts +2 -2
  67. package/generated/versions/defold-1.12.4/factory.d.ts +15 -16
  68. package/generated/versions/defold-1.12.4/go.d.ts +6 -12
  69. package/generated/versions/defold-1.12.4/gui.d.ts +77 -175
  70. package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
  71. package/generated/versions/defold-1.12.4/http.d.ts +0 -13
  72. package/generated/versions/defold-1.12.4/image.d.ts +16 -33
  73. package/generated/versions/defold-1.12.4/index.d.ts +1 -0
  74. package/generated/versions/defold-1.12.4/json.d.ts +10 -6
  75. package/generated/versions/defold-1.12.4/label.d.ts +2 -3
  76. package/generated/versions/defold-1.12.4/liveupdate.d.ts +5 -3
  77. package/generated/versions/defold-1.12.4/model.d.ts +2 -10
  78. package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
  79. package/generated/versions/defold-1.12.4/physics.d.ts +69 -67
  80. package/generated/versions/defold-1.12.4/profiler.d.ts +2 -5
  81. package/generated/versions/defold-1.12.4/render.d.ts +99 -128
  82. package/generated/versions/defold-1.12.4/resource.d.ts +120 -148
  83. package/generated/versions/defold-1.12.4/socket.d.ts +34 -60
  84. package/generated/versions/defold-1.12.4/sound.d.ts +8 -8
  85. package/generated/versions/defold-1.12.4/sprite.d.ts +15 -5
  86. package/generated/versions/defold-1.12.4/sys.d.ts +37 -71
  87. package/generated/versions/defold-1.12.4/tilemap.d.ts +18 -11
  88. package/generated/versions/defold-1.12.4/timer.d.ts +5 -3
  89. package/generated/versions/defold-1.12.4/vmath.d.ts +0 -21
  90. package/generated/versions/defold-1.12.4/window.d.ts +1 -16
  91. package/generated/versions/defold-1.13.0/b2d_body.d.ts +10 -55
  92. package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +25 -25
  93. package/generated/versions/defold-1.13.0/b2d_shape.d.ts +169 -8
  94. package/generated/versions/defold-1.13.0/b2d_world.d.ts +16 -10
  95. package/generated/versions/defold-1.13.0/buffer.d.ts +1 -3
  96. package/generated/versions/defold-1.13.0/camera.d.ts +25 -25
  97. package/generated/versions/defold-1.13.0/collectionfactory.d.ts +9 -9
  98. package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
  99. package/generated/versions/defold-1.13.0/compute.d.ts +0 -69
  100. package/generated/versions/defold-1.13.0/crash.d.ts +2 -2
  101. package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +3 -3
  102. package/generated/versions/defold-1.13.0/editor.d.ts +34 -24
  103. package/generated/versions/defold-1.13.0/factory.d.ts +15 -16
  104. package/generated/versions/defold-1.13.0/go.d.ts +6 -12
  105. package/generated/versions/defold-1.13.0/graphics.d.ts +73 -37
  106. package/generated/versions/defold-1.13.0/gui.d.ts +77 -175
  107. package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
  108. package/generated/versions/defold-1.13.0/http.d.ts +0 -13
  109. package/generated/versions/defold-1.13.0/image.d.ts +16 -33
  110. package/generated/versions/defold-1.13.0/index.d.ts +1 -0
  111. package/generated/versions/defold-1.13.0/json.d.ts +10 -6
  112. package/generated/versions/defold-1.13.0/label.d.ts +2 -3
  113. package/generated/versions/defold-1.13.0/liveupdate.d.ts +7 -5
  114. package/generated/versions/defold-1.13.0/material.d.ts +68 -106
  115. package/generated/versions/defold-1.13.0/model.d.ts +2 -10
  116. package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
  117. package/generated/versions/defold-1.13.0/physics.d.ts +69 -67
  118. package/generated/versions/defold-1.13.0/profiler.d.ts +2 -5
  119. package/generated/versions/defold-1.13.0/render.d.ts +99 -128
  120. package/generated/versions/defold-1.13.0/resource.d.ts +126 -150
  121. package/generated/versions/defold-1.13.0/socket.d.ts +34 -60
  122. package/generated/versions/defold-1.13.0/sound.d.ts +8 -8
  123. package/generated/versions/defold-1.13.0/sprite.d.ts +15 -5
  124. package/generated/versions/defold-1.13.0/sys.d.ts +37 -71
  125. package/generated/versions/defold-1.13.0/tilemap.d.ts +18 -11
  126. package/generated/versions/defold-1.13.0/timer.d.ts +5 -3
  127. package/generated/versions/defold-1.13.0/vmath.d.ts +0 -21
  128. package/generated/versions/defold-1.13.0/window.d.ts +1 -16
  129. package/generated/versions/defold-1.13.1/b2d.d.ts +33 -0
  130. package/generated/versions/defold-1.13.1/b2d_body.d.ts +636 -0
  131. package/generated/versions/defold-1.13.1/b2d_chain.d.ts +106 -0
  132. package/generated/versions/defold-1.13.1/b2d_fixture.d.ts +157 -0
  133. package/generated/versions/defold-1.13.1/b2d_joint.d.ts +823 -0
  134. package/generated/versions/defold-1.13.1/b2d_shape.d.ts +400 -0
  135. package/generated/versions/defold-1.13.1/b2d_world.d.ts +320 -0
  136. package/generated/versions/defold-1.13.1/buffer.d.ts +189 -0
  137. package/generated/versions/defold-1.13.1/camera.d.ts +303 -0
  138. package/generated/versions/defold-1.13.1/collectionfactory.d.ts +151 -0
  139. package/generated/versions/defold-1.13.1/collectionproxy.d.ts +93 -0
  140. package/generated/versions/defold-1.13.1/compute.d.ts +237 -0
  141. package/generated/versions/defold-1.13.1/crash.d.ts +143 -0
  142. package/generated/versions/defold-1.13.1/editor-vm/http.d.ts +56 -0
  143. package/generated/versions/defold-1.13.1/editor-vm/image.d.ts +48 -0
  144. package/generated/versions/defold-1.13.1/editor-vm/json.d.ts +10 -0
  145. package/generated/versions/defold-1.13.1/editor-vm/localization.d.ts +42 -0
  146. package/generated/versions/defold-1.13.1/editor-vm/tilemap_tiles.d.ts +80 -0
  147. package/generated/versions/defold-1.13.1/editor-vm/zip.d.ts +10 -0
  148. package/generated/versions/defold-1.13.1/editor-vm/zlib.d.ts +24 -0
  149. package/generated/versions/defold-1.13.1/editor.d.ts +1121 -0
  150. package/generated/versions/defold-1.13.1/factory.d.ts +124 -0
  151. package/generated/versions/defold-1.13.1/font.d.ts +81 -0
  152. package/generated/versions/defold-1.13.1/go.d.ts +1107 -0
  153. package/generated/versions/defold-1.13.1/graphics.d.ts +411 -0
  154. package/generated/versions/defold-1.13.1/gui.d.ts +2353 -0
  155. package/generated/versions/defold-1.13.1/html5.d.ts +55 -0
  156. package/generated/versions/defold-1.13.1/http.d.ts +77 -0
  157. package/generated/versions/defold-1.13.1/image.d.ts +131 -0
  158. package/generated/versions/defold-1.13.1/index.d.ts +57 -0
  159. package/generated/versions/defold-1.13.1/json.d.ts +80 -0
  160. package/generated/versions/defold-1.13.1/kinds/editor-script.d.ts +14 -0
  161. package/generated/versions/defold-1.13.1/label.d.ts +93 -0
  162. package/generated/versions/defold-1.13.1/liveupdate.d.ts +142 -0
  163. package/generated/versions/defold-1.13.1/material.d.ts +408 -0
  164. package/generated/versions/defold-1.13.1/model.d.ts +272 -0
  165. package/generated/versions/defold-1.13.1/msg.d.ts +10 -0
  166. package/generated/versions/defold-1.13.1/particlefx.d.ts +163 -0
  167. package/generated/versions/defold-1.13.1/physics.d.ts +559 -0
  168. package/generated/versions/defold-1.13.1/profiler.d.ts +235 -0
  169. package/generated/versions/defold-1.13.1/render.d.ts +1190 -0
  170. package/generated/versions/defold-1.13.1/resource.d.ts +1523 -0
  171. package/generated/versions/defold-1.13.1/socket.d.ts +784 -0
  172. package/generated/versions/defold-1.13.1/sound.d.ts +292 -0
  173. package/generated/versions/defold-1.13.1/sprite.d.ts +175 -0
  174. package/generated/versions/defold-1.13.1/sys.d.ts +678 -0
  175. package/generated/versions/defold-1.13.1/tilemap.d.ts +208 -0
  176. package/generated/versions/defold-1.13.1/timer.d.ts +125 -0
  177. package/generated/versions/defold-1.13.1/types.d.ts +61 -0
  178. package/generated/versions/defold-1.13.1/vmath.d.ts +774 -0
  179. package/generated/versions/defold-1.13.1/window.d.ts +183 -0
  180. package/generated/versions/defold-1.13.1/zlib.d.ts +41 -0
  181. package/generated/vmath.d.ts +1 -21
  182. package/generated/window.d.ts +71 -71
  183. package/identity-vocabulary.json +561 -0
  184. package/index.d.ts +7 -0
  185. package/package.json +18 -2
  186. package/scripts/example-store-io.ts +12 -1
  187. package/scripts/extension-goldens.ts +1 -0
  188. package/scripts/fidelity-baseline.json +146 -46
  189. package/scripts/generate-api-availability.ts +90 -12
  190. package/scripts/generate-api-signatures.ts +12 -2
  191. package/scripts/import-defold-release.ts +106 -26
  192. package/scripts/prose-constants.ts +77 -16
  193. package/scripts/regen.ts +391 -77
  194. package/scripts/shared-handle-methods.ts +53 -0
  195. package/scripts/signature-store-fs.ts +1 -0
  196. package/scripts/sync-api-docs.ts +48 -10
  197. package/src/api-availability.ts +0 -0
  198. package/src/api-doc.ts +201 -3
  199. package/src/api-identity.ts +252 -0
  200. package/src/core-types.ts +26 -3
  201. package/src/correction-pins.ts +49 -0
  202. package/src/doc-comment.ts +104 -11
  203. package/src/doc-corrections.ts +108 -0
  204. package/src/editor-vm-globals.d.ts +5 -2
  205. package/src/emit-dts.ts +2064 -281
  206. package/src/emit-messages.ts +52 -0
  207. package/src/example-store.ts +125 -14
  208. package/src/field-correction-coverage.ts +204 -0
  209. package/src/fnv1a.ts +16 -0
  210. package/src/go-overloads.d.ts +25 -6
  211. package/src/index-base-table.ts +145 -0
  212. package/src/index-slot-classifications.ts +588 -0
  213. package/src/index.ts +38 -5
  214. package/src/library-index-slot-classifications.ts +332 -0
  215. package/src/lifecycle.ts +61 -199
  216. package/src/luals-type-expr.ts +354 -0
  217. package/src/msg-overloads.d.ts +0 -1
  218. package/src/param-correction-provenance.ts +8 -11
  219. package/src/render-overloads.d.ts +0 -15
  220. package/src/return-correction-provenance.ts +58 -16
  221. package/src/sys-overloads.d.ts +48 -0
  222. package/src/vmath-overloads.d.ts +27 -1
  223. package/src/window-event-guard.d.ts +6 -9
  224. package/url-parameters.json +1 -2
@@ -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;