@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.
- 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 +18 -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 +106 -26
- 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 +48 -10
- 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
package/generated/buffer.d.ts
CHANGED
|
@@ -6,41 +6,44 @@ declare global {
|
|
|
6
6
|
* Functions for manipulating buffers and streams
|
|
7
7
|
*/
|
|
8
8
|
namespace buffer {
|
|
9
|
+
type buffer_data = Opaque<"buffer">;
|
|
10
|
+
type buffer_stream = Opaque<"bufferstream"> & { [index: number]: number; length: LuaLengthMethod<number> };
|
|
9
11
|
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;
|
|
12
|
+
type VALUE_TYPE = 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
13
|
/**
|
|
11
|
-
* Float, single precision, 4 bytes
|
|
14
|
+
* float32 Float, single precision, 4 bytes
|
|
12
15
|
*/
|
|
13
16
|
const VALUE_TYPE_FLOAT32: number & { readonly __brand: "buffer.VALUE_TYPE_FLOAT32" };
|
|
14
17
|
/**
|
|
15
|
-
* Signed integer, 2 bytes
|
|
18
|
+
* int16 Signed integer, 2 bytes
|
|
16
19
|
*/
|
|
17
20
|
const VALUE_TYPE_INT16: number & { readonly __brand: "buffer.VALUE_TYPE_INT16" };
|
|
18
21
|
/**
|
|
19
|
-
* Signed integer, 4 bytes
|
|
22
|
+
* int32 Signed integer, 4 bytes
|
|
20
23
|
*/
|
|
21
24
|
const VALUE_TYPE_INT32: number & { readonly __brand: "buffer.VALUE_TYPE_INT32" };
|
|
22
25
|
/**
|
|
23
|
-
* Signed integer, 8 bytes
|
|
26
|
+
* int64 Signed integer, 8 bytes
|
|
24
27
|
*/
|
|
25
28
|
const VALUE_TYPE_INT64: number & { readonly __brand: "buffer.VALUE_TYPE_INT64" };
|
|
26
29
|
/**
|
|
27
|
-
* Signed integer, 1 byte
|
|
30
|
+
* int8 Signed integer, 1 byte
|
|
28
31
|
*/
|
|
29
32
|
const VALUE_TYPE_INT8: number & { readonly __brand: "buffer.VALUE_TYPE_INT8" };
|
|
30
33
|
/**
|
|
31
|
-
* Unsigned integer, 2 bytes
|
|
34
|
+
* uint16 Unsigned integer, 2 bytes
|
|
32
35
|
*/
|
|
33
36
|
const VALUE_TYPE_UINT16: number & { readonly __brand: "buffer.VALUE_TYPE_UINT16" };
|
|
34
37
|
/**
|
|
35
|
-
* Unsigned integer, 4 bytes
|
|
38
|
+
* uint32 Unsigned integer, 4 bytes
|
|
36
39
|
*/
|
|
37
40
|
const VALUE_TYPE_UINT32: number & { readonly __brand: "buffer.VALUE_TYPE_UINT32" };
|
|
38
41
|
/**
|
|
39
|
-
* Unsigned integer, 8 bytes
|
|
42
|
+
* uint64 Unsigned integer, 8 bytes
|
|
40
43
|
*/
|
|
41
44
|
const VALUE_TYPE_UINT64: number & { readonly __brand: "buffer.VALUE_TYPE_UINT64" };
|
|
42
45
|
/**
|
|
43
|
-
* Unsigned integer, 1 byte
|
|
46
|
+
* uint8 Unsigned integer, 1 byte
|
|
44
47
|
*/
|
|
45
48
|
const VALUE_TYPE_UINT8: number & { readonly __brand: "buffer.VALUE_TYPE_UINT8" };
|
|
46
49
|
/**
|
|
@@ -102,9 +105,7 @@ declare global {
|
|
|
102
105
|
* @param declaration - A table where each entry (table) describes a stream
|
|
103
106
|
*
|
|
104
107
|
* - hash | string `name`: The name of the stream
|
|
105
|
-
*
|
|
106
|
-
* - constant `type`: The data type of the stream
|
|
107
|
-
*
|
|
108
|
+
* - buffer.VALUE_TYPE `type`: The data type of the stream
|
|
108
109
|
* - number `count`: The number of values each element should hold
|
|
109
110
|
* @returns the new buffer
|
|
110
111
|
* @example
|
|
@@ -131,7 +132,7 @@ declare global {
|
|
|
131
132
|
* });
|
|
132
133
|
* ```
|
|
133
134
|
*/
|
|
134
|
-
function create(element_count: number, declaration: { name
|
|
135
|
+
function create(element_count: number, declaration: ({ name: Hash | string; type: buffer.VALUE_TYPE; count: number })[]): Opaque<"buffer">;
|
|
135
136
|
/**
|
|
136
137
|
* Get a copy of all the bytes from a specified stream as a Lua string.
|
|
137
138
|
*
|
|
@@ -155,7 +156,7 @@ declare global {
|
|
|
155
156
|
* if (values) print(`${values.length} values in 'somefloats'`);
|
|
156
157
|
* ```
|
|
157
158
|
*/
|
|
158
|
-
function get_metadata(buf: Opaque<"buffer">, metadata_name: Hash | string): LuaMultiReturn<[number[] | undefined, buffer.
|
|
159
|
+
function get_metadata(buf: Opaque<"buffer">, metadata_name: Hash | string): LuaMultiReturn<[number[] | undefined, buffer.VALUE_TYPE | undefined]>;
|
|
159
160
|
/**
|
|
160
161
|
* Get a specified stream from a buffer.
|
|
161
162
|
*
|
|
@@ -184,7 +185,7 @@ declare global {
|
|
|
184
185
|
* buffer.set_metadata(buf, hash("somefloats"), [-2.5, 10.0, 32.2], buffer.VALUE_TYPE_FLOAT32);
|
|
185
186
|
* ```
|
|
186
187
|
*/
|
|
187
|
-
function set_metadata(buf: Opaque<"buffer">, metadata_name: Hash | string, values: number[], value_type: buffer.
|
|
188
|
+
function set_metadata(buf: Opaque<"buffer">, metadata_name: Hash | string, values: number[], value_type: buffer.VALUE_TYPE): void;
|
|
188
189
|
}
|
|
189
190
|
}
|
|
190
191
|
|
|
@@ -25,7 +25,10 @@ declare global {
|
|
|
25
25
|
model_animation_done: { animation_id: Hash; playback: number };
|
|
26
26
|
play_animation: { id: Hash };
|
|
27
27
|
play_sound: { delay?: number; gain?: number; play_id?: number; start_time?: number; start_frame?: number };
|
|
28
|
+
proxy_error: { code: number };
|
|
28
29
|
proxy_loaded: Record<string, never>;
|
|
30
|
+
proxy_loading: { progress: number };
|
|
31
|
+
proxy_ready: Record<string, never>;
|
|
29
32
|
proxy_unloaded: Record<string, never>;
|
|
30
33
|
ray_cast_missed: { group: Hash; request_id: number };
|
|
31
34
|
ray_cast_response: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash; request_id: number };
|
|
@@ -35,7 +38,7 @@ declare global {
|
|
|
35
38
|
release_input_focus: Record<string, never>;
|
|
36
39
|
resize: { height: number; width: number };
|
|
37
40
|
resume_rendering: Record<string, never>;
|
|
38
|
-
set_camera: { aspect_ratio: number; fov: number; near_z: number; far_z: number; orthographic_projection:
|
|
41
|
+
set_camera: { aspect_ratio: number; fov: number; near_z: number; far_z: number; orthographic_projection: number; orthographic_zoom: number; orthographic_mode: number };
|
|
39
42
|
set_gain: { gain: number };
|
|
40
43
|
set_parent: { parent_id?: Hash; keep_world_transform?: 0 | 1 };
|
|
41
44
|
set_time_step: { factor: number; mode: number };
|
|
@@ -47,6 +50,9 @@ declare global {
|
|
|
47
50
|
start_record: { file_name: string; frame_period: number; fps: number };
|
|
48
51
|
stop_record: Record<string, never>;
|
|
49
52
|
stop_sound: Record<string, never>;
|
|
53
|
+
text_object_clicked: { id: Hash; type: Hash; src: string };
|
|
54
|
+
text_object_hovered: { id: Hash; type: Hash; src: string };
|
|
55
|
+
text_object_unhovered: { id: Hash; type: Hash; src: string };
|
|
50
56
|
toggle_physics_debug: Record<string, never>;
|
|
51
57
|
toggle_profile: Record<string, never>;
|
|
52
58
|
trigger_event: { enter: boolean; a: Record<string | number, unknown>; b: Record<string | number, unknown> };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Hash, Opaque, Url } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
/**
|
|
6
|
+
* Native-style access to the Bullet 3D world and collision objects owned by
|
|
7
|
+
* Defold. World creation, destruction and stepping remain controlled by Defold.
|
|
8
|
+
* The backend name refers to three-dimensional physics.
|
|
9
|
+
*
|
|
10
|
+
* World, collision-object and rigid-body userdata are borrowed handles to
|
|
11
|
+
* Defold-owned objects. Shape userdata are borrowed logical child-slot handles
|
|
12
|
+
* attached to a collision object. Constraint userdata identify auxiliary native
|
|
13
|
+
* objects owned by this Lua API; destroy them explicitly when no longer needed.
|
|
14
|
+
* They are also destroyed automatically when a required body or world is
|
|
15
|
+
* destroyed.
|
|
16
|
+
*
|
|
17
|
+
* A collision-object, rigid-body or shape handle becomes invalid when its
|
|
18
|
+
* collision object is deleted or reloaded. A world handle remains valid across
|
|
19
|
+
* collision-object reloads, but becomes invalid when its collection and physics
|
|
20
|
+
* world are destroyed. The corresponding `is_valid()` function is safe for
|
|
21
|
+
* checking a retained handle; every other operation rejects an invalid handle.
|
|
22
|
+
*/
|
|
23
|
+
namespace bullet3d {
|
|
24
|
+
type btCollisionObject = Opaque<"btCollisionObject" | "btRigidBody">;
|
|
25
|
+
type btDiscreteDynamicsWorld = Opaque<"btDiscreteDynamicsWorld">;
|
|
26
|
+
type btRigidBody = Opaque<"btRigidBody">;
|
|
27
|
+
/**
|
|
28
|
+
* Bullet version information
|
|
29
|
+
*/
|
|
30
|
+
interface version_info {
|
|
31
|
+
/**
|
|
32
|
+
* full Bullet version string
|
|
33
|
+
*/
|
|
34
|
+
version: string;
|
|
35
|
+
/**
|
|
36
|
+
* compact numeric Bullet version
|
|
37
|
+
*/
|
|
38
|
+
number: number;
|
|
39
|
+
/**
|
|
40
|
+
* major version number
|
|
41
|
+
*/
|
|
42
|
+
major: number;
|
|
43
|
+
/**
|
|
44
|
+
* minor version number
|
|
45
|
+
*/
|
|
46
|
+
minor: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* This returns both rigid bodies and ghost trigger objects.
|
|
50
|
+
* This function raises an error unless the collection uses 3D physics.
|
|
51
|
+
*
|
|
52
|
+
* @param url - collision object component URL
|
|
53
|
+
* @returns the collision object, or `nil`
|
|
54
|
+
*/
|
|
55
|
+
function get_collision_object(url: string | Hash | Url): Opaque<"btCollisionObject" | "btRigidBody"> | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* Trigger components are ghost objects, so this function returns `nil` for them.
|
|
58
|
+
* This function raises an error unless the collection uses 3D physics.
|
|
59
|
+
*
|
|
60
|
+
* @param url - collision object component URL
|
|
61
|
+
* @returns the rigid body handle, or `nil`
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* const world = bullet3d.get_world();
|
|
65
|
+
* const body = bullet3d.get_rigid_body("#collisionobject");
|
|
66
|
+
* if (world !== undefined && body !== undefined && bullet3d.rigid_body.is_valid(body)) {
|
|
67
|
+
* bullet3d.rigid_body.apply_central_impulse(body, vmath.vector3(0, 10, 0));
|
|
68
|
+
* }
|
|
69
|
+
*
|
|
70
|
+
* // A trigger is a collision object, not a rigid body.
|
|
71
|
+
* const trigger = bullet3d.get_collision_object("#trigger");
|
|
72
|
+
* assert(trigger !== undefined && bullet3d.get_rigid_body("#trigger") === undefined);
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
function get_rigid_body(url: string | Hash | Url): Opaque<"btRigidBody"> | undefined;
|
|
76
|
+
/**
|
|
77
|
+
* Get the Bullet version
|
|
78
|
+
*
|
|
79
|
+
* @returns version information
|
|
80
|
+
*/
|
|
81
|
+
function get_version(): bullet3d.version_info;
|
|
82
|
+
/**
|
|
83
|
+
* This function raises an error unless the collection uses 3D physics.
|
|
84
|
+
*
|
|
85
|
+
* @returns the world, or `nil` if the collection has no physics world
|
|
86
|
+
*/
|
|
87
|
+
function get_world(): bullet3d.btDiscreteDynamicsWorld | undefined;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export {};
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
/** @noSelfInFile */
|
|
2
|
+
import type { Opaque, Quaternion, Vector3 } from "../src/core-types";
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
/**
|
|
6
|
+
* Functions shared by rigid bodies and trigger ghost objects. Defold keeps
|
|
7
|
+
* ownership of each object's user pointer, motion state, collision shape, and
|
|
8
|
+
* world membership. Logical child shapes are inspected and mutated through
|
|
9
|
+
* `bullet3d.shape`; ownership is not transferred to Lua.
|
|
10
|
+
*
|
|
11
|
+
* Positions, distances, and CCD thresholds use Defold units. Rotations,
|
|
12
|
+
* coefficients, flags, activation state, and time values use Bullet values.
|
|
13
|
+
* Floating-point and vector inputs must be finite. CCD radii and motion
|
|
14
|
+
* thresholds must also be non-negative.
|
|
15
|
+
*/
|
|
16
|
+
namespace bullet3d.collision_object {
|
|
17
|
+
type ACTIVATION_STATE = typeof bullet3d.collision_object.ACTIVE_TAG | typeof bullet3d.collision_object.ISLAND_SLEEPING | typeof bullet3d.collision_object.WANTS_DEACTIVATION | typeof bullet3d.collision_object.DISABLE_DEACTIVATION | typeof bullet3d.collision_object.DISABLE_SIMULATION;
|
|
18
|
+
type COLLISION_FLAG = typeof bullet3d.collision_object.CF_DYNAMIC_OBJECT | typeof bullet3d.collision_object.CF_STATIC_OBJECT | typeof bullet3d.collision_object.CF_KINEMATIC_OBJECT | typeof bullet3d.collision_object.CF_NO_CONTACT_RESPONSE | typeof bullet3d.collision_object.CF_CUSTOM_MATERIAL_CALLBACK | typeof bullet3d.collision_object.CF_CHARACTER_OBJECT | typeof bullet3d.collision_object.CF_DISABLE_VISUALIZE_OBJECT | typeof bullet3d.collision_object.CF_DISABLE_SPU_COLLISION_PROCESSING;
|
|
19
|
+
type INTERNAL_TYPE = typeof bullet3d.collision_object.CO_COLLISION_OBJECT | typeof bullet3d.collision_object.CO_RIGID_BODY | typeof bullet3d.collision_object.CO_GHOST_OBJECT | typeof bullet3d.collision_object.CO_SOFT_BODY | typeof bullet3d.collision_object.CO_HF_FLUID;
|
|
20
|
+
/**
|
|
21
|
+
* Active simulation state.
|
|
22
|
+
*/
|
|
23
|
+
const ACTIVE_TAG: number & { readonly __brand: "bullet3d.collision_object.ACTIVE_TAG" };
|
|
24
|
+
/**
|
|
25
|
+
* Character collision object flag.
|
|
26
|
+
*/
|
|
27
|
+
const CF_CHARACTER_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CF_CHARACTER_OBJECT" };
|
|
28
|
+
/**
|
|
29
|
+
* Custom material callback flag.
|
|
30
|
+
*/
|
|
31
|
+
const CF_CUSTOM_MATERIAL_CALLBACK: number & { readonly __brand: "bullet3d.collision_object.CF_CUSTOM_MATERIAL_CALLBACK" };
|
|
32
|
+
/**
|
|
33
|
+
* Disable SPU collision processing flag.
|
|
34
|
+
*/
|
|
35
|
+
const CF_DISABLE_SPU_COLLISION_PROCESSING: number & { readonly __brand: "bullet3d.collision_object.CF_DISABLE_SPU_COLLISION_PROCESSING" };
|
|
36
|
+
/**
|
|
37
|
+
* Disable debug visualization flag.
|
|
38
|
+
*/
|
|
39
|
+
const CF_DISABLE_VISUALIZE_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CF_DISABLE_VISUALIZE_OBJECT" };
|
|
40
|
+
/**
|
|
41
|
+
* Zero-valued default dynamic-object flag. Compare the complete collision-flags value with this constant; do not pass it to `has_collision_flag`, since zero is not a bit that can be tested.
|
|
42
|
+
*/
|
|
43
|
+
const CF_DYNAMIC_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CF_DYNAMIC_OBJECT" };
|
|
44
|
+
/**
|
|
45
|
+
* Kinematic collision object flag.
|
|
46
|
+
*/
|
|
47
|
+
const CF_KINEMATIC_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CF_KINEMATIC_OBJECT" };
|
|
48
|
+
/**
|
|
49
|
+
* Disable contact response flag.
|
|
50
|
+
*/
|
|
51
|
+
const CF_NO_CONTACT_RESPONSE: number & { readonly __brand: "bullet3d.collision_object.CF_NO_CONTACT_RESPONSE" };
|
|
52
|
+
/**
|
|
53
|
+
* Static collision object flag.
|
|
54
|
+
*/
|
|
55
|
+
const CF_STATIC_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CF_STATIC_OBJECT" };
|
|
56
|
+
/**
|
|
57
|
+
* Generic collision object type.
|
|
58
|
+
*/
|
|
59
|
+
const CO_COLLISION_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CO_COLLISION_OBJECT" };
|
|
60
|
+
/**
|
|
61
|
+
* Ghost collision object type.
|
|
62
|
+
*/
|
|
63
|
+
const CO_GHOST_OBJECT: number & { readonly __brand: "bullet3d.collision_object.CO_GHOST_OBJECT" };
|
|
64
|
+
/**
|
|
65
|
+
* Height-field fluid collision object type.
|
|
66
|
+
*/
|
|
67
|
+
const CO_HF_FLUID: number & { readonly __brand: "bullet3d.collision_object.CO_HF_FLUID" };
|
|
68
|
+
/**
|
|
69
|
+
* Rigid body collision object type.
|
|
70
|
+
*/
|
|
71
|
+
const CO_RIGID_BODY: number & { readonly __brand: "bullet3d.collision_object.CO_RIGID_BODY" };
|
|
72
|
+
/**
|
|
73
|
+
* Soft body collision object type.
|
|
74
|
+
*/
|
|
75
|
+
const CO_SOFT_BODY: number & { readonly __brand: "bullet3d.collision_object.CO_SOFT_BODY" };
|
|
76
|
+
/**
|
|
77
|
+
* Disable automatic deactivation.
|
|
78
|
+
*/
|
|
79
|
+
const DISABLE_DEACTIVATION: number & { readonly __brand: "bullet3d.collision_object.DISABLE_DEACTIVATION" };
|
|
80
|
+
/**
|
|
81
|
+
* Disable simulation.
|
|
82
|
+
*/
|
|
83
|
+
const DISABLE_SIMULATION: number & { readonly __brand: "bullet3d.collision_object.DISABLE_SIMULATION" };
|
|
84
|
+
/**
|
|
85
|
+
* Sleeping simulation state.
|
|
86
|
+
*/
|
|
87
|
+
const ISLAND_SLEEPING: number & { readonly __brand: "bullet3d.collision_object.ISLAND_SLEEPING" };
|
|
88
|
+
/**
|
|
89
|
+
* Wants-deactivation simulation state.
|
|
90
|
+
*/
|
|
91
|
+
const WANTS_DEACTIVATION: number & { readonly __brand: "bullet3d.collision_object.WANTS_DEACTIVATION" };
|
|
92
|
+
/**
|
|
93
|
+
* Activate a collision object
|
|
94
|
+
*
|
|
95
|
+
* @param object - collision object
|
|
96
|
+
* @param force - force activation of a static or kinematic object; defaults to `false`
|
|
97
|
+
*/
|
|
98
|
+
function activate(object: Opaque<"btCollisionObject" | "btRigidBody">, force?: boolean): void;
|
|
99
|
+
/**
|
|
100
|
+
* Force the activation state
|
|
101
|
+
*
|
|
102
|
+
* @param object - collision object
|
|
103
|
+
* @param state - activation state
|
|
104
|
+
*/
|
|
105
|
+
function force_activation_state(object: Opaque<"btCollisionObject" | "btRigidBody">, state: bullet3d.collision_object.ACTIVATION_STATE): void;
|
|
106
|
+
/**
|
|
107
|
+
* Get the activation state
|
|
108
|
+
*
|
|
109
|
+
* @param object - collision object
|
|
110
|
+
* @returns activation state
|
|
111
|
+
*/
|
|
112
|
+
function get_activation_state(object: Opaque<"btCollisionObject" | "btRigidBody">): bullet3d.collision_object.ACTIVATION_STATE;
|
|
113
|
+
/**
|
|
114
|
+
* Get the CCD motion threshold
|
|
115
|
+
*
|
|
116
|
+
* @param object - collision object
|
|
117
|
+
* @returns threshold in Defold units
|
|
118
|
+
*/
|
|
119
|
+
function get_ccd_motion_threshold(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
120
|
+
/**
|
|
121
|
+
* Get the CCD swept sphere radius
|
|
122
|
+
*
|
|
123
|
+
* @param object - collision object
|
|
124
|
+
* @returns radius in Defold units
|
|
125
|
+
*/
|
|
126
|
+
function get_ccd_swept_sphere_radius(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
127
|
+
/**
|
|
128
|
+
* Returns the raw unsigned 16-bit filter group that Defold assigned to the
|
|
129
|
+
* object's Bullet broadphase proxy. Use this value as `category_bits` in a
|
|
130
|
+
* `bullet3d.world` query filter. Bullet applies reciprocal filtering: the
|
|
131
|
+
* query's `mask_bits` must include this group, and the query's `category_bits`
|
|
132
|
+
* must be included in the object's filter mask.
|
|
133
|
+
*
|
|
134
|
+
* @param object - collision object in a Bullet world
|
|
135
|
+
* @returns raw unsigned 16-bit collision filter group
|
|
136
|
+
*/
|
|
137
|
+
function get_collision_filter_group(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
138
|
+
/**
|
|
139
|
+
* Returns the raw unsigned 16-bit filter mask that Defold assigned to the
|
|
140
|
+
* object's Bullet broadphase proxy. Use this value as `mask_bits` in a
|
|
141
|
+
* `bullet3d.world` query filter. Bullet applies reciprocal filtering: the
|
|
142
|
+
* query's `category_bits` must be included in this mask, and the query's
|
|
143
|
+
* `mask_bits` must include the object's filter group.
|
|
144
|
+
*
|
|
145
|
+
* @param object - collision object in a Bullet world
|
|
146
|
+
* @returns raw unsigned 16-bit collision filter mask
|
|
147
|
+
*/
|
|
148
|
+
function get_collision_filter_mask(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
149
|
+
/**
|
|
150
|
+
* Get collision flags
|
|
151
|
+
*
|
|
152
|
+
* @param object - collision object
|
|
153
|
+
* @returns bit field of `CF_*` constants
|
|
154
|
+
*/
|
|
155
|
+
function get_collision_flags(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
156
|
+
/**
|
|
157
|
+
* Get the contact processing threshold
|
|
158
|
+
*
|
|
159
|
+
* @param object - collision object
|
|
160
|
+
* @returns threshold in Defold units
|
|
161
|
+
*/
|
|
162
|
+
function get_contact_processing_threshold(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
163
|
+
/**
|
|
164
|
+
* Get deactivation time
|
|
165
|
+
*
|
|
166
|
+
* @param object - collision object
|
|
167
|
+
* @returns deactivation time
|
|
168
|
+
*/
|
|
169
|
+
function get_deactivation_time(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
170
|
+
/**
|
|
171
|
+
* Get friction
|
|
172
|
+
*
|
|
173
|
+
* @param object - collision object
|
|
174
|
+
* @returns friction coefficient
|
|
175
|
+
*/
|
|
176
|
+
function get_friction(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
177
|
+
/**
|
|
178
|
+
* Get the Bullet collision object type
|
|
179
|
+
*
|
|
180
|
+
* @param object - collision object
|
|
181
|
+
* @returns native collision object type
|
|
182
|
+
*/
|
|
183
|
+
function get_internal_type(object: Opaque<"btCollisionObject" | "btRigidBody">): bullet3d.collision_object.INTERNAL_TYPE;
|
|
184
|
+
/**
|
|
185
|
+
* Get the world position
|
|
186
|
+
*
|
|
187
|
+
* @param object - collision object
|
|
188
|
+
* @returns world position in Defold units
|
|
189
|
+
*/
|
|
190
|
+
function get_position(object: Opaque<"btCollisionObject" | "btRigidBody">): Vector3;
|
|
191
|
+
/**
|
|
192
|
+
* Get restitution
|
|
193
|
+
*
|
|
194
|
+
* @param object - collision object
|
|
195
|
+
* @returns restitution coefficient
|
|
196
|
+
*/
|
|
197
|
+
function get_restitution(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
198
|
+
/**
|
|
199
|
+
* Get the world rotation
|
|
200
|
+
*
|
|
201
|
+
* @param object - collision object
|
|
202
|
+
* @returns world rotation
|
|
203
|
+
*/
|
|
204
|
+
function get_rotation(object: Opaque<"btCollisionObject" | "btRigidBody">): Quaternion;
|
|
205
|
+
/**
|
|
206
|
+
* Get one attached shape by one-based index.
|
|
207
|
+
*
|
|
208
|
+
* @param object - collision object
|
|
209
|
+
* @param shape_index - one-based shape index. **⚠️ 1-based; passed to Defold unchanged.**
|
|
210
|
+
* @returns borrowed logical shape handle
|
|
211
|
+
*/
|
|
212
|
+
function get_shape(object: Opaque<"btCollisionObject" | "btRigidBody">, shape_index: number): bullet3d.shape.btCollisionShape;
|
|
213
|
+
/**
|
|
214
|
+
* Get the number of shapes attached to a collision object.
|
|
215
|
+
*
|
|
216
|
+
* @param object - collision object
|
|
217
|
+
* @returns shape count
|
|
218
|
+
*/
|
|
219
|
+
function get_shape_count(object: Opaque<"btCollisionObject" | "btRigidBody">): number;
|
|
220
|
+
/**
|
|
221
|
+
* Get all attached shapes.
|
|
222
|
+
*
|
|
223
|
+
* @param object - collision object
|
|
224
|
+
* @returns array of borrowed shape handles
|
|
225
|
+
* @example
|
|
226
|
+
* ```ts
|
|
227
|
+
* // Enumerate the logical shapes attached to a collision object:
|
|
228
|
+
* export default defineScript({
|
|
229
|
+
* init() {
|
|
230
|
+
* const object = bullet3d.get_collision_object("#collisionobject");
|
|
231
|
+
* if (object === undefined) return;
|
|
232
|
+
* for (const shape of bullet3d.collision_object.get_shapes(object)) {
|
|
233
|
+
* const index = bullet3d.shape.get_index(shape);
|
|
234
|
+
* const data = bullet3d.shape.get_shape(shape);
|
|
235
|
+
* print("shape", index, "type", data.type);
|
|
236
|
+
* }
|
|
237
|
+
* },
|
|
238
|
+
* });
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
function get_shapes(object: Opaque<"btCollisionObject" | "btRigidBody">): bullet3d.shape.btCollisionShape[];
|
|
242
|
+
/**
|
|
243
|
+
* Get the world transform
|
|
244
|
+
*
|
|
245
|
+
* @param object - collision object
|
|
246
|
+
*/
|
|
247
|
+
function get_world_transform(object: Opaque<"btCollisionObject" | "btRigidBody">): LuaMultiReturn<[Vector3, Quaternion]>;
|
|
248
|
+
/**
|
|
249
|
+
* Test a collision flag
|
|
250
|
+
*
|
|
251
|
+
* @param object - collision object
|
|
252
|
+
* @param flag - collision flag or mask
|
|
253
|
+
* @returns `true` when all requested flag bits are set
|
|
254
|
+
*/
|
|
255
|
+
function has_collision_flag(object: Opaque<"btCollisionObject" | "btRigidBody">, flag: number): boolean;
|
|
256
|
+
/**
|
|
257
|
+
* Test whether the object responds to contacts
|
|
258
|
+
*
|
|
259
|
+
* @param object - collision object
|
|
260
|
+
* @returns contact response state
|
|
261
|
+
*/
|
|
262
|
+
function has_contact_response(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
263
|
+
/**
|
|
264
|
+
* This exposes Bullet's native `btCollisionObject::isActive` result. It is
|
|
265
|
+
* `false` for `ISLAND_SLEEPING` and `DISABLE_SIMULATION`, and `true` for the
|
|
266
|
+
* other activation states available to Defold collision objects. It is
|
|
267
|
+
* unrelated to whether the Defold component is enabled.
|
|
268
|
+
*
|
|
269
|
+
* @param object - collision object
|
|
270
|
+
* @returns active state
|
|
271
|
+
*/
|
|
272
|
+
function is_active(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
273
|
+
/**
|
|
274
|
+
* Box2D-style name for the same simulation state returned by
|
|
275
|
+
* bullet3d.collision_object.is_active.
|
|
276
|
+
*
|
|
277
|
+
* @param object - collision object
|
|
278
|
+
* @returns `false` when sleeping or simulation is disabled
|
|
279
|
+
*/
|
|
280
|
+
function is_awake(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
281
|
+
/**
|
|
282
|
+
* Test whether the object is a ghost trigger
|
|
283
|
+
*
|
|
284
|
+
* @param object - collision object
|
|
285
|
+
* @returns ghost object state
|
|
286
|
+
*/
|
|
287
|
+
function is_ghost_object(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
288
|
+
/**
|
|
289
|
+
* Test whether the object is kinematic
|
|
290
|
+
*
|
|
291
|
+
* @param object - collision object
|
|
292
|
+
* @returns kinematic state
|
|
293
|
+
*/
|
|
294
|
+
function is_kinematic(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
295
|
+
/**
|
|
296
|
+
* Test whether the object is a rigid body
|
|
297
|
+
*
|
|
298
|
+
* @param object - collision object
|
|
299
|
+
* @returns rigid body state
|
|
300
|
+
*/
|
|
301
|
+
function is_rigid_body(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
302
|
+
/**
|
|
303
|
+
* Test whether the object is static
|
|
304
|
+
*
|
|
305
|
+
* @param object - collision object
|
|
306
|
+
* @returns static state
|
|
307
|
+
*/
|
|
308
|
+
function is_static(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
309
|
+
/**
|
|
310
|
+
* Test whether the object is static or kinematic
|
|
311
|
+
*
|
|
312
|
+
* @param object - collision object
|
|
313
|
+
* @returns static or kinematic state
|
|
314
|
+
*/
|
|
315
|
+
function is_static_or_kinematic(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Test whether a collision object handle is valid
|
|
318
|
+
*
|
|
319
|
+
* @param object - collision object
|
|
320
|
+
* @returns `true` if the native object still exists
|
|
321
|
+
*/
|
|
322
|
+
function is_valid(object: Opaque<"btCollisionObject" | "btRigidBody">): boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Set the activation state
|
|
325
|
+
*
|
|
326
|
+
* @param object - collision object
|
|
327
|
+
* @param state - activation state
|
|
328
|
+
*/
|
|
329
|
+
function set_activation_state(object: Opaque<"btCollisionObject" | "btRigidBody">, state: bullet3d.collision_object.ACTIVATION_STATE): void;
|
|
330
|
+
/**
|
|
331
|
+
* Passing `true` calls Bullet's `activate()`. Passing `false` requests the
|
|
332
|
+
* native `ISLAND_SLEEPING` state. As in Bullet, static or kinematic objects are
|
|
333
|
+
* not activated without force, and protected `DISABLE_DEACTIVATION` or
|
|
334
|
+
* `DISABLE_SIMULATION` states are not replaced by a sleeping request.
|
|
335
|
+
*
|
|
336
|
+
* @param object - collision object
|
|
337
|
+
* @param awake - requested awake state
|
|
338
|
+
*/
|
|
339
|
+
function set_awake(object: Opaque<"btCollisionObject" | "btRigidBody">, awake: boolean): void;
|
|
340
|
+
/**
|
|
341
|
+
* Set the CCD motion threshold
|
|
342
|
+
*
|
|
343
|
+
* @param object - collision object
|
|
344
|
+
* @param threshold - finite non-negative threshold in Defold units
|
|
345
|
+
* @example
|
|
346
|
+
* ```ts
|
|
347
|
+
* // Enable continuous collision detection for a small, fast-moving body:
|
|
348
|
+
* export default defineScript({
|
|
349
|
+
* init() {
|
|
350
|
+
* const body = bullet3d.get_rigid_body("#collisionobject");
|
|
351
|
+
* if (body === undefined) return;
|
|
352
|
+
* bullet3d.collision_object.set_ccd_swept_sphere_radius(body, 0.25);
|
|
353
|
+
* bullet3d.collision_object.set_ccd_motion_threshold(body, 0.5);
|
|
354
|
+
* },
|
|
355
|
+
* });
|
|
356
|
+
* ```
|
|
357
|
+
*/
|
|
358
|
+
function set_ccd_motion_threshold(object: Opaque<"btCollisionObject" | "btRigidBody">, threshold: number): void;
|
|
359
|
+
/**
|
|
360
|
+
* Set the CCD swept sphere radius
|
|
361
|
+
*
|
|
362
|
+
* @param object - collision object
|
|
363
|
+
* @param radius - finite non-negative radius in Defold units
|
|
364
|
+
*/
|
|
365
|
+
function set_ccd_swept_sphere_radius(object: Opaque<"btCollisionObject" | "btRigidBody">, radius: number): void;
|
|
366
|
+
/**
|
|
367
|
+
* Set the contact processing threshold
|
|
368
|
+
*
|
|
369
|
+
* @param object - collision object
|
|
370
|
+
* @param threshold - finite threshold in Defold units
|
|
371
|
+
*/
|
|
372
|
+
function set_contact_processing_threshold(object: Opaque<"btCollisionObject" | "btRigidBody">, threshold: number): void;
|
|
373
|
+
/**
|
|
374
|
+
* Set deactivation time
|
|
375
|
+
*
|
|
376
|
+
* @param object - collision object
|
|
377
|
+
* @param seconds - finite deactivation time
|
|
378
|
+
*/
|
|
379
|
+
function set_deactivation_time(object: Opaque<"btCollisionObject" | "btRigidBody">, seconds: number): void;
|
|
380
|
+
/**
|
|
381
|
+
* Set friction
|
|
382
|
+
*
|
|
383
|
+
* @param object - collision object
|
|
384
|
+
* @param friction - finite friction coefficient
|
|
385
|
+
*/
|
|
386
|
+
function set_friction(object: Opaque<"btCollisionObject" | "btRigidBody">, friction: number): void;
|
|
387
|
+
/**
|
|
388
|
+
* The owning game object's position is updated as well.
|
|
389
|
+
*
|
|
390
|
+
* @param object - collision object
|
|
391
|
+
* @param position - finite world position in Defold units
|
|
392
|
+
*/
|
|
393
|
+
function set_position(object: Opaque<"btCollisionObject" | "btRigidBody">, position: Vector3): void;
|
|
394
|
+
/**
|
|
395
|
+
* Set restitution
|
|
396
|
+
*
|
|
397
|
+
* @param object - collision object
|
|
398
|
+
* @param restitution - finite restitution coefficient
|
|
399
|
+
*/
|
|
400
|
+
function set_restitution(object: Opaque<"btCollisionObject" | "btRigidBody">, restitution: number): void;
|
|
401
|
+
/**
|
|
402
|
+
* The owning game object's rotation is updated as well.
|
|
403
|
+
*
|
|
404
|
+
* @param object - collision object
|
|
405
|
+
* @param rotation - finite, non-zero world rotation; normalized by the binding
|
|
406
|
+
*/
|
|
407
|
+
function set_rotation(object: Opaque<"btCollisionObject" | "btRigidBody">, rotation: Quaternion): void;
|
|
408
|
+
/**
|
|
409
|
+
* The owning game object's position and rotation are updated as well, so the
|
|
410
|
+
* transform persists when Defold synchronizes game objects into Bullet.
|
|
411
|
+
*
|
|
412
|
+
* @param object - collision object
|
|
413
|
+
* @param position - finite world position in Defold units
|
|
414
|
+
* @param rotation - finite, non-zero world rotation; normalized by the binding
|
|
415
|
+
* @example
|
|
416
|
+
* ```ts
|
|
417
|
+
* // Move a collision object while preserving its rotation:
|
|
418
|
+
* export default defineScript({
|
|
419
|
+
* init() {
|
|
420
|
+
* const object = bullet3d.get_collision_object("#collisionobject");
|
|
421
|
+
* if (object === undefined) return;
|
|
422
|
+
* const [position, rotation] = bullet3d.collision_object.get_world_transform(object);
|
|
423
|
+
* bullet3d.collision_object.set_world_transform(object, position.add(vmath.vector3(0, 5, 0)), rotation);
|
|
424
|
+
* bullet3d.collision_object.activate(object, true);
|
|
425
|
+
* },
|
|
426
|
+
* });
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
function set_world_transform(object: Opaque<"btCollisionObject" | "btRigidBody">, position: Vector3, rotation: Quaternion): void;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
export {};
|