@defold-typescript/types 0.40.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.
- package/api-availability.json +3963 -772
- package/api-migrations.json +27 -0
- package/api-signatures.json +18069 -10240
- package/api-targets.json +448 -11
- package/examples/translations.json +560 -89
- package/fixtures/messages_doc.json +96 -0
- package/generated/b2d.d.ts +680 -4
- package/generated/b2d_body.d.ts +29 -103
- package/generated/b2d_chain.d.ts +5 -6
- package/generated/b2d_fixture.d.ts +34 -38
- package/generated/b2d_joint.d.ts +503 -25
- package/generated/b2d_shape.d.ts +183 -20
- package/generated/b2d_world.d.ts +57 -63
- package/generated/buffer.d.ts +16 -15
- package/generated/builtin-messages.d.ts +7 -1
- package/generated/bullet3d.d.ts +91 -0
- package/generated/bullet3d_collision_object.d.ts +433 -0
- package/generated/bullet3d_constraint.d.ts +818 -0
- package/generated/bullet3d_rigid_body.d.ts +429 -0
- package/generated/bullet3d_shape.d.ts +123 -0
- package/generated/bullet3d_world.d.ts +492 -0
- package/generated/camera.d.ts +29 -32
- package/generated/collectionfactory.d.ts +15 -18
- package/generated/collectionproxy.d.ts +22 -6
- package/generated/compute.d.ts +12 -238
- package/generated/crash.d.ts +24 -10
- package/generated/editor-vm/http.d.ts +90 -7
- package/generated/editor-vm/image.d.ts +7 -7
- package/generated/editor-vm/json.d.ts +11 -0
- package/generated/editor-vm/localization.d.ts +7 -7
- package/generated/editor-vm/tilemap_tiles.d.ts +56 -10
- package/generated/editor-vm/zip.d.ts +28 -0
- package/generated/editor.d.ts +1496 -430
- package/generated/factory.d.ts +21 -25
- package/generated/font.d.ts +64 -22
- package/generated/go.d.ts +235 -182
- package/generated/graphics.d.ts +335 -97
- package/generated/gui.d.ts +240 -471
- package/generated/html5.d.ts +2 -2
- package/generated/http.d.ts +28 -35
- package/generated/image.d.ts +105 -72
- package/generated/json.d.ts +34 -16
- package/generated/kinds/gui-script.d.ts +7 -0
- package/generated/kinds/render-script.d.ts +7 -0
- package/generated/kinds/script.d.ts +7 -0
- package/generated/label.d.ts +77 -7
- package/generated/liveupdate.d.ts +13 -10
- package/generated/material.d.ts +312 -360
- package/generated/model.d.ts +40 -39
- package/generated/particlefx.d.ts +19 -28
- package/generated/physics.d.ts +365 -133
- package/generated/profiler.d.ts +13 -23
- package/generated/render.d.ts +237 -297
- package/generated/resource.d.ts +664 -583
- package/generated/socket.d.ts +120 -133
- package/generated/sound.d.ts +62 -31
- package/generated/sprite.d.ts +31 -17
- package/generated/sys.d.ts +234 -190
- package/generated/tilemap.d.ts +21 -16
- package/generated/timer.d.ts +34 -21
- package/generated/versions/defold-1.12.4/b2d_body.d.ts +0 -7
- package/generated/versions/defold-1.12.4/buffer.d.ts +1 -3
- package/generated/versions/defold-1.12.4/camera.d.ts +21 -21
- package/generated/versions/defold-1.12.4/collectionfactory.d.ts +9 -9
- package/generated/versions/defold-1.12.4/collectionproxy.d.ts +2 -2
- package/generated/versions/defold-1.12.4/crash.d.ts +2 -2
- package/generated/versions/defold-1.12.4/factory.d.ts +15 -16
- package/generated/versions/defold-1.12.4/go.d.ts +6 -12
- package/generated/versions/defold-1.12.4/gui.d.ts +77 -175
- package/generated/versions/defold-1.12.4/html5.d.ts +1 -1
- package/generated/versions/defold-1.12.4/http.d.ts +0 -13
- package/generated/versions/defold-1.12.4/image.d.ts +16 -33
- package/generated/versions/defold-1.12.4/index.d.ts +1 -0
- package/generated/versions/defold-1.12.4/json.d.ts +10 -6
- package/generated/versions/defold-1.12.4/label.d.ts +2 -3
- package/generated/versions/defold-1.12.4/liveupdate.d.ts +5 -3
- package/generated/versions/defold-1.12.4/model.d.ts +2 -10
- package/generated/versions/defold-1.12.4/particlefx.d.ts +2 -5
- package/generated/versions/defold-1.12.4/physics.d.ts +69 -67
- package/generated/versions/defold-1.12.4/profiler.d.ts +2 -5
- package/generated/versions/defold-1.12.4/render.d.ts +99 -128
- package/generated/versions/defold-1.12.4/resource.d.ts +120 -148
- package/generated/versions/defold-1.12.4/socket.d.ts +34 -60
- package/generated/versions/defold-1.12.4/sound.d.ts +8 -8
- package/generated/versions/defold-1.12.4/sprite.d.ts +15 -5
- package/generated/versions/defold-1.12.4/sys.d.ts +37 -71
- package/generated/versions/defold-1.12.4/tilemap.d.ts +18 -11
- package/generated/versions/defold-1.12.4/timer.d.ts +5 -3
- package/generated/versions/defold-1.12.4/vmath.d.ts +0 -21
- package/generated/versions/defold-1.12.4/window.d.ts +1 -16
- package/generated/versions/defold-1.13.0/b2d_body.d.ts +10 -55
- package/generated/versions/defold-1.13.0/b2d_fixture.d.ts +25 -25
- package/generated/versions/defold-1.13.0/b2d_shape.d.ts +169 -8
- package/generated/versions/defold-1.13.0/b2d_world.d.ts +16 -10
- package/generated/versions/defold-1.13.0/buffer.d.ts +1 -3
- package/generated/versions/defold-1.13.0/camera.d.ts +25 -25
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +9 -9
- package/generated/versions/defold-1.13.0/collectionproxy.d.ts +2 -2
- package/generated/versions/defold-1.13.0/compute.d.ts +0 -69
- package/generated/versions/defold-1.13.0/crash.d.ts +2 -2
- package/generated/versions/defold-1.13.0/editor-vm/tilemap_tiles.d.ts +3 -3
- package/generated/versions/defold-1.13.0/editor.d.ts +34 -24
- package/generated/versions/defold-1.13.0/factory.d.ts +15 -16
- package/generated/versions/defold-1.13.0/go.d.ts +6 -12
- package/generated/versions/defold-1.13.0/graphics.d.ts +73 -37
- package/generated/versions/defold-1.13.0/gui.d.ts +77 -175
- package/generated/versions/defold-1.13.0/html5.d.ts +1 -1
- package/generated/versions/defold-1.13.0/http.d.ts +0 -13
- package/generated/versions/defold-1.13.0/image.d.ts +16 -33
- package/generated/versions/defold-1.13.0/index.d.ts +1 -0
- package/generated/versions/defold-1.13.0/json.d.ts +10 -6
- package/generated/versions/defold-1.13.0/label.d.ts +2 -3
- package/generated/versions/defold-1.13.0/liveupdate.d.ts +7 -5
- package/generated/versions/defold-1.13.0/material.d.ts +68 -106
- package/generated/versions/defold-1.13.0/model.d.ts +2 -10
- package/generated/versions/defold-1.13.0/particlefx.d.ts +2 -5
- package/generated/versions/defold-1.13.0/physics.d.ts +69 -67
- package/generated/versions/defold-1.13.0/profiler.d.ts +2 -5
- package/generated/versions/defold-1.13.0/render.d.ts +99 -128
- package/generated/versions/defold-1.13.0/resource.d.ts +126 -150
- package/generated/versions/defold-1.13.0/socket.d.ts +34 -60
- package/generated/versions/defold-1.13.0/sound.d.ts +8 -8
- package/generated/versions/defold-1.13.0/sprite.d.ts +15 -5
- package/generated/versions/defold-1.13.0/sys.d.ts +37 -71
- package/generated/versions/defold-1.13.0/tilemap.d.ts +18 -11
- package/generated/versions/defold-1.13.0/timer.d.ts +5 -3
- package/generated/versions/defold-1.13.0/vmath.d.ts +0 -21
- package/generated/versions/defold-1.13.0/window.d.ts +1 -16
- package/generated/versions/defold-1.13.1/b2d.d.ts +33 -0
- package/generated/versions/defold-1.13.1/b2d_body.d.ts +636 -0
- package/generated/versions/defold-1.13.1/b2d_chain.d.ts +106 -0
- package/generated/versions/defold-1.13.1/b2d_fixture.d.ts +157 -0
- package/generated/versions/defold-1.13.1/b2d_joint.d.ts +823 -0
- package/generated/versions/defold-1.13.1/b2d_shape.d.ts +400 -0
- package/generated/versions/defold-1.13.1/b2d_world.d.ts +320 -0
- package/generated/versions/defold-1.13.1/buffer.d.ts +189 -0
- package/generated/versions/defold-1.13.1/camera.d.ts +303 -0
- package/generated/versions/defold-1.13.1/collectionfactory.d.ts +151 -0
- package/generated/versions/defold-1.13.1/collectionproxy.d.ts +93 -0
- package/generated/versions/defold-1.13.1/compute.d.ts +237 -0
- package/generated/versions/defold-1.13.1/crash.d.ts +143 -0
- package/generated/versions/defold-1.13.1/editor-vm/http.d.ts +56 -0
- package/generated/versions/defold-1.13.1/editor-vm/image.d.ts +48 -0
- package/generated/versions/defold-1.13.1/editor-vm/json.d.ts +10 -0
- package/generated/versions/defold-1.13.1/editor-vm/localization.d.ts +42 -0
- package/generated/versions/defold-1.13.1/editor-vm/tilemap_tiles.d.ts +80 -0
- package/generated/versions/defold-1.13.1/editor-vm/zip.d.ts +10 -0
- package/generated/versions/defold-1.13.1/editor-vm/zlib.d.ts +24 -0
- package/generated/versions/defold-1.13.1/editor.d.ts +1121 -0
- package/generated/versions/defold-1.13.1/factory.d.ts +124 -0
- package/generated/versions/defold-1.13.1/font.d.ts +81 -0
- package/generated/versions/defold-1.13.1/go.d.ts +1107 -0
- package/generated/versions/defold-1.13.1/graphics.d.ts +411 -0
- package/generated/versions/defold-1.13.1/gui.d.ts +2353 -0
- package/generated/versions/defold-1.13.1/html5.d.ts +55 -0
- package/generated/versions/defold-1.13.1/http.d.ts +77 -0
- package/generated/versions/defold-1.13.1/image.d.ts +131 -0
- package/generated/versions/defold-1.13.1/index.d.ts +57 -0
- package/generated/versions/defold-1.13.1/json.d.ts +80 -0
- package/generated/versions/defold-1.13.1/kinds/editor-script.d.ts +14 -0
- package/generated/versions/defold-1.13.1/label.d.ts +93 -0
- package/generated/versions/defold-1.13.1/liveupdate.d.ts +142 -0
- package/generated/versions/defold-1.13.1/material.d.ts +408 -0
- package/generated/versions/defold-1.13.1/model.d.ts +272 -0
- package/generated/versions/defold-1.13.1/msg.d.ts +10 -0
- package/generated/versions/defold-1.13.1/particlefx.d.ts +163 -0
- package/generated/versions/defold-1.13.1/physics.d.ts +559 -0
- package/generated/versions/defold-1.13.1/profiler.d.ts +235 -0
- package/generated/versions/defold-1.13.1/render.d.ts +1190 -0
- package/generated/versions/defold-1.13.1/resource.d.ts +1523 -0
- package/generated/versions/defold-1.13.1/socket.d.ts +784 -0
- package/generated/versions/defold-1.13.1/sound.d.ts +292 -0
- package/generated/versions/defold-1.13.1/sprite.d.ts +175 -0
- package/generated/versions/defold-1.13.1/sys.d.ts +678 -0
- package/generated/versions/defold-1.13.1/tilemap.d.ts +208 -0
- package/generated/versions/defold-1.13.1/timer.d.ts +125 -0
- package/generated/versions/defold-1.13.1/types.d.ts +61 -0
- package/generated/versions/defold-1.13.1/vmath.d.ts +774 -0
- package/generated/versions/defold-1.13.1/window.d.ts +183 -0
- package/generated/versions/defold-1.13.1/zlib.d.ts +41 -0
- package/generated/vmath.d.ts +1 -21
- package/generated/window.d.ts +71 -71
- package/identity-vocabulary.json +561 -0
- package/index.d.ts +7 -0
- package/package.json +13 -2
- package/scripts/example-store-io.ts +12 -1
- package/scripts/extension-goldens.ts +1 -0
- package/scripts/fidelity-baseline.json +146 -46
- package/scripts/generate-api-availability.ts +90 -12
- package/scripts/generate-api-signatures.ts +12 -2
- package/scripts/import-defold-release.ts +85 -24
- package/scripts/prose-constants.ts +77 -16
- package/scripts/regen.ts +391 -77
- package/scripts/shared-handle-methods.ts +53 -0
- package/scripts/signature-store-fs.ts +1 -0
- package/scripts/sync-api-docs.ts +16 -5
- package/src/api-availability.ts +0 -0
- package/src/api-doc.ts +201 -3
- package/src/api-identity.ts +252 -0
- package/src/core-types.ts +26 -3
- package/src/correction-pins.ts +49 -0
- package/src/doc-comment.ts +104 -11
- package/src/doc-corrections.ts +108 -0
- package/src/editor-vm-globals.d.ts +5 -2
- package/src/emit-dts.ts +2064 -281
- package/src/emit-messages.ts +52 -0
- package/src/example-store.ts +125 -14
- package/src/field-correction-coverage.ts +204 -0
- package/src/fnv1a.ts +16 -0
- package/src/go-overloads.d.ts +25 -6
- package/src/index-base-table.ts +145 -0
- package/src/index-slot-classifications.ts +588 -0
- package/src/index.ts +38 -5
- package/src/library-index-slot-classifications.ts +332 -0
- package/src/lifecycle.ts +61 -199
- package/src/luals-type-expr.ts +354 -0
- package/src/msg-overloads.d.ts +0 -1
- package/src/param-correction-provenance.ts +8 -11
- package/src/render-overloads.d.ts +0 -15
- package/src/return-correction-provenance.ts +58 -16
- package/src/sys-overloads.d.ts +48 -0
- package/src/vmath-overloads.d.ts +27 -1
- package/src/window-event-guard.d.ts +6 -9
- 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 {};
|