@defold-typescript/types 0.50.1 → 0.52.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 +4 -58
- package/api-signatures.json +1128 -1552
- package/api-targets.json +15 -5
- package/examples/translations.json +19 -71
- package/fixtures/messages_doc.json +20 -39
- package/generated/b2d_world.d.ts +10 -10
- package/generated/buffer.d.ts +9 -9
- package/generated/builtin-messages.d.ts +16 -14
- package/generated/bullet3d_collision_object.d.ts +1 -1
- package/generated/bullet3d_constraint.d.ts +109 -7
- package/generated/bullet3d_shape.d.ts +2 -2
- package/generated/collectionfactory.d.ts +1 -1
- package/generated/collectionproxy.d.ts +2 -2
- package/generated/factory.d.ts +4 -2
- package/generated/go.d.ts +114 -220
- package/generated/graphics.d.ts +5 -0
- package/generated/gui.d.ts +148 -371
- package/generated/http.d.ts +4 -2
- package/generated/image.d.ts +56 -4
- package/generated/kinds/gui-script.d.ts +3 -0
- package/generated/kinds/render-script.d.ts +15 -15
- package/generated/kinds/script.d.ts +1 -0
- package/generated/liveupdate.d.ts +5 -1
- package/generated/material.d.ts +3 -3
- package/generated/model.d.ts +4 -5
- package/generated/particlefx.d.ts +20 -1
- package/generated/physics.d.ts +48 -4
- package/generated/render-script-modules/b2d.d.ts +711 -0
- package/generated/render-script-modules/bullet3d.d.ts +73 -0
- package/generated/render-script-modules/collectionfactory.d.ts +25 -0
- package/generated/render-script-modules/collectionproxy.d.ts +39 -0
- package/generated/render-script-modules/factory.d.ts +25 -0
- package/generated/render-script-modules/go.d.ts +436 -0
- package/generated/render-script-modules/label.d.ts +105 -0
- package/generated/render-script-modules/model.d.ts +89 -0
- package/generated/render-script-modules/particlefx.d.ts +59 -0
- package/generated/render-script-modules/physics.d.ts +333 -0
- package/generated/render-script-modules/resource.d.ts +1233 -0
- package/generated/render-script-modules/sound.d.ts +227 -0
- package/generated/render-script-modules/sprite.d.ts +68 -0
- package/generated/render-script-modules/tilemap.d.ts +43 -0
- package/generated/render.d.ts +175 -21
- package/generated/resource.d.ts +31 -10
- package/generated/sprite.d.ts +49 -1
- package/generated/sys.d.ts +78 -10
- package/generated/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.12.4/buffer.d.ts +8 -8
- package/generated/versions/defold-1.12.4/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.12.4/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.12.4/factory.d.ts +4 -2
- package/generated/versions/defold-1.12.4/go.d.ts +115 -343
- package/generated/versions/defold-1.12.4/graphics.d.ts +1 -0
- package/generated/versions/defold-1.12.4/gui.d.ts +151 -513
- package/generated/versions/defold-1.12.4/http.d.ts +4 -2
- package/generated/versions/defold-1.12.4/image.d.ts +83 -3
- package/generated/versions/defold-1.12.4/index.d.ts +2 -0
- package/generated/versions/defold-1.12.4/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.12.4/model.d.ts +4 -5
- package/generated/versions/defold-1.12.4/particlefx.d.ts +22 -1
- package/generated/versions/defold-1.12.4/physics.d.ts +47 -3
- package/generated/versions/defold-1.12.4/render.d.ts +119 -15
- package/generated/versions/defold-1.12.4/resource.d.ts +43 -10
- package/generated/versions/defold-1.12.4/sprite.d.ts +58 -1
- package/generated/versions/defold-1.12.4/sys.d.ts +101 -6
- package/generated/versions/defold-1.12.4/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.12.4/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.0/buffer.d.ts +8 -8
- package/generated/versions/defold-1.13.0/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.13.0/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.13.0/factory.d.ts +4 -2
- package/generated/versions/defold-1.13.0/go.d.ts +115 -370
- package/generated/versions/defold-1.13.0/graphics.d.ts +1 -0
- package/generated/versions/defold-1.13.0/gui.d.ts +151 -513
- package/generated/versions/defold-1.13.0/http.d.ts +4 -2
- package/generated/versions/defold-1.13.0/image.d.ts +83 -3
- package/generated/versions/defold-1.13.0/index.d.ts +2 -0
- package/generated/versions/defold-1.13.0/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.13.0/material.d.ts +3 -1
- package/generated/versions/defold-1.13.0/model.d.ts +4 -5
- package/generated/versions/defold-1.13.0/particlefx.d.ts +22 -1
- package/generated/versions/defold-1.13.0/physics.d.ts +47 -3
- package/generated/versions/defold-1.13.0/render.d.ts +182 -16
- package/generated/versions/defold-1.13.0/resource.d.ts +43 -10
- package/generated/versions/defold-1.13.0/sprite.d.ts +58 -1
- package/generated/versions/defold-1.13.0/sys.d.ts +101 -6
- package/generated/versions/defold-1.13.0/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.13.0/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.1/buffer.d.ts +8 -8
- package/generated/versions/defold-1.13.1/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.13.1/collectionproxy.d.ts +1 -1
- package/generated/versions/defold-1.13.1/factory.d.ts +4 -2
- package/generated/versions/defold-1.13.1/go.d.ts +115 -370
- package/generated/versions/defold-1.13.1/graphics.d.ts +1 -0
- package/generated/versions/defold-1.13.1/gui.d.ts +151 -529
- package/generated/versions/defold-1.13.1/http.d.ts +4 -2
- package/generated/versions/defold-1.13.1/image.d.ts +83 -3
- package/generated/versions/defold-1.13.1/index.d.ts +3 -0
- package/generated/versions/defold-1.13.1/liveupdate.d.ts +4 -0
- package/generated/versions/defold-1.13.1/material.d.ts +3 -1
- package/generated/versions/defold-1.13.1/model.d.ts +4 -5
- package/generated/versions/defold-1.13.1/particlefx.d.ts +22 -1
- package/generated/versions/defold-1.13.1/physics.d.ts +47 -3
- package/generated/versions/defold-1.13.1/render.d.ts +182 -16
- package/generated/versions/defold-1.13.1/resource.d.ts +43 -10
- package/generated/versions/defold-1.13.1/sprite.d.ts +58 -1
- package/generated/versions/defold-1.13.1/sys.d.ts +101 -6
- package/generated/versions/defold-1.13.1/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.13.1/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.2/b2d_world.d.ts +10 -10
- package/generated/versions/defold-1.13.2/buffer.d.ts +9 -9
- package/generated/versions/defold-1.13.2/bullet3d_collision_object.d.ts +1 -1
- package/generated/versions/defold-1.13.2/bullet3d_constraint.d.ts +109 -7
- package/generated/versions/defold-1.13.2/bullet3d_shape.d.ts +2 -2
- package/generated/versions/defold-1.13.2/collectionfactory.d.ts +1 -1
- package/generated/versions/defold-1.13.2/collectionproxy.d.ts +2 -2
- package/generated/versions/defold-1.13.2/factory.d.ts +4 -2
- package/generated/versions/defold-1.13.2/go.d.ts +114 -220
- package/generated/versions/defold-1.13.2/graphics.d.ts +1 -0
- package/generated/versions/defold-1.13.2/gui.d.ts +148 -371
- package/generated/versions/defold-1.13.2/http.d.ts +4 -2
- package/generated/versions/defold-1.13.2/image.d.ts +56 -4
- package/generated/versions/defold-1.13.2/index.d.ts +3 -0
- package/generated/versions/defold-1.13.2/liveupdate.d.ts +5 -1
- package/generated/versions/defold-1.13.2/material.d.ts +3 -3
- package/generated/versions/defold-1.13.2/model.d.ts +4 -5
- package/generated/versions/defold-1.13.2/particlefx.d.ts +20 -1
- package/generated/versions/defold-1.13.2/physics.d.ts +48 -4
- package/generated/versions/defold-1.13.2/render.d.ts +164 -20
- package/generated/versions/defold-1.13.2/resource.d.ts +31 -10
- package/generated/versions/defold-1.13.2/sprite.d.ts +49 -1
- package/generated/versions/defold-1.13.2/sys.d.ts +78 -10
- package/generated/versions/defold-1.13.2/tilemap.d.ts +4 -4
- package/generated/versions/defold-1.13.2/vmath.d.ts +0 -24
- package/generated/versions/defold-1.13.2/window.d.ts +1 -1
- package/generated/vmath.d.ts +0 -24
- package/generated/window.d.ts +1 -1
- package/identity-vocabulary.json +98 -7
- package/index.d.ts +3 -0
- package/package.json +3 -1
- package/scripts/generate-api-availability.ts +6 -22
- package/scripts/generate-api-signatures.ts +87 -21
- package/scripts/materialize-version.ts +53 -6
- package/scripts/regen.ts +256 -44
- package/scripts/signature-store-fs.ts +1 -0
- package/scripts/target-version.ts +26 -0
- package/src/api-doc.ts +26 -0
- package/src/component-properties.d.ts +226 -6
- package/src/core-types.ts +82 -20
- package/src/doc-corrections.ts +53 -5
- package/src/emit-dts.ts +1300 -269
- package/src/emit-messages.ts +289 -0
- package/src/engine-globals.d.ts +8 -2
- package/src/go-overloads.d.ts +80 -15
- package/src/gui-overloads.d.ts +489 -0
- package/src/gui-texture-removal.d.ts +41 -0
- package/src/index.ts +2 -0
- package/src/lifecycle.ts +46 -37
- package/src/luals-type-expr.ts +6 -1
- package/src/msg-overloads.d.ts +25 -13
- package/src/physics-event-guard.d.ts +39 -0
- package/src/render-overloads.d.ts +2 -2
- package/src/return-correction-provenance.ts +36 -6
- package/src/signature-store.ts +50 -0
- package/src/timers.d.ts +2 -1
- package/src/vmath-overloads.d.ts +26 -0
- package/src/window-event-guard.d.ts +5 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @noSelfInFile */
|
|
2
|
-
import type { Hash } from "../../../src/core-types";
|
|
2
|
+
import type { Hash, Url } from "../../../src/core-types";
|
|
3
3
|
|
|
4
4
|
declare global {
|
|
5
5
|
/**
|
|
@@ -31,6 +31,8 @@ declare global {
|
|
|
31
31
|
* - number `range_start`: the start offset into the requested file
|
|
32
32
|
* - number `range_end`: the end offset into the requested file (inclusive)
|
|
33
33
|
* - number `document_size`: the full size of the requested file
|
|
34
|
+
*
|
|
35
|
+
* With `report_progress` set, the callback also receives progress events carrying `bytes_sent`, `bytes_received`, `bytes_total` and `url` but no `status`; `response.bytes_received !== undefined` marks a progress event, since a final response never carries it.
|
|
34
36
|
* @param headers - optional table with custom headers
|
|
35
37
|
* @param post_data - optional data to send
|
|
36
38
|
* @param options - optional table with request parameters. Supported entries:
|
|
@@ -70,7 +72,7 @@ declare global {
|
|
|
70
72
|
* });
|
|
71
73
|
* ```
|
|
72
74
|
*/
|
|
73
|
-
function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_received?: number; bytes_total?: number; range_start?: number; range_end?: number; document_size?: number }) => void, headers?: LuaMap<string, string> | Record<string, string>, post_data?: string, options?: { timeout?: number; path?: string; ignore_cache?: boolean; chunked_transfer?: boolean; report_progress?: boolean }): void;
|
|
75
|
+
function request(url: string, method: string, callback: (self: unknown, id: Hash, response: { status: number; url: string; response?: string; headers?: LuaMap<string, string>; path?: string; error?: string; bytes_sent?: number; bytes_received?: number; bytes_total?: number; range_start?: number; range_end?: number; document_size?: number }, sender: Url) => void, headers?: LuaMap<string, string> | Record<string, string>, post_data?: string, options?: { timeout?: number; path?: string; ignore_cache?: boolean; chunked_transfer?: boolean; report_progress?: boolean }): void;
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
|
|
@@ -44,7 +44,7 @@ declare global {
|
|
|
44
44
|
* }
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
|
-
function get_astc_header(buffer: string): { width: number; height: number; depth: number; block_size_x: number; block_size_y: number; block_size_z: number }
|
|
47
|
+
function get_astc_header(buffer: string): { width: number; height: number; depth: number; block_size_x: number; block_size_y: number; block_size_z: number };
|
|
48
48
|
/**
|
|
49
49
|
* Load image (PNG or JPEG) from buffer.
|
|
50
50
|
*
|
|
@@ -77,7 +77,87 @@ declare global {
|
|
|
77
77
|
* });
|
|
78
78
|
* ```
|
|
79
79
|
*/
|
|
80
|
-
function load(buffer: string
|
|
80
|
+
function load(buffer: string): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* Load image (PNG or JPEG) from buffer.
|
|
83
|
+
*
|
|
84
|
+
* @param buffer - image data buffer
|
|
85
|
+
* @param options - An optional table containing parameters for loading the image. Supported entries:
|
|
86
|
+
*
|
|
87
|
+
* `premultiply_alpha`
|
|
88
|
+
* boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
|
|
89
|
+
* `flip_vertically`
|
|
90
|
+
* boolean True if the image contents should be flipped vertically. Defaults to `false`.
|
|
91
|
+
* @returns object or `nil` if loading fails. The object is a table with the following fields:
|
|
92
|
+
*
|
|
93
|
+
* - number `width`: image width
|
|
94
|
+
* - number `height`: image height
|
|
95
|
+
* - constant `type`: image type
|
|
96
|
+
* - `image.TYPE_RGB`
|
|
97
|
+
* - `image.TYPE_RGBA`
|
|
98
|
+
* - `image.TYPE_LUMINANCE`
|
|
99
|
+
* - `image.TYPE_LUMINANCE_ALPHA`
|
|
100
|
+
* - string `buffer`: the raw image data
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* // How to load an image from an URL and create a GUI texture from it:
|
|
104
|
+
* const imgurl = "http://www.site.com/image.png";
|
|
105
|
+
* http.request(imgurl, "GET", (self, id, response) => {
|
|
106
|
+
* const img = response.response !== undefined ? image.load(response.response) : undefined;
|
|
107
|
+
* if (img !== undefined) {
|
|
108
|
+
* const tx = gui.new_texture("image_node", img.width, img.height, img.type, img.buffer);
|
|
109
|
+
* }
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
function load(buffer: string, options: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: string } | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* Load image (PNG or JPEG) from a string buffer.
|
|
116
|
+
*
|
|
117
|
+
* @param buffer - image data buffer
|
|
118
|
+
* @param options - An optional table containing parameters for loading the image. Supported entries:
|
|
119
|
+
*
|
|
120
|
+
* `premultiply_alpha`
|
|
121
|
+
* boolean True if alpha should be premultiplied into the color components. Defaults to `false`.
|
|
122
|
+
* `flip_vertically`
|
|
123
|
+
* boolean True if the image contents should be flipped vertically. Defaults to `false`.
|
|
124
|
+
* @returns object or `nil` if loading fails. The object is a table with the following fields:
|
|
125
|
+
*
|
|
126
|
+
* - number `width`: image width
|
|
127
|
+
* - number `height`: image height
|
|
128
|
+
* - constant `type`: image type
|
|
129
|
+
* - `image.TYPE_RGB`
|
|
130
|
+
* - `image.TYPE_RGBA`
|
|
131
|
+
* - `image.TYPE_LUMINANCE`
|
|
132
|
+
* - `image.TYPE_LUMINANCE_ALPHA`
|
|
133
|
+
* - buffer `buffer`: the script buffer that holds the decompressed image data. See buffer.create how to use the buffer.
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts
|
|
136
|
+
* // Load an image from an URL as a buffer and create a texture resource from it:
|
|
137
|
+
* const imgurl = "http://www.site.com/image.png";
|
|
138
|
+
* http.request(imgurl, "GET", (self, id, response) => {
|
|
139
|
+
* const img =
|
|
140
|
+
* response.response !== undefined
|
|
141
|
+
* ? image.load_buffer(response.response, { flip_vertically: true })
|
|
142
|
+
* : undefined;
|
|
143
|
+
* // the engine registers a texture format only when the driver supports it
|
|
144
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
145
|
+
* if (img !== undefined && format !== undefined) {
|
|
146
|
+
* const tparams = {
|
|
147
|
+
* width: img.width,
|
|
148
|
+
* height: img.height,
|
|
149
|
+
* type: graphics.TEXTURE_TYPE_2D,
|
|
150
|
+
* format,
|
|
151
|
+
* };
|
|
152
|
+
*
|
|
153
|
+
* const my_texture_id = resource.create_texture("/my_custom_texture.texturec", tparams, img.buffer);
|
|
154
|
+
* // Apply the texture to a model
|
|
155
|
+
* go.set("/go1#model", "texture0", my_texture_id);
|
|
156
|
+
* }
|
|
157
|
+
* });
|
|
158
|
+
* ```
|
|
159
|
+
*/
|
|
160
|
+
function load_buffer(buffer: string): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } } | undefined;
|
|
81
161
|
/**
|
|
82
162
|
* Load image (PNG or JPEG) from a string buffer.
|
|
83
163
|
*
|
|
@@ -124,7 +204,7 @@ declare global {
|
|
|
124
204
|
* });
|
|
125
205
|
* ```
|
|
126
206
|
*/
|
|
127
|
-
function load_buffer(buffer: string, options
|
|
207
|
+
function load_buffer(buffer: string, options: { premultiply_alpha?: boolean; flip_vertically?: boolean }): { width: number; height: number; type: Opaque<"constant">; buffer: Opaque<"buffer"> & { length: LuaLengthMethod<number> } } | undefined;
|
|
128
208
|
}
|
|
129
209
|
}
|
|
130
210
|
|
|
@@ -40,10 +40,12 @@ import "../../../src/engine-globals";
|
|
|
40
40
|
import "../../../src/msg-overloads";
|
|
41
41
|
import "../../../src/message-guard";
|
|
42
42
|
import "../../../src/window-event-guard";
|
|
43
|
+
import "../../../src/physics-event-guard";
|
|
43
44
|
import "../../../src/scene-addresses";
|
|
44
45
|
import "../../../src/go-overloads";
|
|
45
46
|
import "../../../src/component-properties";
|
|
46
47
|
import "../../../src/render-overloads";
|
|
48
|
+
import "../../../src/gui-overloads";
|
|
47
49
|
import "../../../src/vmath-overloads";
|
|
48
50
|
import "../../../src/sys-overloads";
|
|
49
51
|
|
|
@@ -36,6 +36,10 @@ declare global {
|
|
|
36
36
|
* Memory wasn't allocated
|
|
37
37
|
*/
|
|
38
38
|
const LIVEUPDATE_MEM_ERROR: number & { readonly __brand: "liveupdate.LIVEUPDATE_MEM_ERROR" };
|
|
39
|
+
/**
|
|
40
|
+
* Live update is not initialized. `liveupdate.add_mount` and `liveupdate.remove_mount` return it while live update is disabled.
|
|
41
|
+
*/
|
|
42
|
+
const LIVEUPDATE_NOT_INITIALIZED: number & { readonly __brand: "liveupdate.LIVEUPDATE_NOT_INITIALIZED" };
|
|
39
43
|
/**
|
|
40
44
|
* LIVEUPDATE_OK
|
|
41
45
|
*/
|
|
@@ -136,10 +136,9 @@ declare global {
|
|
|
136
136
|
* // How to play the "jump" animation followed by the "run" animation:
|
|
137
137
|
* const url = msg.url("#model");
|
|
138
138
|
*
|
|
139
|
-
* function anim_done(self: unknown, message_id:
|
|
139
|
+
* function anim_done(self: unknown, message_id: Hash, message: { animation_id: Hash }) {
|
|
140
140
|
* if (message_id === hash("model_animation_done")) {
|
|
141
|
-
*
|
|
142
|
-
* if (animation_id === hash("jump")) {
|
|
141
|
+
* if (message.animation_id === hash("jump")) {
|
|
143
142
|
* // open animation done, chain with "run"
|
|
144
143
|
* const properties = { blend_duration: 0.2 };
|
|
145
144
|
* model.play_anim(url, "run", go.PLAYBACK_LOOP_FORWARD, properties, anim_done);
|
|
@@ -156,7 +155,7 @@ declare global {
|
|
|
156
155
|
* });
|
|
157
156
|
* ```
|
|
158
157
|
*/
|
|
159
|
-
function play_anim(url: string | Hash | Url, anim_id: string | Hash, playback: go.Playback, play_properties?: { blend_duration?: number; offset?: number; playback_rate?: number }, complete_function?: (self: unknown, message_id:
|
|
158
|
+
function play_anim(url: string | Hash | Url, anim_id: string | Hash, playback: go.Playback, play_properties?: { blend_duration?: number; offset?: number; playback_rate?: number }, complete_function?: (self: unknown, message_id: Hash, message: BuiltinMessages["model_animation_done"]) => void): void;
|
|
160
159
|
/**
|
|
161
160
|
* Enable or disable visibility of a mesh
|
|
162
161
|
*
|
|
@@ -178,7 +177,7 @@ declare global {
|
|
|
178
177
|
/**
|
|
179
178
|
* The current animation set on the component. The type of the property is hash.
|
|
180
179
|
*/
|
|
181
|
-
animation: Hash;
|
|
180
|
+
readonly animation: Hash;
|
|
182
181
|
/**
|
|
183
182
|
* The normalized animation cursor. The type of the property is number.
|
|
184
183
|
* Please note that model events may not fire as expected when the cursor is manipulated directly.
|
|
@@ -134,7 +134,28 @@ declare global {
|
|
|
134
134
|
* });
|
|
135
135
|
* ```
|
|
136
136
|
*/
|
|
137
|
-
function stop(url: string | Hash | Url
|
|
137
|
+
function stop(url: string | Hash | Url): void;
|
|
138
|
+
/**
|
|
139
|
+
* Stops a particle FX component from playing.
|
|
140
|
+
* Stopping a particle FX does not remove already spawned particles.
|
|
141
|
+
* Which particle FX to stop is identified by the URL.
|
|
142
|
+
*
|
|
143
|
+
* @param url - the particle fx that should stop playing
|
|
144
|
+
* @param options - Options when stopping the particle fx. Supported options:
|
|
145
|
+
*
|
|
146
|
+
* - boolean `clear`: instantly clear spawned particles
|
|
147
|
+
* @example
|
|
148
|
+
* ```ts
|
|
149
|
+
* // How to stop a particle fx when a game object is deleted and immediately also
|
|
150
|
+
* // clear any spawned particles:
|
|
151
|
+
* export default defineScript({
|
|
152
|
+
* final(self) {
|
|
153
|
+
* particlefx.stop("#particlefx", { clear: true });
|
|
154
|
+
* },
|
|
155
|
+
* });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
function stop(url: string | Hash | Url, options: { clear?: boolean }): void;
|
|
138
159
|
interface properties {
|
|
139
160
|
/**
|
|
140
161
|
* The animation used during rendering by an emitter in a particle FX component.
|
|
@@ -202,7 +202,7 @@ declare global {
|
|
|
202
202
|
* @returns It returns a list. If missed it returns `nil`. See ray_cast_response for details on the returned values.
|
|
203
203
|
* @example
|
|
204
204
|
* ```ts
|
|
205
|
-
* function handle_result(hit: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash
|
|
205
|
+
* function handle_result(hit: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash }) {
|
|
206
206
|
* // act on the hit (see 'ray_cast_response')
|
|
207
207
|
* }
|
|
208
208
|
*
|
|
@@ -227,7 +227,7 @@ declare global {
|
|
|
227
227
|
* });
|
|
228
228
|
* ```
|
|
229
229
|
*/
|
|
230
|
-
function raycast(from: Vector3, to: Vector3, groups: Hash[], options?: { all?: boolean }):
|
|
230
|
+
function raycast(from: Vector3, to: Vector3, groups: Hash[], options?: { all?: boolean }): Omit<BuiltinMessages["ray_cast_response"], "request_id">[] | Omit<BuiltinMessages["ray_cast_response"], "request_id"> | undefined;
|
|
231
231
|
/**
|
|
232
232
|
* Ray casts are used to test for intersections against collision objects in the physics world.
|
|
233
233
|
* Collision objects of types kinematic, dynamic and static are tested against. Trigger objects
|
|
@@ -271,7 +271,51 @@ declare global {
|
|
|
271
271
|
* });
|
|
272
272
|
* ```
|
|
273
273
|
*/
|
|
274
|
-
function raycast_async(from: Vector3, to: Vector3, groups: Hash[]
|
|
274
|
+
function raycast_async(from: Vector3, to: Vector3, groups: Hash[]): void;
|
|
275
|
+
/**
|
|
276
|
+
* Ray casts are used to test for intersections against collision objects in the physics world.
|
|
277
|
+
* Collision objects of types kinematic, dynamic and static are tested against. Trigger objects
|
|
278
|
+
* do not intersect with ray casts.
|
|
279
|
+
* Which collision objects to hit is filtered by their collision groups and can be configured
|
|
280
|
+
* through `groups`.
|
|
281
|
+
* The actual ray cast will be performed during the physics-update.
|
|
282
|
+
*
|
|
283
|
+
* - If an object is hit, the result will be reported via a ray_cast_response message.
|
|
284
|
+
* - If there is no object hit, the result will be reported via a ray_cast_missed message.
|
|
285
|
+
*
|
|
286
|
+
* NOTE: Ray casts will ignore collision objects that contain the starting point of the ray. This is a limitation in Box2D.
|
|
287
|
+
*
|
|
288
|
+
* @param from - the world position of the start of the ray
|
|
289
|
+
* @param to - the world position of the end of the ray
|
|
290
|
+
* @param groups - a lua table containing the hashed groups for which to test collisions against
|
|
291
|
+
* @param request_id - a number in range [0,255]. It will be sent back in the response for identification, 0 by default
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts
|
|
294
|
+
* // How to perform a ray cast asynchronously:
|
|
295
|
+
* export default defineScript({
|
|
296
|
+
* init() {
|
|
297
|
+
* return { my_groups: [hash("my_group1"), hash("my_group2")] };
|
|
298
|
+
* },
|
|
299
|
+
*
|
|
300
|
+
* update(self, dt) {
|
|
301
|
+
* // request ray cast
|
|
302
|
+
* const my_start = go.get_world_position();
|
|
303
|
+
* const my_end = vmath.vector3(my_start.x, my_start.y - 100, my_start.z);
|
|
304
|
+
* physics.raycast_async(my_start, my_end, self.my_groups);
|
|
305
|
+
* },
|
|
306
|
+
*
|
|
307
|
+
* on_message(self, message_id, message, sender) {
|
|
308
|
+
* // check for the response
|
|
309
|
+
* if (message_id === hash("ray_cast_response")) {
|
|
310
|
+
* // act on the hit
|
|
311
|
+
* } else if (message_id === hash("ray_cast_missed")) {
|
|
312
|
+
* // act on the miss
|
|
313
|
+
* }
|
|
314
|
+
* },
|
|
315
|
+
* });
|
|
316
|
+
* ```
|
|
317
|
+
*/
|
|
318
|
+
function raycast_async(from: Vector3, to: Vector3, groups: Hash[], request_id: number): void;
|
|
275
319
|
/**
|
|
276
320
|
* Only one physics world event listener can be set at a time.
|
|
277
321
|
*
|
|
@@ -14,10 +14,12 @@ declare global {
|
|
|
14
14
|
* require features not in OpenGL ES 2.0, but those will not work cross platform.
|
|
15
15
|
*/
|
|
16
16
|
namespace render {
|
|
17
|
-
type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
17
|
+
type constant_buffer = Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> };
|
|
18
18
|
type render_target = Opaque<"render_target">;
|
|
19
19
|
type texture = Opaque<"texture">;
|
|
20
20
|
type ClearBufferKey = typeof graphics.BUFFER_TYPE_COLOR0_BIT | typeof graphics.BUFFER_TYPE_DEPTH_BIT | typeof graphics.BUFFER_TYPE_STENCIL_BIT;
|
|
21
|
+
type RenderTargetTextureType = typeof graphics.TEXTURE_TYPE_2D | typeof graphics.TEXTURE_TYPE_CUBE_MAP;
|
|
22
|
+
type RenderTargetParams = Record<string | number, unknown>;
|
|
21
23
|
/**
|
|
22
24
|
* The rendering context was lost. Rendering is paused and all graphics resources become invalid. Passed to the `render.set_listener` callback.
|
|
23
25
|
*/
|
|
@@ -112,7 +114,7 @@ declare global {
|
|
|
112
114
|
* constants.light_colors[3] = vmath.vector4(1, 1, 1, 1);
|
|
113
115
|
* ```
|
|
114
116
|
*/
|
|
115
|
-
function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
117
|
+
function constant_buffer(): Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> };
|
|
116
118
|
/**
|
|
117
119
|
* Deletes a render target created by a render script.
|
|
118
120
|
* You cannot delete a render target resource.
|
|
@@ -125,9 +127,12 @@ declare global {
|
|
|
125
127
|
* return { my_render_target: render.render_target("my_target", {}) };
|
|
126
128
|
* },
|
|
127
129
|
*
|
|
128
|
-
* final
|
|
129
|
-
*
|
|
130
|
-
*
|
|
130
|
+
* // A render script has no final hook, so free the target on a message.
|
|
131
|
+
* on_message(self, message_id) {
|
|
132
|
+
* if (message_id === hash("release_target")) {
|
|
133
|
+
* // How to delete a render target:
|
|
134
|
+
* render.delete_render_target(self.my_render_target);
|
|
135
|
+
* }
|
|
131
136
|
* },
|
|
132
137
|
* });
|
|
133
138
|
* ```
|
|
@@ -190,8 +195,11 @@ declare global {
|
|
|
190
195
|
* ```ts
|
|
191
196
|
* export default defineRenderScript({
|
|
192
197
|
* init() {
|
|
198
|
+
* // the engine registers a texture format only when the driver supports it
|
|
199
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
200
|
+
* if (format === undefined) return undefined;
|
|
193
201
|
* const color_params = {
|
|
194
|
-
* format
|
|
202
|
+
* format,
|
|
195
203
|
* width: render.get_window_width(),
|
|
196
204
|
* height: render.get_window_height(),
|
|
197
205
|
* };
|
|
@@ -202,6 +210,7 @@ declare global {
|
|
|
202
210
|
* },
|
|
203
211
|
*
|
|
204
212
|
* update(self, dt) {
|
|
213
|
+
* if (self === undefined) return;
|
|
205
214
|
* render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
206
215
|
* // draw a predicate with the render target available as texture 0 in the predicate
|
|
207
216
|
* // material shader.
|
|
@@ -212,7 +221,7 @@ declare global {
|
|
|
212
221
|
* });
|
|
213
222
|
* ```
|
|
214
223
|
*/
|
|
215
|
-
function disable_texture(binding:
|
|
224
|
+
function disable_texture(binding: string | Hash | number): void;
|
|
216
225
|
/**
|
|
217
226
|
* Dispatches the currently enabled compute program. The dispatch call takes three arguments x,y,z which constitutes
|
|
218
227
|
* the 'global working group' of the compute dispatch. Together with the 'local working group' specified in the compute shader
|
|
@@ -231,8 +240,11 @@ declare global {
|
|
|
231
240
|
* ```ts
|
|
232
241
|
* export default defineRenderScript({
|
|
233
242
|
* init() {
|
|
243
|
+
* // the engine registers a texture format only when the driver supports it
|
|
244
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
245
|
+
* if (format === undefined) return undefined;
|
|
234
246
|
* const color_params = {
|
|
235
|
-
* format
|
|
247
|
+
* format,
|
|
236
248
|
* width: render.get_window_width(),
|
|
237
249
|
* height: render.get_window_height(),
|
|
238
250
|
* };
|
|
@@ -243,6 +255,7 @@ declare global {
|
|
|
243
255
|
* },
|
|
244
256
|
*
|
|
245
257
|
* update(self, dt) {
|
|
258
|
+
* if (self === undefined) return;
|
|
246
259
|
* render.set_compute("bloom");
|
|
247
260
|
* render.enable_texture(0, self.backing_texture);
|
|
248
261
|
* render.enable_texture(1, self.scene_rt);
|
|
@@ -259,7 +272,7 @@ declare global {
|
|
|
259
272
|
* render.dispatch_compute(32, 32, 32, { constants });
|
|
260
273
|
* ```
|
|
261
274
|
*/
|
|
262
|
-
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
275
|
+
function dispatch_compute(x: number, y: number, z: number, options?: { constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> } }): void;
|
|
263
276
|
/**
|
|
264
277
|
* Draws all objects that match a specified predicate. An optional constant buffer can be
|
|
265
278
|
* provided to override the default constants. If no constants buffer is provided, a default
|
|
@@ -321,7 +334,7 @@ declare global {
|
|
|
321
334
|
* }
|
|
322
335
|
* ```
|
|
323
336
|
*/
|
|
324
|
-
function draw(predicate: Opaque<"render_predicate">, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | Vector4
|
|
337
|
+
function draw(predicate: Opaque<"render_predicate">, options?: { frustum?: Matrix4; frustum_planes?: number; constants?: Opaque<"constant_buffer"> & { [name: string]: Vector4 | Matrix4 | ConstantArray<Vector4> | ConstantArray<Matrix4> }; sort_order?: number }): void;
|
|
325
338
|
/**
|
|
326
339
|
* Draws all 3d debug graphics such as lines drawn with "draw_line" messages and physics visualization.
|
|
327
340
|
*
|
|
@@ -432,8 +445,11 @@ declare global {
|
|
|
432
445
|
* ```ts
|
|
433
446
|
* export default defineRenderScript({
|
|
434
447
|
* init() {
|
|
448
|
+
* // the engine registers a texture format only when the driver supports it
|
|
449
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
450
|
+
* if (format === undefined) return undefined;
|
|
435
451
|
* const color_params = {
|
|
436
|
-
* format
|
|
452
|
+
* format,
|
|
437
453
|
* width: render.get_window_width(),
|
|
438
454
|
* height: render.get_window_height(),
|
|
439
455
|
* };
|
|
@@ -444,6 +460,7 @@ declare global {
|
|
|
444
460
|
* },
|
|
445
461
|
*
|
|
446
462
|
* update(self, dt) {
|
|
463
|
+
* if (self === undefined) return;
|
|
447
464
|
* // enable target so all drawing is done to it
|
|
448
465
|
* render.set_render_target(self.my_render_target);
|
|
449
466
|
*
|
|
@@ -524,8 +541,11 @@ declare global {
|
|
|
524
541
|
* ```ts
|
|
525
542
|
* export default defineRenderScript({
|
|
526
543
|
* init() {
|
|
544
|
+
* // the engine registers a texture format only when the driver supports it
|
|
545
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
546
|
+
* if (format === undefined) return undefined;
|
|
527
547
|
* const color_params = {
|
|
528
|
-
* format
|
|
548
|
+
* format,
|
|
529
549
|
* width: render.get_window_width(),
|
|
530
550
|
* height: render.get_window_height(),
|
|
531
551
|
* };
|
|
@@ -537,6 +557,7 @@ declare global {
|
|
|
537
557
|
* },
|
|
538
558
|
*
|
|
539
559
|
* update(self, dt) {
|
|
560
|
+
* if (self === undefined) return;
|
|
540
561
|
* // get the height of the render target color buffer
|
|
541
562
|
* const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
542
563
|
* // get the height of a render target resource
|
|
@@ -561,8 +582,11 @@ declare global {
|
|
|
561
582
|
* ```ts
|
|
562
583
|
* export default defineRenderScript({
|
|
563
584
|
* init() {
|
|
585
|
+
* // the engine registers a texture format only when the driver supports it
|
|
586
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
587
|
+
* if (format === undefined) return undefined;
|
|
564
588
|
* const color_params = {
|
|
565
|
-
* format
|
|
589
|
+
* format,
|
|
566
590
|
* width: render.get_window_width(),
|
|
567
591
|
* height: render.get_window_height(),
|
|
568
592
|
* };
|
|
@@ -574,6 +598,7 @@ declare global {
|
|
|
574
598
|
* },
|
|
575
599
|
*
|
|
576
600
|
* update(self, dt) {
|
|
601
|
+
* if (self === undefined) return;
|
|
577
602
|
* // get the width of the render target color buffer
|
|
578
603
|
* const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);
|
|
579
604
|
* // get the width of a render target resource
|
|
@@ -953,8 +978,86 @@ declare global {
|
|
|
953
978
|
* // The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
|
|
954
979
|
* export default defineRenderScript({
|
|
955
980
|
* init() {
|
|
981
|
+
* // the engine registers a texture format only when the driver supports it
|
|
982
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
983
|
+
* if (format === undefined) return undefined;
|
|
984
|
+
* const color_params = {
|
|
985
|
+
* format,
|
|
986
|
+
* width: render.get_window_width(),
|
|
987
|
+
* height: render.get_window_height(),
|
|
988
|
+
* };
|
|
989
|
+
* return {
|
|
990
|
+
* my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),
|
|
991
|
+
* my_pred: render.predicate([hash("my_tag")]),
|
|
992
|
+
* };
|
|
993
|
+
* },
|
|
994
|
+
*
|
|
995
|
+
* update(self, dt) {
|
|
996
|
+
* if (self === undefined) return;
|
|
997
|
+
* // set render target so all drawing is done to it
|
|
998
|
+
* render.set_render_target(self.my_render_target, {
|
|
999
|
+
* transient: [graphics.BUFFER_TYPE_DEPTH_BIT, graphics.BUFFER_TYPE_STENCIL_BIT],
|
|
1000
|
+
* });
|
|
1001
|
+
*
|
|
1002
|
+
* // draw a predicate to the render target
|
|
1003
|
+
* render.draw(self.my_pred);
|
|
1004
|
+
*
|
|
1005
|
+
* // set default render target. This also invalidates the depth and stencil buffers of the current target (self.my_render_target)
|
|
1006
|
+
* // which can be an optimisation on some hardware
|
|
1007
|
+
* render.set_render_target(render.RENDER_TARGET_DEFAULT);
|
|
1008
|
+
* },
|
|
1009
|
+
* });
|
|
1010
|
+
* ```
|
|
1011
|
+
* @example
|
|
1012
|
+
* ```ts
|
|
1013
|
+
* export default defineRenderScript({
|
|
1014
|
+
* init() {
|
|
1015
|
+
* return { my_pred: render.predicate([hash("my_tag")]) };
|
|
1016
|
+
* },
|
|
1017
|
+
*
|
|
1018
|
+
* update(self, dt) {
|
|
1019
|
+
* // set render target by a render target resource identifier
|
|
1020
|
+
* render.set_render_target("my_rt_resource");
|
|
1021
|
+
*
|
|
1022
|
+
* // draw a predicate to the render target
|
|
1023
|
+
* render.draw(self.my_pred);
|
|
1024
|
+
*
|
|
1025
|
+
* // reset the render target to the default backbuffer
|
|
1026
|
+
* render.set_render_target(render.RENDER_TARGET_DEFAULT);
|
|
1027
|
+
* },
|
|
1028
|
+
* });
|
|
1029
|
+
* ```
|
|
1030
|
+
*/
|
|
1031
|
+
function set_render_target(render_target?: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT): void;
|
|
1032
|
+
/**
|
|
1033
|
+
* Sets a render target. Subsequent draw operations will be to the
|
|
1034
|
+
* render target until it is replaced by a subsequent call to set_render_target.
|
|
1035
|
+
* This function supports render targets created by a render script, or a render target resource.
|
|
1036
|
+
*
|
|
1037
|
+
* @param render_target - render target to set. render.RENDER_TARGET_DEFAULT to set the default render target
|
|
1038
|
+
* @param options - optional table with behaviour parameters
|
|
1039
|
+
*
|
|
1040
|
+
* `transient`
|
|
1041
|
+
* table Transient frame buffer types are only valid while the render target is active, i.e becomes undefined when a new target is set by a subsequent call to set_render_target.
|
|
1042
|
+
* Default is all non-transient. Be aware that some hardware uses a combined depth stencil buffer and when this is the case both are considered non-transient if exclusively selected!
|
|
1043
|
+
* A buffer type defined that doesn't exist in the render target is silently ignored.
|
|
1044
|
+
*
|
|
1045
|
+
* - `graphics.BUFFER_TYPE_COLOR0_BIT`
|
|
1046
|
+
* - `graphics.BUFFER_TYPE_DEPTH_BIT`
|
|
1047
|
+
* - `graphics.BUFFER_TYPE_STENCIL_BIT`
|
|
1048
|
+
* @example
|
|
1049
|
+
* How to set a render target and draw to it and then switch back to the default render target
|
|
1050
|
+
* The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
|
|
1051
|
+
* ```ts
|
|
1052
|
+
* // How to set a render target and draw to it and then switch back to the default render target
|
|
1053
|
+
* // The render target defines the depth/stencil buffers as transient, when set_render_target is called the next time the buffers may be invalidated and allow for optimisations depending on driver support
|
|
1054
|
+
* export default defineRenderScript({
|
|
1055
|
+
* init() {
|
|
1056
|
+
* // the engine registers a texture format only when the driver supports it
|
|
1057
|
+
* const format = graphics.TEXTURE_FORMAT_RGBA;
|
|
1058
|
+
* if (format === undefined) return undefined;
|
|
956
1059
|
* const color_params = {
|
|
957
|
-
* format
|
|
1060
|
+
* format,
|
|
958
1061
|
* width: render.get_window_width(),
|
|
959
1062
|
* height: render.get_window_height(),
|
|
960
1063
|
* };
|
|
@@ -965,6 +1068,7 @@ declare global {
|
|
|
965
1068
|
* },
|
|
966
1069
|
*
|
|
967
1070
|
* update(self, dt) {
|
|
1071
|
+
* if (self === undefined) return;
|
|
968
1072
|
* // set render target so all drawing is done to it
|
|
969
1073
|
* render.set_render_target(self.my_render_target, {
|
|
970
1074
|
* transient: [graphics.BUFFER_TYPE_DEPTH_BIT, graphics.BUFFER_TYPE_STENCIL_BIT],
|
|
@@ -999,7 +1103,7 @@ declare global {
|
|
|
999
1103
|
* });
|
|
1000
1104
|
* ```
|
|
1001
1105
|
*/
|
|
1002
|
-
function set_render_target(render_target
|
|
1106
|
+
function set_render_target(render_target: Opaque<"render_target"> | string | Hash | typeof render.RENDER_TARGET_DEFAULT | undefined, options: { transient?: graphics.BufferType[] }): void;
|
|
1003
1107
|
/**
|
|
1004
1108
|
* Sets the render target size for a render target created from
|
|
1005
1109
|
* either a render script, or from a render target resource.
|