@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
@@ -0,0 +1,320 @@
1
+ /** @noSelfInFile */
2
+ import type { Opaque, Vector3 } from "../../../src/core-types";
3
+
4
+ declare global {
5
+ /**
6
+ * Query and cast functions for the Defold-owned Box2D v2 world.
7
+ */
8
+ namespace b2d.world {
9
+ /**
10
+ * The capsule table has `center1`, `center2`, and `radius` fields. The return
11
+ * value is the fraction of `translation` that can be traveled before collision,
12
+ * or 1 if there is no hit.
13
+ *
14
+ * @param world - world
15
+ * @param capsule - capsule table with `center1`, `center2`, and `radius`
16
+ * @param translation - capsule displacement
17
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
18
+ * @returns travel fraction before collision
19
+ */
20
+ function cast_mover(world: Opaque<"b2World">, capsule: { center1: Vector3; center2: Vector3; radius: number }, translation: Vector3, filter?: { category_bits?: number; mask_bits?: number }): number;
21
+ /**
22
+ * Cast a ray.
23
+ *
24
+ * @param world - world from `b2d.get_world` or `b2d.body.get_world`
25
+ * @param origin - world ray origin
26
+ * @param translation - world ray translation
27
+ * @param filter - optional query filter with `category_bits`, `mask_bits`, and optional `group_index`
28
+ * @param max_results - optional maximum result count
29
+ */
30
+ function cast_ray(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results: number): LuaMultiReturn<[{ fixture: number; shape: number; point: Vector3; normal: Vector3; fraction: number }[], { node_visits: number; leaf_visits: number }]>;
31
+ /**
32
+ * The translation is the ray displacement from `origin`. Result order is not
33
+ * guaranteed by Box2D.
34
+ *
35
+ * @param world - world
36
+ * @param origin - ray start position
37
+ * @param translation - ray displacement
38
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
39
+ * @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
40
+ */
41
+ function cast_ray(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results?: number): LuaMultiReturn<[{ fixture: number; shape: number; point: Vector3; normal: Vector3; fraction: number }[], { node_visits: number; leaf_visits: number }]>;
42
+ /**
43
+ * Cast a ray and return the closest hit.
44
+ *
45
+ * @param world - world from `b2d.get_world` or `b2d.body.get_world`
46
+ * @param origin - world ray origin
47
+ * @param translation - world ray translation
48
+ * @param filter - optional query filter with `category_bits`, `mask_bits`, and optional `group_index`
49
+ * @returns hit table with `fixture`, `shape`, `point`, `normal`, `fraction`, `node_visits`, and `leaf_visits`, or nil
50
+ */
51
+ function cast_ray_closest(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter: { category_bits?: number; mask_bits?: number; group_index?: number }): { fixture: number; shape: number; point: Vector3; normal: Vector3; fraction: number; node_visits: number; leaf_visits: number } | undefined;
52
+ /**
53
+ * The translation is the ray displacement from `origin`.
54
+ *
55
+ * @param world - world
56
+ * @param origin - ray start position
57
+ * @param translation - ray displacement
58
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
59
+ * @returns closest cast hit table with `node_visits` and `leaf_visits`, or `nil` on miss
60
+ */
61
+ function cast_ray_closest(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: { category_bits?: number; mask_bits?: number; group_index?: number }): { fixture: number; shape: number; point: Vector3; normal: Vector3; fraction: number; node_visits: number; leaf_visits: number } | undefined;
62
+ /**
63
+ * Uses Box2D v2 time-of-impact for fixture child shapes that support distance proxies.
64
+ * Grid fixture children are skipped.
65
+ *
66
+ * @param world - world from `b2d.get_world` or `b2d.body.get_world`
67
+ * @param shape - shape table using the same format as the `shape` field in `b2d.body.create_fixture`
68
+ * @param translation - world shape translation
69
+ * @param filter - optional query filter with `category_bits`, `mask_bits`, and optional `group_index`
70
+ * @param max_results - optional maximum result count
71
+ */
72
+ function cast_shape(world: Opaque<"b2World">, 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; v0?: Vector3; v3?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CHAIN; vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }, translation: Vector3, filter: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results: number): LuaMultiReturn<[{ fixture: number; shape: number; point: Vector3; normal: Vector3; fraction: number }[], { node_visits: number; leaf_visits: number }]>;
73
+ /**
74
+ * The shape table uses the same circle, capsule, segment, polygon, and box formats
75
+ * as `b2d.body.create_shape`. The translation is the shape displacement.
76
+ *
77
+ * @param world - world
78
+ * @param shape - shape table
79
+ * @param translation - shape displacement
80
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
81
+ * @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
82
+ */
83
+ function cast_shape(world: Opaque<"b2World">, 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; v0?: Vector3; v3?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CHAIN; vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }, translation: Vector3, filter?: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results?: number): LuaMultiReturn<[{ fixture: number; shape: number; point: Vector3; normal: Vector3; fraction: number }[], { node_visits: number; leaf_visits: number }]>;
84
+ /**
85
+ * The capsule table has `center1`, `center2`, and `radius` fields. Plane result
86
+ * tables include `shape`, `normal`, `offset`, and `hit`.
87
+ *
88
+ * @param world - world
89
+ * @param capsule - capsule table with `center1`, `center2`, and `radius`
90
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
91
+ * @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
92
+ * @returns array of plane result tables
93
+ */
94
+ function collide_mover(world: Opaque<"b2World">, capsule: { center1: Vector3; center2: Vector3; radius: number }, filter?: { category_bits?: number; mask_bits?: number }, max_results?: number): Record<string | number, unknown>;
95
+ /**
96
+ * Enable or disable continuous collision.
97
+ *
98
+ * @param world - world
99
+ * @param enable - true to enable continuous collision
100
+ */
101
+ function enable_continuous(world: Opaque<"b2World">, enable: boolean): void;
102
+ /**
103
+ * Enable or disable world sleeping.
104
+ *
105
+ * @param world - world
106
+ * @param enable - true to allow sleeping
107
+ */
108
+ function enable_sleeping(world: Opaque<"b2World">, enable: boolean): void;
109
+ /**
110
+ * Enable or disable speculative collision.
111
+ *
112
+ * @param world - world
113
+ * @param enable - true to enable speculative collision
114
+ */
115
+ function enable_speculative(world: Opaque<"b2World">, enable: boolean): void;
116
+ /**
117
+ * Enable or disable warm starting.
118
+ *
119
+ * @param world - world
120
+ * @param enable - true to enable warm starting
121
+ */
122
+ function enable_warm_starting(world: Opaque<"b2World">, enable: boolean): void;
123
+ /**
124
+ * The definition table requires `position`, `radius`, `falloff`, and
125
+ * `impulse_per_length`. It may also include `mask_bits`.
126
+ *
127
+ * @param world - world
128
+ * @param definition - explosion definition
129
+ */
130
+ function explode(world: Opaque<"b2World">, definition: { position: Vector3; radius: number; falloff: number; impulse_per_length: number; mask_bits?: number }): void;
131
+ /**
132
+ * Get the number of awake bodies.
133
+ *
134
+ * @param world - world
135
+ * @returns awake body count
136
+ */
137
+ function get_awake_body_count(world: Opaque<"b2World">): number;
138
+ /**
139
+ * The returned table contains `body_count`, `shape_count`, `contact_count`,
140
+ * `joint_count`, `island_count`, `stack_used`, `static_tree_height`,
141
+ * `tree_height`, `byte_count`, `task_count`, and `color_counts`.
142
+ *
143
+ * @param world - world
144
+ * @returns world counters
145
+ */
146
+ function get_counters(world: Opaque<"b2World">): Record<string | number, unknown>;
147
+ /**
148
+ * Get world gravity.
149
+ *
150
+ * @param world - world
151
+ * @returns gravity vector
152
+ */
153
+ function get_gravity(world: Opaque<"b2World">): Vector3;
154
+ /**
155
+ * Get the hit event threshold.
156
+ *
157
+ * @param world - world
158
+ * @returns hit event threshold in project units per second
159
+ */
160
+ function get_hit_event_threshold(world: Opaque<"b2World">): number;
161
+ /**
162
+ * Get the maximum linear speed.
163
+ *
164
+ * @param world - world
165
+ * @returns maximum linear speed in project units per second
166
+ */
167
+ function get_maximum_linear_speed(world: Opaque<"b2World">): number;
168
+ /**
169
+ * The returned table contains Box2D timing fields including `step`, `pairs`,
170
+ * `collide`, `solve`, `merge_islands`, `prepare_stages`, `solve_constraints`,
171
+ * `prepare_constraints`, `integrate_velocities`, `warm_start`,
172
+ * `solve_impulses`, `integrate_positions`, `relax_impulses`,
173
+ * `apply_restitution`, `store_impulses`, `split_islands`, `transforms`,
174
+ * `hit_events`, `refit`, `bullets`, `sleep_islands`, and `sensors`.
175
+ *
176
+ * @param world - world
177
+ * @returns world profiling data
178
+ */
179
+ function get_profile(world: Opaque<"b2World">): Record<string | number, unknown>;
180
+ /**
181
+ * Get the restitution threshold.
182
+ *
183
+ * @param world - world
184
+ * @returns restitution threshold in project units per second
185
+ */
186
+ function get_restitution_threshold(world: Opaque<"b2World">): number;
187
+ /**
188
+ * Get whether continuous collision is enabled.
189
+ *
190
+ * @param world - world
191
+ * @returns true if continuous collision is enabled
192
+ */
193
+ function is_continuous_enabled(world: Opaque<"b2World">): boolean;
194
+ /**
195
+ * The world is locked during callbacks and some simulation phases. Functions
196
+ * marked as locked during callbacks cannot be called while this returns true.
197
+ *
198
+ * @param world - world
199
+ * @returns true if the world is locked
200
+ */
201
+ function is_locked(world: Opaque<"b2World">): boolean;
202
+ /**
203
+ * Get whether world sleeping is enabled.
204
+ *
205
+ * @param world - world
206
+ * @returns true if sleeping is enabled
207
+ */
208
+ function is_sleeping_enabled(world: Opaque<"b2World">): boolean;
209
+ /**
210
+ * Check whether a world handle is valid.
211
+ *
212
+ * @param world - world
213
+ * @returns true if the world handle is valid
214
+ */
215
+ function is_valid(world: Opaque<"b2World">): boolean;
216
+ /**
217
+ * Get whether warm starting is enabled.
218
+ *
219
+ * @param world - world
220
+ * @returns true if warm starting is enabled
221
+ */
222
+ function is_warm_starting_enabled(world: Opaque<"b2World">): boolean;
223
+ /**
224
+ * Overlap an AABB.
225
+ *
226
+ * @param world - world from `b2d.get_world` or `b2d.body.get_world`
227
+ * @param aabb - table with `lower` and `upper` vector3 fields
228
+ * @param filter - optional query filter with `category_bits`, `mask_bits`, and optional `group_index`
229
+ * @param max_results - optional maximum result count
230
+ * @returns `[fixtures, stats]`:
231
+ * - `fixtures` — array of fixture info tables. **⚠️ `index` is 1-based; passed to Defold unchanged.**
232
+ * - `stats` — table with `node_visits` and `leaf_visits`
233
+ */
234
+ function overlap_aabb(world: Opaque<"b2World">, aabb: { lower: Vector3; upper: Vector3 }, filter: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results: number): LuaMultiReturn<[{ index: number; type: number; sensor: boolean; density: number; friction: number; restitution: number; child_count: number }[], { node_visits: number; leaf_visits: number }]>;
235
+ /**
236
+ * The AABB table has `lower` and `upper` `vector3` fields.
237
+ *
238
+ * @param world - world
239
+ * @param aabb - AABB table with `lower` and `upper`
240
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
241
+ * @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
242
+ */
243
+ function overlap_aabb(world: Opaque<"b2World">, aabb: { lower: Vector3; upper: Vector3 }, filter?: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results?: number): LuaMultiReturn<[{ shape_id: number }[], { node_visits: number; leaf_visits: number }]>;
244
+ /**
245
+ * Overlap a shape.
246
+ *
247
+ * @param world - world from `b2d.get_world` or `b2d.body.get_world`
248
+ * @param shape - shape table using the same format as the `shape` field in `b2d.body.create_fixture`
249
+ * @param filter - optional query filter with `category_bits`, `mask_bits`, and optional `group_index`
250
+ * @param max_results - optional maximum result count
251
+ * @returns `[fixtures, stats]`:
252
+ * - `fixtures` — array of fixture info tables. **⚠️ `index` is 1-based; passed to Defold unchanged.**
253
+ * - `stats` — table with `node_visits` and `leaf_visits`
254
+ */
255
+ function overlap_shape(world: Opaque<"b2World">, 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; v0?: Vector3; v3?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CHAIN; vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }, filter: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results: number): LuaMultiReturn<[{ index: number; type: number; sensor: boolean; density: number; friction: number; restitution: number; child_count: number }[], { node_visits: number; leaf_visits: number }]>;
256
+ /**
257
+ * The shape table uses the same circle, capsule, segment, polygon, and box formats
258
+ * as `b2d.body.create_shape`.
259
+ *
260
+ * @param world - world
261
+ * @param shape - shape table
262
+ * @param filter - optional query filter with `category_bits` and `mask_bits`
263
+ * @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
264
+ */
265
+ function overlap_shape(world: Opaque<"b2World">, 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; v0?: Vector3; v3?: Vector3 } | { type: typeof b2d.shape.SHAPE_TYPE_CHAIN; vertices: Vector3[]; loop?: boolean; prev_vertex?: Vector3; next_vertex?: Vector3 }, filter?: { category_bits?: number; mask_bits?: number; group_index?: number }, max_results?: number): LuaMultiReturn<[{ shape_id: number }[], { node_visits: number; leaf_visits: number }]>;
266
+ /**
267
+ * Rebuild the static broad-phase tree.
268
+ *
269
+ * @param world - world
270
+ */
271
+ function rebuild_static_tree(world: Opaque<"b2World">): void;
272
+ /**
273
+ * Set contact solver tuning.
274
+ *
275
+ * @param world - world
276
+ * @param hertz - contact stiffness frequency in hertz
277
+ * @param damping_ratio - contact damping ratio
278
+ * @param pushout - pushout velocity in project units per second
279
+ */
280
+ function set_contact_tuning(world: Opaque<"b2World">, hertz: number, damping_ratio: number, pushout: number): void;
281
+ /**
282
+ * Set world gravity.
283
+ *
284
+ * @param world - world
285
+ * @param gravity - gravity vector
286
+ */
287
+ function set_gravity(world: Opaque<"b2World">, gravity: Vector3): void;
288
+ /**
289
+ * Set the hit event threshold.
290
+ *
291
+ * @param world - world
292
+ * @param threshold - hit event threshold in project units per second
293
+ */
294
+ function set_hit_event_threshold(world: Opaque<"b2World">, threshold: number): void;
295
+ /**
296
+ * Set joint solver tuning.
297
+ *
298
+ * @param world - world
299
+ * @param hertz - joint stiffness frequency in hertz
300
+ * @param damping_ratio - joint damping ratio
301
+ */
302
+ function set_joint_tuning(world: Opaque<"b2World">, hertz: number, damping_ratio: number): void;
303
+ /**
304
+ * Set the maximum linear speed.
305
+ *
306
+ * @param world - world
307
+ * @param speed - maximum linear speed in project units per second
308
+ */
309
+ function set_maximum_linear_speed(world: Opaque<"b2World">, speed: number): void;
310
+ /**
311
+ * Collisions below this relative speed use inelastic collision response.
312
+ *
313
+ * @param world - world
314
+ * @param threshold - restitution threshold in project units per second
315
+ */
316
+ function set_restitution_threshold(world: Opaque<"b2World">, threshold: number): void;
317
+ }
318
+ }
319
+
320
+ export {};
@@ -0,0 +1,189 @@
1
+ /** @noSelfInFile */
2
+ import type { Hash, Opaque } from "../../../src/core-types";
3
+
4
+ declare global {
5
+ /**
6
+ * Functions for manipulating buffers and streams
7
+ */
8
+ namespace buffer {
9
+ type ValueType = typeof buffer.VALUE_TYPE_FLOAT32 | typeof buffer.VALUE_TYPE_INT16 | typeof buffer.VALUE_TYPE_INT32 | typeof buffer.VALUE_TYPE_INT64 | typeof buffer.VALUE_TYPE_INT8 | typeof buffer.VALUE_TYPE_UINT16 | typeof buffer.VALUE_TYPE_UINT32 | typeof buffer.VALUE_TYPE_UINT64 | typeof buffer.VALUE_TYPE_UINT8;
10
+ /**
11
+ * Float, single precision, 4 bytes
12
+ */
13
+ const VALUE_TYPE_FLOAT32: number & { readonly __brand: "buffer.VALUE_TYPE_FLOAT32" };
14
+ /**
15
+ * Signed integer, 2 bytes
16
+ */
17
+ const VALUE_TYPE_INT16: number & { readonly __brand: "buffer.VALUE_TYPE_INT16" };
18
+ /**
19
+ * Signed integer, 4 bytes
20
+ */
21
+ const VALUE_TYPE_INT32: number & { readonly __brand: "buffer.VALUE_TYPE_INT32" };
22
+ /**
23
+ * Signed integer, 8 bytes
24
+ */
25
+ const VALUE_TYPE_INT64: number & { readonly __brand: "buffer.VALUE_TYPE_INT64" };
26
+ /**
27
+ * Signed integer, 1 byte
28
+ */
29
+ const VALUE_TYPE_INT8: number & { readonly __brand: "buffer.VALUE_TYPE_INT8" };
30
+ /**
31
+ * Unsigned integer, 2 bytes
32
+ */
33
+ const VALUE_TYPE_UINT16: number & { readonly __brand: "buffer.VALUE_TYPE_UINT16" };
34
+ /**
35
+ * Unsigned integer, 4 bytes
36
+ */
37
+ const VALUE_TYPE_UINT32: number & { readonly __brand: "buffer.VALUE_TYPE_UINT32" };
38
+ /**
39
+ * Unsigned integer, 8 bytes
40
+ */
41
+ const VALUE_TYPE_UINT64: number & { readonly __brand: "buffer.VALUE_TYPE_UINT64" };
42
+ /**
43
+ * Unsigned integer, 1 byte
44
+ */
45
+ const VALUE_TYPE_UINT8: number & { readonly __brand: "buffer.VALUE_TYPE_UINT8" };
46
+ /**
47
+ * Copy all data streams from one buffer to another, element wise.
48
+ * Each of the source streams must have a matching stream in the
49
+ * destination buffer. The streams must match in both type and size.
50
+ * The source and destination buffer can be the same.
51
+ *
52
+ * @param dst - the destination buffer
53
+ * @param dstoffset - the offset to start copying data to
54
+ * @param src - the source data buffer
55
+ * @param srcoffset - the offset to start copying data from
56
+ * @param count - the number of elements to copy
57
+ * @example
58
+ * ```ts
59
+ * // How to copy elements (e.g. vertices) from one buffer to another
60
+ * const element_count = 64;
61
+ * const srcbuffer = resource.get_buffer("/src.bufferc");
62
+ * const dstbuffer = resource.get_buffer("/dst.bufferc");
63
+ *
64
+ * // copy entire buffer
65
+ * buffer.copy_buffer(dstbuffer, 0, srcbuffer, 0, element_count);
66
+ *
67
+ * // copy last 10 elements to the front of another buffer
68
+ * buffer.copy_buffer(dstbuffer, 0, srcbuffer, element_count - 10, 10);
69
+ * ```
70
+ */
71
+ function copy_buffer(dst: Opaque<"buffer">, dstoffset: number, src: Opaque<"buffer">, srcoffset: number, count: number): void;
72
+ /**
73
+ * Copy a specified amount of data from one stream to another.
74
+ * The value type and size must match between source and destination streams.
75
+ * The source and destination streams can be the same.
76
+ *
77
+ * @param dst - the destination stream
78
+ * @param dstoffset - the offset to start copying data to (measured in value type)
79
+ * @param src - the source data stream
80
+ * @param srcoffset - the offset to start copying data from (measured in value type)
81
+ * @param count - the number of values to copy (measured in value type)
82
+ * @example
83
+ * ```ts
84
+ * // How to update a texture of a sprite:
85
+ * const srcbuffer = resource.get_buffer("/src.bufferc");
86
+ * const dstbuffer = resource.get_buffer("/dst.bufferc");
87
+ *
88
+ * // copy entire stream
89
+ * const srcstream = buffer.get_stream(srcbuffer, hash("xyz"));
90
+ * const dststream = buffer.get_stream(dstbuffer, hash("xyz"));
91
+ * buffer.copy_stream(dststream, 0, srcstream, 0, srcstream.length());
92
+ * ```
93
+ */
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
+ /**
96
+ * Create a new data buffer containing a specified set of streams. A data buffer
97
+ * can contain one or more streams with typed data. This is useful for managing
98
+ * compound data, for instance a vertex buffer could contain separate streams for
99
+ * vertex position, color, normal etc.
100
+ *
101
+ * @param element_count - The number of elements the buffer should hold
102
+ * @param declaration - A table where each entry (table) describes a stream
103
+ *
104
+ * - hash | string `name`: The name of the stream
105
+ * - constant `type`: The data type of the stream
106
+ * - number `count`: The number of values each element should hold
107
+ * @returns the new buffer
108
+ * @example
109
+ * ```ts
110
+ * // How to create and initialize a buffer
111
+ * export default defineScript({
112
+ * init() {
113
+ * const size = 128;
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
+ * }
126
+ * }
127
+ * return { image, imagestream };
128
+ * },
129
+ * });
130
+ * ```
131
+ */
132
+ function create(element_count: number, declaration: { name?: Hash | string; type: buffer.ValueType; count?: number }[]): Opaque<"buffer">;
133
+ /**
134
+ * Get a copy of all the bytes from a specified stream as a Lua string.
135
+ *
136
+ * @param buffer - the source buffer
137
+ * @param stream_name - the name of the stream
138
+ * @returns the buffer data as a Lua string
139
+ */
140
+ function get_bytes(buffer: Opaque<"buffer">, stream_name: Hash | string): string;
141
+ /**
142
+ * Get a named metadata entry from a buffer along with its type.
143
+ *
144
+ * @param buf - the buffer to get the metadata from
145
+ * @param metadata_name - name of the metadata entry
146
+ * @example
147
+ * ```ts
148
+ * // How to get a metadata entry from a buffer
149
+ * const buf = resource.get_buffer("/my.bufferc");
150
+ *
151
+ * // retrieve a metadata entry named "somefloats" and its numeric type
152
+ * const [values, type] = buffer.get_metadata(buf, hash("somefloats"));
153
+ * if (values) print(`${values.length} values in 'somefloats'`);
154
+ * ```
155
+ */
156
+ function get_metadata(buf: Opaque<"buffer">, metadata_name: Hash | string): LuaMultiReturn<[number[] | undefined, buffer.ValueType | undefined]>;
157
+ /**
158
+ * Get a specified stream from a buffer.
159
+ *
160
+ * @param buffer - the buffer to get the stream from
161
+ * @param stream_name - the stream name
162
+ * @returns the data stream
163
+ */
164
+ function get_stream(buffer: Opaque<"buffer">, stream_name: Hash | string): Opaque<"bufferstream"> & { [index: number]: number; length: LuaLengthMethod<number> };
165
+ /**
166
+ * Creates or updates a metadata array entry on a buffer.
167
+ * The value type and count given when updating the entry should match those used when first creating it.
168
+ *
169
+ * @param buf - the buffer to set the metadata on
170
+ * @param metadata_name - name of the metadata entry
171
+ * @param values - actual metadata, an array of numeric values
172
+ * @param value_type - type of values when stored
173
+ * @example
174
+ * ```ts
175
+ * // How to set a metadata entry on a buffer
176
+ * const buf = resource.get_buffer("/my.bufferc");
177
+ *
178
+ * // create a new metadata entry with three floats
179
+ * buffer.set_metadata(buf, hash("somefloats"), [1.5, 3.2, 7.9], buffer.VALUE_TYPE_FLOAT32);
180
+ * // ...
181
+ * // update to a new set of values
182
+ * buffer.set_metadata(buf, hash("somefloats"), [-2.5, 10.0, 32.2], buffer.VALUE_TYPE_FLOAT32);
183
+ * ```
184
+ */
185
+ function set_metadata(buf: Opaque<"buffer">, metadata_name: Hash | string, values: number[], value_type: buffer.ValueType): void;
186
+ }
187
+ }
188
+
189
+ export {};