@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
package/api-targets.json
CHANGED
|
@@ -148,7 +148,8 @@
|
|
|
148
148
|
{
|
|
149
149
|
"namespace": "gui",
|
|
150
150
|
"fixture": "gui_doc.json",
|
|
151
|
-
"outFile": "gui.d.ts"
|
|
151
|
+
"outFile": "gui.d.ts",
|
|
152
|
+
"skipFunctions": ["animate", "get", "set"]
|
|
152
153
|
},
|
|
153
154
|
{
|
|
154
155
|
"namespace": "html5",
|
|
@@ -270,6 +271,7 @@
|
|
|
270
271
|
"slerp",
|
|
271
272
|
"mul_per_elem",
|
|
272
273
|
"normalize",
|
|
274
|
+
"dot",
|
|
273
275
|
"vector"
|
|
274
276
|
]
|
|
275
277
|
},
|
|
@@ -539,7 +541,8 @@
|
|
|
539
541
|
{
|
|
540
542
|
"namespace": "gui",
|
|
541
543
|
"fixture": "gui_doc.json",
|
|
542
|
-
"outFile": "gui.d.ts"
|
|
544
|
+
"outFile": "gui.d.ts",
|
|
545
|
+
"skipFunctions": ["animate", "get", "set"]
|
|
543
546
|
},
|
|
544
547
|
{
|
|
545
548
|
"namespace": "html5",
|
|
@@ -661,6 +664,7 @@
|
|
|
661
664
|
"slerp",
|
|
662
665
|
"mul_per_elem",
|
|
663
666
|
"normalize",
|
|
667
|
+
"dot",
|
|
664
668
|
"vector"
|
|
665
669
|
]
|
|
666
670
|
},
|
|
@@ -900,7 +904,8 @@
|
|
|
900
904
|
{
|
|
901
905
|
"namespace": "gui",
|
|
902
906
|
"fixture": "gui_doc.json",
|
|
903
|
-
"outFile": "gui.d.ts"
|
|
907
|
+
"outFile": "gui.d.ts",
|
|
908
|
+
"skipFunctions": ["animate", "get", "set"]
|
|
904
909
|
},
|
|
905
910
|
{
|
|
906
911
|
"namespace": "html5",
|
|
@@ -1021,6 +1026,7 @@
|
|
|
1021
1026
|
"slerp",
|
|
1022
1027
|
"mul_per_elem",
|
|
1023
1028
|
"normalize",
|
|
1029
|
+
"dot",
|
|
1024
1030
|
"vector"
|
|
1025
1031
|
]
|
|
1026
1032
|
},
|
|
@@ -1260,7 +1266,8 @@
|
|
|
1260
1266
|
{
|
|
1261
1267
|
"namespace": "gui",
|
|
1262
1268
|
"fixture": "gui_doc.json",
|
|
1263
|
-
"outFile": "gui.d.ts"
|
|
1269
|
+
"outFile": "gui.d.ts",
|
|
1270
|
+
"skipFunctions": ["animate", "get", "set"]
|
|
1264
1271
|
},
|
|
1265
1272
|
{
|
|
1266
1273
|
"namespace": "html5",
|
|
@@ -1381,6 +1388,7 @@
|
|
|
1381
1388
|
"slerp",
|
|
1382
1389
|
"mul_per_elem",
|
|
1383
1390
|
"normalize",
|
|
1391
|
+
"dot",
|
|
1384
1392
|
"vector"
|
|
1385
1393
|
]
|
|
1386
1394
|
},
|
|
@@ -1563,7 +1571,8 @@
|
|
|
1563
1571
|
{
|
|
1564
1572
|
"namespace": "gui",
|
|
1565
1573
|
"fixture": "gui_doc.json",
|
|
1566
|
-
"outFile": "gui.d.ts"
|
|
1574
|
+
"outFile": "gui.d.ts",
|
|
1575
|
+
"skipFunctions": ["animate", "get", "set"]
|
|
1567
1576
|
},
|
|
1568
1577
|
{
|
|
1569
1578
|
"namespace": "html5",
|
|
@@ -1679,6 +1688,7 @@
|
|
|
1679
1688
|
"slerp",
|
|
1680
1689
|
"mul_per_elem",
|
|
1681
1690
|
"normalize",
|
|
1691
|
+
"dot",
|
|
1682
1692
|
"vector"
|
|
1683
1693
|
]
|
|
1684
1694
|
},
|
|
@@ -338,7 +338,7 @@
|
|
|
338
338
|
"factory.create": [
|
|
339
339
|
{
|
|
340
340
|
"sourceHash": "df32ef57d1e2366e",
|
|
341
|
-
"ts": "export default defineScript({\n init(self) {\n // create a new game object and provide property values\n const created = factory.create(\"#factory\", undefined, undefined, { my_value: 1 });\n // communicate with the object\n msg.post(created, \"hello\");\n },\n});"
|
|
341
|
+
"ts": "export default defineScript({\n init(self) {\n // create a new game object and provide property values\n const created = factory.create(\"#factory\", undefined, undefined, { my_value: 1 });\n // communicate with the object\n if (created !== undefined) {\n msg.post(created, \"hello\");\n }\n },\n});"
|
|
342
342
|
},
|
|
343
343
|
{
|
|
344
344
|
"sourceHash": "981a4891837250a9",
|
|
@@ -363,12 +363,6 @@
|
|
|
363
363
|
"ts": "// How to unload resources of a factory prototype loaded with factory.load:\nfactory.unload(\"#factory\");"
|
|
364
364
|
}
|
|
365
365
|
],
|
|
366
|
-
"final": [
|
|
367
|
-
{
|
|
368
|
-
"sourceHash": "ebc3cae218af001a",
|
|
369
|
-
"ts": "export default defineScript({\n init() {\n return { some_value: 0 };\n },\n\n final(self) {\n // report finalization\n msg.post(\"my_friend_instance\", \"im_dead\", { my_stats: self.some_value });\n },\n});"
|
|
370
|
-
}
|
|
371
|
-
],
|
|
372
366
|
"font.add_font": [
|
|
373
367
|
{
|
|
374
368
|
"sourceHash": "eb23e196a4edbd74",
|
|
@@ -708,7 +702,7 @@
|
|
|
708
702
|
},
|
|
709
703
|
{
|
|
710
704
|
"sourceHash": "7234f15bfdc28abb",
|
|
711
|
-
"ts": "// How to start a sequenced animation where the node fades in to white during 0.5\n// seconds, stays visible for 2 seconds and then fades out:\nfunction on_animation_done(self: unknown, node:
|
|
705
|
+
"ts": "// How to start a sequenced animation where the node fades in to white during 0.5\n// seconds, stays visible for 2 seconds and then fades out:\nfunction on_animation_done(self: unknown, node: Opaque<\"node\">) {\n // fade out node, but wait 2 seconds before the animation starts\n gui.animate(node, gui.PROP_COLOR, vmath.vector4(0, 0, 0, 0), gui.EASING_OUTQUAD, 0.5, 2.0);\n}\n\nexport default defineGuiScript({\n init(self) {\n // fetch the node we want to animate\n const my_node = gui.get_node(\"my_node\");\n // node is initially set to fully transparent\n gui.set_color(my_node, vmath.vector4(0, 0, 0, 0));\n // animate the node immediately and call on_animation_done when the animation has completed\n gui.animate(my_node, gui.PROP_COLOR, vmath.vector4(1, 1, 1, 1), gui.EASING_INOUTQUAD, 0.5, 0.0, on_animation_done);\n },\n});"
|
|
712
706
|
},
|
|
713
707
|
{
|
|
714
708
|
"sourceHash": "3d5dcef3260b5964",
|
|
@@ -820,7 +814,7 @@
|
|
|
820
814
|
"gui.set": [
|
|
821
815
|
{
|
|
822
816
|
"sourceHash": "0b505e5f92fd4aff",
|
|
823
|
-
"ts": "const node = gui.get_node(\"my_box_node\");\nconst node_position = gui.get(node, \"position\")
|
|
817
|
+
"ts": "const node = gui.get_node(\"my_box_node\");\nconst node_position = gui.get(node, \"position\");\ngui.set(node, \"position.x\", node_position.x + 128);"
|
|
824
818
|
},
|
|
825
819
|
{
|
|
826
820
|
"sourceHash": "8ed6f5c059ba2496",
|
|
@@ -828,7 +822,7 @@
|
|
|
828
822
|
},
|
|
829
823
|
{
|
|
830
824
|
"sourceHash": "2a8317babd507565",
|
|
831
|
-
"ts": "const node = gui.get_node(\"my_box_node\");\ngui.set(node, \"tint\", vmath.vector4(1, 0, 0, 1));\n// matrix4 is also supported\ngui.set(node, \"light_matrix\", vmath.matrix4());\n// update a constant in an array at position 4. the array is specified in the shader as:\n// uniform vec4 tint_array[4]; // lua is 1 based, shader is 0 based\ngui.set(node, \"tint_array\", vmath.vector4(1, 0, 0, 1), { index: 4 });\n// update a matrix constant in an array at position 4. the array is specified in the shader as:\n// uniform mat4 light_matrix_array[4];\ngui.set(node, \"light_matrix_array\", vmath.matrix4(), { index: 4 });\n// update a sub-element in a constant\ngui.set(node, \"tint.x\", 1);\n// update a sub-element in an array constant at position 4\ngui.set(node, \"tint_array.x\", 1, { index: 4 });"
|
|
825
|
+
"ts": "const node = gui.get_node(\"my_box_node\");\ngui.set(node, hash(\"tint\"), vmath.vector4(1, 0, 0, 1));\n// matrix4 is also supported\ngui.set(node, hash(\"light_matrix\"), vmath.matrix4());\n// update a constant in an array at position 4. the array is specified in the shader as:\n// uniform vec4 tint_array[4]; // lua is 1 based, shader is 0 based\ngui.set(node, hash(\"tint_array\"), vmath.vector4(1, 0, 0, 1), { index: 4 });\n// update a matrix constant in an array at position 4. the array is specified in the shader as:\n// uniform mat4 light_matrix_array[4];\ngui.set(node, hash(\"light_matrix_array\"), vmath.matrix4(), { index: 4 });\n// update a sub-element in a constant\ngui.set(node, hash(\"tint.x\"), 1);\n// update a sub-element in an array constant at position 4\ngui.set(node, hash(\"tint_array.x\"), 1, { index: 4 });"
|
|
832
826
|
},
|
|
833
827
|
{
|
|
834
828
|
"sourceHash": "b52d73e25b02e93f",
|
|
@@ -903,12 +897,6 @@
|
|
|
903
897
|
"ts": "// Load an image from an URL as a buffer and create a texture resource from it:\nconst imgurl = \"http://www.site.com/image.png\";\nhttp.request(imgurl, \"GET\", (self, id, response) => {\n const img =\n response.response !== undefined\n ? image.load_buffer(response.response, { flip_vertically: true })\n : undefined;\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (img !== undefined && format !== undefined) {\n const tparams = {\n width: img.width,\n height: img.height,\n type: graphics.TEXTURE_TYPE_2D,\n format,\n };\n\n const my_texture_id = resource.create_texture(\"/my_custom_texture.texturec\", tparams, img.buffer);\n // Apply the texture to a model\n go.set(\"/go1#model\", \"texture0\", my_texture_id);\n }\n});"
|
|
904
898
|
}
|
|
905
899
|
],
|
|
906
|
-
"init": [
|
|
907
|
-
{
|
|
908
|
-
"sourceHash": "70267e467e6e247e",
|
|
909
|
-
"ts": "export default defineScript({\n init() {\n // set up useful data\n return { my_value: 1 };\n },\n});"
|
|
910
|
-
}
|
|
911
|
-
],
|
|
912
900
|
"json.decode": [
|
|
913
901
|
{
|
|
914
902
|
"sourceHash": "8dcdd6f81ef65528",
|
|
@@ -1072,7 +1060,7 @@
|
|
|
1072
1060
|
"model.play_anim": [
|
|
1073
1061
|
{
|
|
1074
1062
|
"sourceHash": "64d6b46054d23a1b",
|
|
1075
|
-
"ts": "// The following examples assume that the model has id \"model\".\n// How to play the \"jump\" animation followed by the \"run\" animation:\nconst url = msg.url(\"#model\");\n\nfunction anim_done(self: unknown, message_id:
|
|
1063
|
+
"ts": "// The following examples assume that the model has id \"model\".\n// How to play the \"jump\" animation followed by the \"run\" animation:\nconst url = msg.url(\"#model\");\n\nfunction anim_done(self: unknown, message_id: Hash, message: { animation_id: Hash }) {\n if (message_id === hash(\"model_animation_done\")) {\n if (message.animation_id === hash(\"jump\")) {\n // open animation done, chain with \"run\"\n const properties = { blend_duration: 0.2 };\n model.play_anim(url, \"run\", go.PLAYBACK_LOOP_FORWARD, properties, anim_done);\n }\n }\n}\n\nexport default defineScript({\n init(self) {\n const play_properties = { blend_duration: 0.1 };\n // first blend during 0.1 sec into the jump, then during 0.2 s into the run animation\n model.play_anim(url, \"jump\", go.PLAYBACK_ONCE_FORWARD, play_properties, anim_done);\n },\n});"
|
|
1076
1064
|
}
|
|
1077
1065
|
],
|
|
1078
1066
|
"model.reset_constant": [
|
|
@@ -1117,36 +1105,6 @@
|
|
|
1117
1105
|
"ts": "const my_url = msg.url(\"#my_component\");\nprint(my_url); // => url: [current_collection:/my_instance#my_component]\n\nconst my_collection_url = msg.url(\"my_collection:/my_sub_collection/my_instance#my_component\");\nprint(my_collection_url); // => url: [my_collection:/my_sub_collection/my_instance#my_component]\n\nconst my_socket_url = msg.url(\"my_socket:\");\nprint(my_socket_url); // => url: [my_collection:]"
|
|
1118
1106
|
}
|
|
1119
1107
|
],
|
|
1120
|
-
"on_input": [
|
|
1121
|
-
{
|
|
1122
|
-
"sourceHash": "86c70cf4ccb7381e",
|
|
1123
|
-
"ts": "// This example demonstrates how a game object instance can be moved as a response to user input.\nexport default defineScript({\n init() {\n // acquire input focus\n msg.post(\".\", \"acquire_input_focus\");\n return {\n // maximum speed the instance can be moved\n max_speed: 2,\n // velocity of the instance, initially zero\n velocity: vmath.vector3(),\n };\n },\n\n update(self, dt) {\n // move the instance\n go.set_position(go.get_position().add(self.velocity.mul(dt)));\n },\n\n on_input(self, action_id, action) {\n // check for movement input\n if (action_id === hash(\"right\")) {\n if (action.released) {\n // reset velocity if input was released\n self.velocity = vmath.vector3();\n } else {\n // update velocity\n self.velocity = vmath.vector3((action.value ?? 0) * self.max_speed, 0, 0);\n }\n }\n },\n});"
|
|
1124
|
-
},
|
|
1125
|
-
{
|
|
1126
|
-
"sourceHash": "cc835ea429adc693",
|
|
1127
|
-
"ts": "export default defineGuiScript({\n init(): { my_value: number | undefined } {\n return { my_value: undefined };\n },\n\n on_input(self, action_id, action) {\n // check for input\n if (action_id === hash(\"my_action\")) {\n // take appropriate action\n self.my_value = action.value;\n }\n // consume input\n return true;\n },\n});"
|
|
1128
|
-
}
|
|
1129
|
-
],
|
|
1130
|
-
"on_message": [
|
|
1131
|
-
{
|
|
1132
|
-
"sourceHash": "d5850f2009394171",
|
|
1133
|
-
"ts": "// This example demonstrates how a game object instance, called \"a\", can communicate with another instance, called \"b\". It\n// is assumed that both script components of the instances has id \"script\".\n\n// a.script — Script of instance \"a\":\nexport default defineScript({\n init() {\n // let b know about some important data\n msg.post(\"b#script\", \"my_data\", { important_value: 1 });\n },\n});"
|
|
1134
|
-
},
|
|
1135
|
-
{
|
|
1136
|
-
"sourceHash": "9f37896589565629",
|
|
1137
|
-
"ts": "// b.script — Script of instance \"b\":\nexport default defineScript({\n init() {\n // store the url of instance \"a\" for later use, by specifying undefined as socket we\n // automatically use our own socket\n return { a_url: msg.url(undefined, go.get_id(\"a\"), \"script\"), important_value: 0 };\n },\n\n on_message(self, message_id, message, sender) {\n // check message and sender\n if (message_id === hash(\"my_data\") && sender === self.a_url && typeof message.important_value === \"number\") {\n // use the data in some way\n self.important_value = message.important_value;\n }\n },\n});"
|
|
1138
|
-
}
|
|
1139
|
-
],
|
|
1140
|
-
"on_reload": [
|
|
1141
|
-
{
|
|
1142
|
-
"sourceHash": "ba39c0b0d5170ccb",
|
|
1143
|
-
"ts": "// This example demonstrates how to tweak the speed of a game object instance that is moved on user input.\nexport default defineScript({\n init() {\n // acquire input focus\n msg.post(\".\", \"acquire_input_focus\");\n return {\n // maximum speed the instance can be moved, this value is tweaked in the on_reload function below\n max_speed: 2,\n // velocity of the instance, initially zero\n velocity: vmath.vector3(),\n };\n },\n\n update(self, dt) {\n // move the instance\n go.set_position(go.get_position().add(self.velocity.mul(dt)));\n },\n\n on_input(self, action_id, action) {\n // check for movement input\n if (action_id === hash(\"right\")) {\n if (action.released) {\n // reset velocity if input was released\n self.velocity = vmath.vector3();\n } else {\n // update velocity\n self.velocity = vmath.vector3((action.value ?? 0) * self.max_speed, 0, 0);\n }\n }\n },\n\n on_reload(self) {\n // edit this value and reload the script component\n self.max_speed = 100;\n },\n});"
|
|
1144
|
-
},
|
|
1145
|
-
{
|
|
1146
|
-
"sourceHash": "e89fe0d0bd51ed98",
|
|
1147
|
-
"ts": "export default defineGuiScript({\n init() {\n return { my_original_color: gui.get_color(gui.get_node(\"my_node\")) };\n },\n\n on_reload(self) {\n // restore some color (or similar)\n gui.set_color(gui.get_node(\"my_node\"), self.my_original_color);\n },\n});"
|
|
1148
|
-
}
|
|
1149
|
-
],
|
|
1150
1108
|
"particlefx.play": [
|
|
1151
1109
|
{
|
|
1152
1110
|
"sourceHash": "01a21997b47ac4fc",
|
|
@@ -1198,7 +1156,7 @@
|
|
|
1198
1156
|
"physics.raycast": [
|
|
1199
1157
|
{
|
|
1200
1158
|
"sourceHash": "3e0c534d741f0120",
|
|
1201
|
-
"ts": "function handle_result(hit: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash
|
|
1159
|
+
"ts": "function handle_result(hit: { fraction: number; position: Vector3; normal: Vector3; id: Hash; group: Hash }) {\n // act on the hit (see 'ray_cast_response')\n}\n\n// How to perform a ray cast synchronously:\nexport default defineScript({\n init() {\n return { groups: [hash(\"world\"), hash(\"enemy\")] };\n },\n\n update(self, dt) {\n // request ray cast\n const from = go.get_world_position();\n const to = vmath.vector3(from.x, from.y - 100, from.z);\n const results = physics.raycast(from, to, self.groups, { all: true });\n if (results !== undefined) {\n // with `all` set, the ray cast returns every hit as a list\n for (const result of Array.isArray(results) ? results : [results]) {\n handle_result(result);\n }\n }\n },\n});"
|
|
1202
1160
|
}
|
|
1203
1161
|
],
|
|
1204
1162
|
"physics.raycast_async": [
|
|
@@ -1358,7 +1316,7 @@
|
|
|
1358
1316
|
"render.delete_render_target": [
|
|
1359
1317
|
{
|
|
1360
1318
|
"sourceHash": "e535502af5d49877",
|
|
1361
|
-
"ts": "export default defineRenderScript({\n init() {\n return { my_render_target: render.render_target(\"my_target\", {}) };\n },\n\n final(self) {\n // How to delete a render target:\n
|
|
1319
|
+
"ts": "export default defineRenderScript({\n init() {\n return { my_render_target: render.render_target(\"my_target\", {}) };\n },\n\n // A render script has no final hook, so free the target on a message.\n on_message(self, message_id) {\n if (message_id === hash(\"release_target\")) {\n // How to delete a render target:\n render.delete_render_target(self.my_render_target);\n }\n },\n});"
|
|
1362
1320
|
}
|
|
1363
1321
|
],
|
|
1364
1322
|
"render.disable_material": [
|
|
@@ -1376,13 +1334,13 @@
|
|
|
1376
1334
|
"render.disable_texture": [
|
|
1377
1335
|
{
|
|
1378
1336
|
"sourceHash": "77eefc5b608dd2e6",
|
|
1379
|
-
"ts": "export default defineRenderScript({\n init() {\n const color_params = {\n format
|
|
1337
|
+
"ts": "export default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n };\n return {\n my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);\n // draw a predicate with the render target available as texture 0 in the predicate\n // material shader.\n render.draw(self.my_pred);\n // done, disable the texture\n render.disable_texture(0);\n },\n});"
|
|
1380
1338
|
}
|
|
1381
1339
|
],
|
|
1382
1340
|
"render.dispatch_compute": [
|
|
1383
1341
|
{
|
|
1384
1342
|
"sourceHash": "75d02543f0e1f325",
|
|
1385
|
-
"ts": "export default defineRenderScript({\n init() {\n const color_params = {\n format
|
|
1343
|
+
"ts": "export default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n };\n return {\n backing_texture: resource.get_texture_info(\"/main/backing.texturec\").handle,\n scene_rt: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n render.set_compute(\"bloom\");\n render.enable_texture(0, self.backing_texture);\n render.enable_texture(1, self.scene_rt);\n render.dispatch_compute(128, 128, 1);\n render.set_compute();\n },\n});"
|
|
1386
1344
|
},
|
|
1387
1345
|
{
|
|
1388
1346
|
"sourceHash": "839cd1accd7a318c",
|
|
@@ -1428,7 +1386,7 @@
|
|
|
1428
1386
|
"render.enable_texture": [
|
|
1429
1387
|
{
|
|
1430
1388
|
"sourceHash": "410c8dd98e44842a",
|
|
1431
|
-
"ts": "export default defineRenderScript({\n init() {\n const color_params = {\n format
|
|
1389
|
+
"ts": "export default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n };\n return {\n my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // enable target so all drawing is done to it\n render.set_render_target(self.my_render_target);\n\n // draw a predicate to the render target\n render.draw(self.my_pred);\n\n // disable target\n render.set_render_target(render.RENDER_TARGET_DEFAULT);\n\n render.enable_texture(0, self.my_render_target, graphics.BUFFER_TYPE_COLOR0_BIT);\n // draw a predicate with the render target available as texture 0 in the predicate\n // material shader.\n render.draw(self.my_pred);\n },\n});"
|
|
1432
1390
|
},
|
|
1433
1391
|
{
|
|
1434
1392
|
"sourceHash": "dc0ea083dbea5fe1",
|
|
@@ -1448,13 +1406,13 @@
|
|
|
1448
1406
|
"render.get_render_target_height": [
|
|
1449
1407
|
{
|
|
1450
1408
|
"sourceHash": "f509a9b954573583",
|
|
1451
|
-
"ts": "export default defineRenderScript({\n init() {\n const color_params = {\n format
|
|
1409
|
+
"ts": "export default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n };\n return {\n target_right: render.render_target(\"right\", {\n [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,\n }),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // get the height of the render target color buffer\n const h = render.get_render_target_height(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);\n // get the height of a render target resource\n const w = render.get_render_target_height(\"my_rt_resource\", graphics.BUFFER_TYPE_COLOR0_BIT);\n },\n});"
|
|
1452
1410
|
}
|
|
1453
1411
|
],
|
|
1454
1412
|
"render.get_render_target_width": [
|
|
1455
1413
|
{
|
|
1456
1414
|
"sourceHash": "25c6d828a4ae3706",
|
|
1457
|
-
"ts": "export default defineRenderScript({\n init() {\n const color_params = {\n format
|
|
1415
|
+
"ts": "export default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n };\n return {\n target_right: render.render_target(\"right\", {\n [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,\n }),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // get the width of the render target color buffer\n const w = render.get_render_target_width(self.target_right, graphics.BUFFER_TYPE_COLOR0_BIT);\n // get the width of a render target resource\n const w2 = render.get_render_target_width(\"my_rt_resource\", graphics.BUFFER_TYPE_COLOR0_BIT);\n },\n});"
|
|
1458
1416
|
}
|
|
1459
1417
|
],
|
|
1460
1418
|
"render.get_width": [
|
|
@@ -1484,15 +1442,15 @@
|
|
|
1484
1442
|
"render.render_target": [
|
|
1485
1443
|
{
|
|
1486
1444
|
"sourceHash": "0c72f5142a3a57da",
|
|
1487
|
-
"ts": "// How to create a new render target and draw to it:\nexport default defineRenderScript({\n init() {\n // render target buffer parameters\n const color_params = {\n format
|
|
1445
|
+
"ts": "// How to create a new render target and draw to it:\nexport default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n // render target buffer parameters\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n min_filter: graphics.TEXTURE_FILTER_LINEAR,\n mag_filter: graphics.TEXTURE_FILTER_LINEAR,\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n const depth_params = {\n format: graphics.TEXTURE_FORMAT_DEPTH,\n width: render.get_window_width(),\n height: render.get_window_height(),\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n return {\n my_render_target: render.render_target({\n [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,\n [graphics.BUFFER_TYPE_DEPTH_BIT]: depth_params,\n }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // enable target so all drawing is done to it\n render.set_render_target(self.my_render_target);\n\n // draw a predicate to the render target\n render.draw(self.my_pred);\n },\n});"
|
|
1488
1446
|
},
|
|
1489
1447
|
{
|
|
1490
1448
|
"sourceHash": "271ca31f05e103b5",
|
|
1491
|
-
"ts": "// How to create a render target with multiple outputs:\nexport default defineRenderScript({\n init() {\n // render target buffer parameters\n const color_params_rgba = {\n format
|
|
1449
|
+
"ts": "// How to create a render target with multiple outputs:\nexport default defineRenderScript({\n init() {\n // the engine registers a texture format or an extra color attachment only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n const rg32f = graphics.TEXTURE_FORMAT_RG32F;\n const color1 = graphics.BUFFER_TYPE_COLOR1_BIT;\n const color2 = graphics.BUFFER_TYPE_COLOR2_BIT;\n if (format === undefined || rg32f === undefined || color1 === undefined || color2 === undefined) return undefined;\n // render target buffer parameters\n const color_params_rgba = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n min_filter: graphics.TEXTURE_FILTER_LINEAR,\n mag_filter: graphics.TEXTURE_FILTER_LINEAR,\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n const color_params_float = {\n format: rg32f,\n width: render.get_window_width(),\n height: render.get_window_height(),\n min_filter: graphics.TEXTURE_FILTER_LINEAR,\n mag_filter: graphics.TEXTURE_FILTER_LINEAR,\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n\n // Create a render target with three color attachments\n // Note: No depth buffer is attached here\n return {\n my_render_target: render.render_target({\n [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params_rgba,\n [color1]: color_params_rgba,\n [color2]: color_params_float,\n }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // set target so all drawing is done to it\n render.set_render_target(self.my_render_target);\n\n // draw a predicate to the render target\n render.draw(self.my_pred);\n },\n});"
|
|
1492
1450
|
},
|
|
1493
1451
|
{
|
|
1494
1452
|
"sourceHash": "e39f13af5d65d01d",
|
|
1495
|
-
"ts": "// How to create a render target with multiple outputs:\nexport default defineRenderScript({\n init() {\n // render target buffer parameters\n const color_params_rgba = {\n format
|
|
1453
|
+
"ts": "// How to create a render target with multiple outputs:\nexport default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n const rg32f = graphics.TEXTURE_FORMAT_RG32F;\n if (format === undefined || rg32f === undefined) return undefined;\n // render target buffer parameters\n const color_params_rgba = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n min_filter: graphics.TEXTURE_FILTER_LINEAR,\n mag_filter: graphics.TEXTURE_FILTER_LINEAR,\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n const color_params_float = {\n format: rg32f,\n width: render.get_window_width(),\n height: render.get_window_height(),\n min_filter: graphics.TEXTURE_FILTER_LINEAR,\n mag_filter: graphics.TEXTURE_FILTER_LINEAR,\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n\n // Create a render target with three color attachments\n // Note: No depth buffer is attached here\n return {\n my_render_target: render.render_target({\n [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params_rgba,\n [graphics.BUFFER_TYPE_COLOR1_BIT]: color_params_rgba,\n [graphics.BUFFER_TYPE_COLOR2_BIT]: color_params_float,\n }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // enable target so all drawing is done to it\n render.set_render_target(self.my_render_target);\n\n // draw a predicate to the render target\n render.draw(self.my_pred);\n },\n});"
|
|
1496
1454
|
},
|
|
1497
1455
|
{
|
|
1498
1456
|
"sourceHash": "582c319c90bcf7ad",
|
|
@@ -1500,7 +1458,7 @@
|
|
|
1500
1458
|
},
|
|
1501
1459
|
{
|
|
1502
1460
|
"sourceHash": "eec69c97bf2815ed",
|
|
1503
|
-
"ts": "// How to create a new render target and draw to it:\nexport default defineRenderScript({\n init() {\n // render target buffer parameters\n const color_params = {\n format
|
|
1461
|
+
"ts": "// How to create a new render target and draw to it:\nexport default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n // render target buffer parameters\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n min_filter: graphics.TEXTURE_FILTER_LINEAR,\n mag_filter: graphics.TEXTURE_FILTER_LINEAR,\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n const depth_params = {\n format: graphics.TEXTURE_FORMAT_DEPTH,\n width: render.get_window_width(),\n height: render.get_window_height(),\n u_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n v_wrap: graphics.TEXTURE_WRAP_CLAMP_TO_EDGE,\n };\n return {\n my_render_target: render.render_target({\n sample_count: 4,\n [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params,\n [graphics.BUFFER_TYPE_DEPTH_BIT]: depth_params,\n }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // enable target so all drawing is done to it\n render.set_render_target(self.my_render_target);\n\n // draw a predicate to the render target\n render.draw(self.my_pred);\n },\n});"
|
|
1504
1462
|
}
|
|
1505
1463
|
],
|
|
1506
1464
|
"render.set_blend_equation_separate": [
|
|
@@ -1582,7 +1540,7 @@
|
|
|
1582
1540
|
"render.set_render_target": [
|
|
1583
1541
|
{
|
|
1584
1542
|
"sourceHash": "c6e25f5038d19bee",
|
|
1585
|
-
"ts": "// How to set a render target and draw to it and then switch back to the default render target\n// 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\nexport default defineRenderScript({\n init() {\n const color_params = {\n format
|
|
1543
|
+
"ts": "// How to set a render target and draw to it and then switch back to the default render target\n// 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\nexport default defineRenderScript({\n init() {\n // the engine registers a texture format only when the driver supports it\n const format = graphics.TEXTURE_FORMAT_RGBA;\n if (format === undefined) return undefined;\n const color_params = {\n format,\n width: render.get_window_width(),\n height: render.get_window_height(),\n };\n return {\n my_render_target: render.render_target({ [graphics.BUFFER_TYPE_COLOR0_BIT]: color_params }),\n my_pred: render.predicate([hash(\"my_tag\")]),\n };\n },\n\n update(self, dt) {\n if (self === undefined) return;\n // set render target so all drawing is done to it\n render.set_render_target(self.my_render_target, {\n transient: [graphics.BUFFER_TYPE_DEPTH_BIT, graphics.BUFFER_TYPE_STENCIL_BIT],\n });\n\n // draw a predicate to the render target\n render.draw(self.my_pred);\n\n // set default render target. This also invalidates the depth and stencil buffers of the current target (self.my_render_target)\n // which can be an optimisation on some hardware\n render.set_render_target(render.RENDER_TARGET_DEFAULT);\n },\n});"
|
|
1586
1544
|
},
|
|
1587
1545
|
{
|
|
1588
1546
|
"sourceHash": "bb08db5e232c5b5e",
|
|
@@ -2151,7 +2109,7 @@
|
|
|
2151
2109
|
"sys.load_buffer_async": [
|
|
2152
2110
|
{
|
|
2153
2111
|
"sourceHash": "91d84e7dc569ae20",
|
|
2154
|
-
"ts": "function my_callback(self: unknown, request_id: unknown, result: unknown) {\n const { status, buf } = result as { status: number; buf:
|
|
2112
|
+
"ts": "function my_callback(self: unknown, request_id: unknown, result: unknown) {\n const { status, buf } = result as { status: number; buf: ReturnType<typeof sys.load_buffer> };\n if (status === sys.REQUEST_STATUS_FINISHED) {\n resource.set_texture(\"/my_texture\", { type: graphics.TEXTURE_TYPE_2D, width: 128, height: 128, format: graphics.TEXTURE_FORMAT_RGBA }, buf);\n }\n}\n\nconst my_request = sys.load_buffer_async(\"/assets/my_level_data.bin\", my_callback);"
|
|
2155
2113
|
},
|
|
2156
2114
|
{
|
|
2157
2115
|
"sourceHash": "5545b8901e6ec4c5",
|
|
@@ -2261,7 +2219,7 @@
|
|
|
2261
2219
|
"tilemap.get_tiles": [
|
|
2262
2220
|
{
|
|
2263
2221
|
"sourceHash": "61b14de4991f966b",
|
|
2264
|
-
"ts": "const [left, bottom, columns_count, rows_count] = tilemap.get_bounds(\"#tilemap\");\nconst tiles = tilemap.get_tiles(\"#tilemap\", \"layer\");\nlet tile = 0;\nlet count = 0;\nfor (let row_index = bottom; row_index <= bottom + rows_count - 1; row_index++) {\n for (let column_index = left; column_index <= left + columns_count - 1; column_index++) {\n tile = tiles
|
|
2222
|
+
"ts": "const [left, bottom, columns_count, rows_count] = tilemap.get_bounds(\"#tilemap\");\nconst tiles = tilemap.get_tiles(\"#tilemap\", \"layer\");\nlet tile = 0;\nlet count = 0;\nfor (let row_index = bottom; row_index <= bottom + rows_count - 1; row_index++) {\n for (let column_index = left; column_index <= left + columns_count - 1; column_index++) {\n tile = tiles?.get(row_index)?.get(column_index) ?? 0;\n count = count + 1;\n }\n}"
|
|
2265
2223
|
}
|
|
2266
2224
|
],
|
|
2267
2225
|
"tilemap.reset_constant": [
|
|
@@ -2318,16 +2276,6 @@
|
|
|
2318
2276
|
"ts": "function trigger_ticking(self: { handle: number }) {\n self.handle = timer.delay(1, true, () => print(\"print every second or manually by timer.trigger\"));\n // ...\n const triggered = timer.trigger(self.handle);\n if (!triggered) {\n print(\"the timer is already cancelled or complete\");\n }\n}"
|
|
2319
2277
|
}
|
|
2320
2278
|
],
|
|
2321
|
-
"update": [
|
|
2322
|
-
{
|
|
2323
|
-
"sourceHash": "1019c7620d797753",
|
|
2324
|
-
"ts": "// This example demonstrates how to move a game object instance through the script component:\nexport default defineScript({\n init() {\n // set initial velocity to be 1 along world x-axis\n return { my_velocity: vmath.vector3(1, 0, 0) };\n },\n\n update(self, dt) {\n // move the game object instance\n go.set_position(go.get_position().add(self.my_velocity.mul(dt)));\n },\n});"
|
|
2325
|
-
},
|
|
2326
|
-
{
|
|
2327
|
-
"sourceHash": "f4f87939dbdd5fc3",
|
|
2328
|
-
"ts": "// This example demonstrates how to update a text node that displays game score\n// in a counting fashion. It is assumed that the gui component receives messages\n// from the game when a new score is to be shown.\nexport default defineGuiScript({\n init() {\n return {\n // fetch the score text node for later use (assumes it is called \"score\")\n score_node: gui.get_node(\"score\"),\n // keep track of the current score counted up so far\n current_score: 0,\n // keep track of the target score we should count up to\n target_score: 0,\n // how fast we will update the score, in score/second\n score_update_speed: 1,\n };\n },\n\n update(self, dt) {\n // check if target score is more than current score\n if (self.current_score < self.target_score) {\n // increment current score according to the speed\n self.current_score = self.current_score + dt * self.score_update_speed;\n // check if we went past the target score, clamp current score in that case\n if (self.current_score > self.target_score) {\n self.current_score = self.target_score;\n }\n // update the score text node\n gui.set_text(self.score_node, \"\" + math.floor(self.current_score));\n }\n },\n\n on_message(self, message_id, message) {\n // check the message\n if (message_id === hash(\"set_score\") && typeof message.score === \"number\") {\n self.target_score = message.score;\n }\n },\n});"
|
|
2329
|
-
}
|
|
2330
|
-
],
|
|
2331
2279
|
"vmath.clamp": [
|
|
2332
2280
|
{
|
|
2333
2281
|
"sourceHash": "ce47102e76e3186d",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"info": {
|
|
3
3
|
"namespace": "builtin_messages",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.14.0",
|
|
5
5
|
"description": "Defold's built-in message ids and the payload shape each one carries."
|
|
6
6
|
},
|
|
7
7
|
"messages": [
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
{
|
|
38
38
|
"name": "parent_id",
|
|
39
39
|
"types": ["hash"],
|
|
40
|
-
"optional":
|
|
41
|
-
"doc": "
|
|
40
|
+
"optional": false,
|
|
41
|
+
"doc": "The id of the new parent."
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
"name": "keep_world_transform",
|
|
45
45
|
"types": ["0", "1"],
|
|
46
|
-
"optional":
|
|
47
|
-
"doc": "
|
|
46
|
+
"optional": false,
|
|
47
|
+
"doc": "If the world transform of the instance should be preserved when changing spaces, 0 for false and 1 for true. The default value is 1."
|
|
48
48
|
}
|
|
49
49
|
]
|
|
50
50
|
},
|
|
@@ -58,6 +58,18 @@
|
|
|
58
58
|
"types": ["hash"],
|
|
59
59
|
"optional": false,
|
|
60
60
|
"doc": "Hashed animation id."
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "offset",
|
|
64
|
+
"types": ["number"],
|
|
65
|
+
"optional": false,
|
|
66
|
+
"doc": "Normalized initial value of the animation cursor when the animation starts playing."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "playback_rate",
|
|
70
|
+
"types": ["number"],
|
|
71
|
+
"optional": false,
|
|
72
|
+
"doc": "Rate the animation plays at. Must be positive."
|
|
61
73
|
}
|
|
62
74
|
]
|
|
63
75
|
},
|
|
@@ -288,12 +300,6 @@
|
|
|
288
300
|
"origin": "physics",
|
|
289
301
|
"description": "Reported when an asynchronous ray cast hits nothing.",
|
|
290
302
|
"payload": [
|
|
291
|
-
{
|
|
292
|
-
"name": "group",
|
|
293
|
-
"types": ["hash"],
|
|
294
|
-
"optional": false,
|
|
295
|
-
"doc": "Collision group mask used for the ray cast."
|
|
296
|
-
},
|
|
297
303
|
{
|
|
298
304
|
"name": "request_id",
|
|
299
305
|
"types": ["number"],
|
|
@@ -383,7 +389,7 @@
|
|
|
383
389
|
{
|
|
384
390
|
"name": "gain",
|
|
385
391
|
"types": ["number"],
|
|
386
|
-
"optional":
|
|
392
|
+
"optional": true,
|
|
387
393
|
"doc": "Target gain between 0 and 1."
|
|
388
394
|
}
|
|
389
395
|
]
|
|
@@ -396,7 +402,7 @@
|
|
|
396
402
|
{
|
|
397
403
|
"name": "play_id",
|
|
398
404
|
"types": ["number"],
|
|
399
|
-
"optional":
|
|
405
|
+
"optional": true,
|
|
400
406
|
"doc": "The id passed to play_sound."
|
|
401
407
|
}
|
|
402
408
|
]
|
|
@@ -409,7 +415,7 @@
|
|
|
409
415
|
{
|
|
410
416
|
"name": "play_id",
|
|
411
417
|
"types": ["number"],
|
|
412
|
-
"optional":
|
|
418
|
+
"optional": true,
|
|
413
419
|
"doc": "The id passed to play_sound."
|
|
414
420
|
}
|
|
415
421
|
]
|
|
@@ -507,31 +513,6 @@
|
|
|
507
513
|
}
|
|
508
514
|
]
|
|
509
515
|
},
|
|
510
|
-
{
|
|
511
|
-
"name": "set_view_projection",
|
|
512
|
-
"origin": "render",
|
|
513
|
-
"description": "Posted automatically by camera components to the render script with the active view and projection matrices.",
|
|
514
|
-
"payload": [
|
|
515
|
-
{
|
|
516
|
-
"name": "id",
|
|
517
|
-
"types": ["hash"],
|
|
518
|
-
"optional": false,
|
|
519
|
-
"doc": "Id of the camera component that posted the matrices."
|
|
520
|
-
},
|
|
521
|
-
{
|
|
522
|
-
"name": "view",
|
|
523
|
-
"types": ["matrix4"],
|
|
524
|
-
"optional": false,
|
|
525
|
-
"doc": "View matrix of the camera."
|
|
526
|
-
},
|
|
527
|
-
{
|
|
528
|
-
"name": "projection",
|
|
529
|
-
"types": ["matrix4"],
|
|
530
|
-
"optional": false,
|
|
531
|
-
"doc": "Projection matrix of the camera."
|
|
532
|
-
}
|
|
533
|
-
]
|
|
534
|
-
},
|
|
535
516
|
{
|
|
536
517
|
"name": "draw_line",
|
|
537
518
|
"origin": "render",
|
package/generated/b2d_world.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ declare global {
|
|
|
26
26
|
* @param filter - optional query filter
|
|
27
27
|
* @param max_results - optional maximum result count
|
|
28
28
|
*/
|
|
29
|
-
function cast_ray(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_cast_hit[], b2d.tree_stats]>;
|
|
29
|
+
function cast_ray<Backend extends "v2" = "v2">(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_cast_hit[], b2d.tree_stats]>;
|
|
30
30
|
/**
|
|
31
31
|
* The translation is the ray displacement from `origin`. Result order is not
|
|
32
32
|
* guaranteed by Box2D.
|
|
@@ -37,7 +37,7 @@ declare global {
|
|
|
37
37
|
* @param filter - optional query filter
|
|
38
38
|
* @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
|
|
39
39
|
*/
|
|
40
|
-
function cast_ray(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_cast_hit[], b2d.tree_stats]>;
|
|
40
|
+
function cast_ray<Backend extends "v3">(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_cast_hit[], b2d.tree_stats]>;
|
|
41
41
|
/**
|
|
42
42
|
* Cast a ray and return the closest hit.
|
|
43
43
|
*
|
|
@@ -47,7 +47,7 @@ declare global {
|
|
|
47
47
|
* @param filter - optional query filter
|
|
48
48
|
* @returns closest hit, or `nil`
|
|
49
49
|
*/
|
|
50
|
-
function cast_ray_closest(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter): b2d.fixture_cast_hit | undefined;
|
|
50
|
+
function cast_ray_closest<Backend extends "v2" = "v2">(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter): b2d.fixture_cast_hit | undefined;
|
|
51
51
|
/**
|
|
52
52
|
* The translation is the ray displacement from `origin`.
|
|
53
53
|
*
|
|
@@ -57,7 +57,7 @@ declare global {
|
|
|
57
57
|
* @param filter - optional query filter
|
|
58
58
|
* @returns closest hit, or `nil`
|
|
59
59
|
*/
|
|
60
|
-
function cast_ray_closest(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter): b2d.shape_cast_hit | undefined;
|
|
60
|
+
function cast_ray_closest<Backend extends "v3">(world: Opaque<"b2World">, origin: Vector3, translation: Vector3, filter?: b2d.query_filter): b2d.shape_cast_hit | undefined;
|
|
61
61
|
/**
|
|
62
62
|
* Uses Box2D v2 time-of-impact for fixture child shapes that support distance proxies.
|
|
63
63
|
* Grid fixture children are skipped.
|
|
@@ -68,7 +68,7 @@ declare global {
|
|
|
68
68
|
* @param filter - optional query filter
|
|
69
69
|
* @param max_results - optional maximum result count
|
|
70
70
|
*/
|
|
71
|
-
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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_cast_hit[], b2d.tree_stats]>;
|
|
71
|
+
function cast_shape<Backend extends "v2" = "v2">(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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_cast_hit[], b2d.tree_stats]>;
|
|
72
72
|
/**
|
|
73
73
|
* The translation is the shape displacement.
|
|
74
74
|
*
|
|
@@ -78,7 +78,7 @@ declare global {
|
|
|
78
78
|
* @param filter - optional query filter
|
|
79
79
|
* @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
|
|
80
80
|
*/
|
|
81
|
-
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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_cast_hit[], b2d.tree_stats]>;
|
|
81
|
+
function cast_shape<Backend extends "v3">(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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_cast_hit[], b2d.tree_stats]>;
|
|
82
82
|
/**
|
|
83
83
|
* Collide a mover capsule against the world.
|
|
84
84
|
*
|
|
@@ -220,7 +220,7 @@ declare global {
|
|
|
220
220
|
* - `fixtures` — overlapping fixtures. **⚠️ `index` is 1-based; passed to Defold unchanged.**
|
|
221
221
|
* - `stats` — broad-phase query statistics
|
|
222
222
|
*/
|
|
223
|
-
function overlap_aabb(world: Opaque<"b2World">, aabb: b2d.aabb, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_info[], b2d.tree_stats]>;
|
|
223
|
+
function overlap_aabb<Backend extends "v2" = "v2">(world: Opaque<"b2World">, aabb: b2d.aabb, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_info[], b2d.tree_stats]>;
|
|
224
224
|
/**
|
|
225
225
|
* Find shapes overlapping an AABB.
|
|
226
226
|
*
|
|
@@ -229,7 +229,7 @@ declare global {
|
|
|
229
229
|
* @param filter - optional query filter
|
|
230
230
|
* @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
|
|
231
231
|
*/
|
|
232
|
-
function overlap_aabb(world: Opaque<"b2World">, aabb: b2d.aabb, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_info[], b2d.tree_stats]>;
|
|
232
|
+
function overlap_aabb<Backend extends "v3">(world: Opaque<"b2World">, aabb: b2d.aabb, filter?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_info[], b2d.tree_stats]>;
|
|
233
233
|
/**
|
|
234
234
|
* Overlap a shape.
|
|
235
235
|
*
|
|
@@ -241,7 +241,7 @@ declare global {
|
|
|
241
241
|
* - `fixtures` — overlapping fixtures. **⚠️ `index` is 1-based; passed to Defold unchanged.**
|
|
242
242
|
* - `stats` — broad-phase query statistics
|
|
243
243
|
*/
|
|
244
|
-
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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_info[], b2d.tree_stats]>;
|
|
244
|
+
function overlap_shape<Backend extends "v2" = "v2">(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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.fixture_info[], b2d.tree_stats]>;
|
|
245
245
|
/**
|
|
246
246
|
* Find shapes overlapping a shape proxy.
|
|
247
247
|
*
|
|
@@ -250,7 +250,7 @@ declare global {
|
|
|
250
250
|
* @param filter - optional query filter
|
|
251
251
|
* @param max_results - optional maximum result count. Omit or pass 0 for unlimited results.
|
|
252
252
|
*/
|
|
253
|
-
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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_info[], b2d.tree_stats]>;
|
|
253
|
+
function overlap_shape<Backend extends "v3">(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?: b2d.query_filter, max_results?: number): LuaMultiReturn<[b2d.shape_info[], b2d.tree_stats]>;
|
|
254
254
|
/**
|
|
255
255
|
* Rebuild the static broad-phase tree.
|
|
256
256
|
*
|