diff --git a/README.md b/README.md
index 7245259..67c6e1b 100644
--- a/README.md
+++ b/README.md
@@ -16,19 +16,19 @@ Immersive Home is project to bring Smart Home and Mixed Reality technologies tog
Right now you can try out the app for free using either of the following pages:
-
+
-
+
-
+
-
+
diff --git a/addons/debug_draw_3d/libs/~libdd3d.windows.editor.x86_64.dll b/addons/debug_draw_3d/libs/~libdd3d.windows.editor.x86_64.dll
new file mode 100644
index 0000000..2206af5
--- /dev/null
+++ b/addons/debug_draw_3d/libs/~libdd3d.windows.editor.x86_64.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac3ac3647171c53e2f47564df2e25eff19fbfab8bf763d0078fe1c82476d8761
+size 1291264
diff --git a/addons/godot-xr-tools/audio/surface_audio.tscn b/addons/godot-xr-tools/audio/surface_audio.tscn
index 81fdcb9..ef59c58 100644
--- a/addons/godot-xr-tools/audio/surface_audio.tscn
+++ b/addons/godot-xr-tools/audio/surface_audio.tscn
@@ -1,6 +1,6 @@
-[gd_scene load_steps=2 format=2]
+[gd_scene load_steps=2 format=3 uid="uid://cggrrnkgc7ufo"]
-[ext_resource path="res://addons/godot-xr-tools/audio/surface_audio.gd" type="Script" id=1]
+[ext_resource type="Script" path="res://addons/godot-xr-tools/audio/surface_audio.gd" id="1"]
[node name="SurfaceAudio" type="Node"]
-script = ExtResource( 1 )
+script = ExtResource("1")
diff --git a/addons/godot-xr-tools/effects/vignette.tscn b/addons/godot-xr-tools/effects/vignette.tscn
index 3ac97d3..304a637 100644
--- a/addons/godot-xr-tools/effects/vignette.tscn
+++ b/addons/godot-xr-tools/effects/vignette.tscn
@@ -6,10 +6,11 @@
[sub_resource type="ArrayMesh" id="ArrayMesh_yyajy"]
_surfaces = [{
"aabb": AABB(-2, -2, 0, 4, 4, 1e-05),
-"format": 4097,
+"format": 34359742465,
"index_count": 192,
"index_data": PackedByteArray(32, 0, 33, 0, 1, 0, 32, 0, 1, 0, 0, 0, 33, 0, 34, 0, 2, 0, 33, 0, 2, 0, 1, 0, 34, 0, 35, 0, 3, 0, 34, 0, 3, 0, 2, 0, 35, 0, 36, 0, 4, 0, 35, 0, 4, 0, 3, 0, 36, 0, 37, 0, 5, 0, 36, 0, 5, 0, 4, 0, 37, 0, 38, 0, 6, 0, 37, 0, 6, 0, 5, 0, 38, 0, 39, 0, 7, 0, 38, 0, 7, 0, 6, 0, 39, 0, 40, 0, 8, 0, 39, 0, 8, 0, 7, 0, 40, 0, 41, 0, 9, 0, 40, 0, 9, 0, 8, 0, 41, 0, 42, 0, 10, 0, 41, 0, 10, 0, 9, 0, 42, 0, 43, 0, 11, 0, 42, 0, 11, 0, 10, 0, 43, 0, 44, 0, 12, 0, 43, 0, 12, 0, 11, 0, 44, 0, 45, 0, 13, 0, 44, 0, 13, 0, 12, 0, 45, 0, 46, 0, 14, 0, 45, 0, 14, 0, 13, 0, 46, 0, 47, 0, 15, 0, 46, 0, 15, 0, 14, 0, 47, 0, 48, 0, 16, 0, 47, 0, 16, 0, 15, 0, 48, 0, 49, 0, 17, 0, 48, 0, 17, 0, 16, 0, 49, 0, 50, 0, 18, 0, 49, 0, 18, 0, 17, 0, 50, 0, 51, 0, 19, 0, 50, 0, 19, 0, 18, 0, 51, 0, 52, 0, 20, 0, 51, 0, 20, 0, 19, 0, 52, 0, 53, 0, 21, 0, 52, 0, 21, 0, 20, 0, 53, 0, 54, 0, 22, 0, 53, 0, 22, 0, 21, 0, 54, 0, 55, 0, 23, 0, 54, 0, 23, 0, 22, 0, 55, 0, 56, 0, 24, 0, 55, 0, 24, 0, 23, 0, 56, 0, 57, 0, 25, 0, 56, 0, 25, 0, 24, 0, 57, 0, 58, 0, 26, 0, 57, 0, 26, 0, 25, 0, 58, 0, 59, 0, 27, 0, 58, 0, 27, 0, 26, 0, 59, 0, 60, 0, 28, 0, 59, 0, 28, 0, 27, 0, 60, 0, 61, 0, 29, 0, 60, 0, 29, 0, 28, 0, 61, 0, 62, 0, 30, 0, 61, 0, 30, 0, 29, 0, 62, 0, 63, 0, 31, 0, 62, 0, 31, 0, 30, 0, 63, 0, 32, 0, 0, 0, 63, 0, 0, 0, 31, 0),
"primitive": 3,
+"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 64,
"vertex_data": PackedByteArray(0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 123, 63, 194, 197, 71, 190, 0, 0, 0, 0, 94, 131, 108, 63, 22, 239, 195, 190, 0, 0, 0, 0, 49, 219, 84, 63, 218, 57, 14, 191, 0, 0, 0, 0, 243, 4, 53, 63, 243, 4, 53, 191, 0, 0, 0, 0, 218, 57, 14, 63, 49, 219, 84, 191, 0, 0, 0, 0, 21, 239, 195, 62, 94, 131, 108, 191, 0, 0, 0, 0, 196, 197, 71, 62, 190, 20, 123, 191, 0, 0, 0, 0, 46, 189, 59, 179, 0, 0, 128, 191, 0, 0, 0, 0, 194, 197, 71, 190, 190, 20, 123, 191, 0, 0, 0, 0, 20, 239, 195, 190, 95, 131, 108, 191, 0, 0, 0, 0, 217, 57, 14, 191, 50, 219, 84, 191, 0, 0, 0, 0, 243, 4, 53, 191, 243, 4, 53, 191, 0, 0, 0, 0, 50, 219, 84, 191, 217, 57, 14, 191, 0, 0, 0, 0, 94, 131, 108, 191, 23, 239, 195, 190, 0, 0, 0, 0, 191, 20, 123, 191, 193, 197, 71, 190, 0, 0, 0, 0, 0, 0, 128, 191, 46, 189, 187, 51, 0, 0, 0, 0, 191, 20, 123, 191, 189, 197, 71, 62, 0, 0, 0, 0, 94, 131, 108, 191, 21, 239, 195, 62, 0, 0, 0, 0, 48, 219, 84, 191, 219, 57, 14, 63, 0, 0, 0, 0, 244, 4, 53, 191, 242, 4, 53, 63, 0, 0, 0, 0, 221, 57, 14, 191, 47, 219, 84, 63, 0, 0, 0, 0, 26, 239, 195, 190, 94, 131, 108, 63, 0, 0, 0, 0, 198, 197, 71, 190, 190, 20, 123, 63, 0, 0, 0, 0, 46, 222, 76, 50, 0, 0, 128, 63, 0, 0, 0, 0, 200, 197, 71, 62, 190, 20, 123, 63, 0, 0, 0, 0, 27, 239, 195, 62, 93, 131, 108, 63, 0, 0, 0, 0, 215, 57, 14, 63, 51, 219, 84, 63, 0, 0, 0, 0, 242, 4, 53, 63, 245, 4, 53, 63, 0, 0, 0, 0, 49, 219, 84, 63, 219, 57, 14, 63, 0, 0, 0, 0, 95, 131, 108, 63, 21, 239, 195, 62, 0, 0, 0, 0, 191, 20, 123, 63, 188, 197, 71, 62, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 190, 20, 251, 63, 194, 197, 199, 190, 0, 0, 0, 0, 94, 131, 236, 63, 22, 239, 67, 191, 0, 0, 0, 0, 49, 219, 212, 63, 218, 57, 142, 191, 0, 0, 0, 0, 243, 4, 181, 63, 243, 4, 181, 191, 0, 0, 0, 0, 218, 57, 142, 63, 49, 219, 212, 191, 0, 0, 0, 0, 21, 239, 67, 63, 94, 131, 236, 191, 0, 0, 0, 0, 196, 197, 199, 62, 190, 20, 251, 191, 0, 0, 0, 0, 46, 189, 187, 179, 0, 0, 0, 192, 0, 0, 0, 0, 194, 197, 199, 190, 190, 20, 251, 191, 0, 0, 0, 0, 20, 239, 67, 191, 95, 131, 236, 191, 0, 0, 0, 0, 217, 57, 142, 191, 50, 219, 212, 191, 0, 0, 0, 0, 243, 4, 181, 191, 243, 4, 181, 191, 0, 0, 0, 0, 50, 219, 212, 191, 217, 57, 142, 191, 0, 0, 0, 0, 94, 131, 236, 191, 23, 239, 67, 191, 0, 0, 0, 0, 191, 20, 251, 191, 193, 197, 199, 190, 0, 0, 0, 0, 0, 0, 0, 192, 46, 189, 59, 52, 0, 0, 0, 0, 191, 20, 251, 191, 189, 197, 199, 62, 0, 0, 0, 0, 94, 131, 236, 191, 21, 239, 67, 63, 0, 0, 0, 0, 48, 219, 212, 191, 219, 57, 142, 63, 0, 0, 0, 0, 244, 4, 181, 191, 242, 4, 181, 63, 0, 0, 0, 0, 221, 57, 142, 191, 47, 219, 212, 63, 0, 0, 0, 0, 26, 239, 67, 191, 94, 131, 236, 63, 0, 0, 0, 0, 198, 197, 199, 190, 190, 20, 251, 63, 0, 0, 0, 0, 46, 222, 204, 50, 0, 0, 0, 64, 0, 0, 0, 0, 200, 197, 199, 62, 190, 20, 251, 63, 0, 0, 0, 0, 27, 239, 67, 63, 93, 131, 236, 63, 0, 0, 0, 0, 215, 57, 142, 63, 51, 219, 212, 63, 0, 0, 0, 0, 242, 4, 181, 63, 245, 4, 181, 63, 0, 0, 0, 0, 49, 219, 212, 63, 219, 57, 142, 63, 0, 0, 0, 0, 95, 131, 236, 63, 21, 239, 67, 63, 0, 0, 0, 0, 191, 20, 251, 63, 188, 197, 199, 62, 0, 0, 0, 0)
}]
diff --git a/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres b/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres
index 6e05f8b..a97fbf0 100644
--- a/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres
+++ b/addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:ec74b5b5948e76d01115d7ff959610515e97aca1c42870f36b4a747f2dc4cb70
+oid sha256:b55738edba8fcdaab47c5e40cf4b900b10c86ea67f9d40dc041f84f4e76ec484
size 2416
diff --git a/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres b/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres
index 71ad03f..5bfabca 100644
--- a/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres
+++ b/addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:46cdd3222390fdf4b7e6f591958bbf30944df088a71cab919ba54a49ace2baf8
+oid sha256:3a3e64d9a45c8ab58180b00eae7ed8e306c22686656fca4ed854b87283ed4c09
size 2424
diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import
index 5517136..f3af00a 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import
index 4da8a2e..a42434a 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import
index 198b82f..478d8e1 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import
index cb42376..9b4bf74 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import
index bba3505..28458e8 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import
index 734e1a7..ad9ae09 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import
index 2e4d049..cfd9a3a 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import
index c8c8f58..f9a3680 100644
--- a/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import b/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import
index 4738f2c..e89ca1e 100644
--- a/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_low_L.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import b/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import
index 7971a55..334e485 100644
--- a/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import
+++ b/addons/godot-xr-tools/hands/model/Hand_low_R.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/hand_l.gltf.import b/addons/godot-xr-tools/hands/model/hand_l.gltf.import
index 58a5c3e..a62a6b6 100644
--- a/addons/godot-xr-tools/hands/model/hand_l.gltf.import
+++ b/addons/godot-xr-tools/hands/model/hand_l.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/model/hand_r.gltf.import b/addons/godot-xr-tools/hands/model/hand_r.gltf.import
index 9186c9b..7448225 100644
--- a/addons/godot-xr-tools/hands/model/hand_r.gltf.import
+++ b/addons/godot-xr-tools/hands/model/hand_r.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn
index 5af1d46..db9c6b1 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_hand.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://bpdj5njb8nhot"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://dhaqth6q5yw4n" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://dvkh1gxbhwri4" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_x4lr3"]
[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="4"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_rtx6p")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_y01rx")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn
index 64dfa96..f54a0b5 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_fullglove_physics_hand.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=14 format=3 uid="uid://nqiyqnx42m61"]
-[ext_resource type="PackedScene" uid="uid://dhaqth6q5yw4n" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://dvkh1gxbhwri4" path="res://addons/godot-xr-tools/hands/model/hand_l.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_0aa1r"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_g5ps2")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_v8isy")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn
index 4b675af..f9d32bb 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_hand.tscn
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_2ssci")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_narw6")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn
index c94c778..fdc5aa8 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_hand.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://cy03d57iyrci"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://q1l3fknstir2" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://bh786yhm5v4fh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_L.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_fye1l"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_40ncn")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_fjpy6")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn
index 43f657f..4ac5560 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_physics_tac_glove.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=14 format=3 uid="uid://ddsj74hpt1kgb"]
-[ext_resource type="PackedScene" uid="uid://bu07alt6vkbaq" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://bd7h22w1o77fp" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_rnhp7"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_2ih7n")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_02eq5")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftPhysicsHand" type="Node3D"]
script = ExtResource("6")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn
index 60a45d6..88f9dcb 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/left_tac_glove.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://hpr0v012ghsb"]
-[ext_resource type="PackedScene" uid="uid://bu07alt6vkbaq" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://bd7h22w1o77fp" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_L.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_s33di"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_kjpaa")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_kisbg")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn
index 84e076b..87d59df 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_hand.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://d1tl07geqm5xq"]
-[ext_resource type="PackedScene" uid="uid://ds1t8vc0kxoeo" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://ytv5cbt6dbeg" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_xmpie"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_gm5ny")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_3o6s4")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn
index c48a0c5..d703934 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_fullglove_physics_hand.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=14 format=3 uid="uid://cigx2gnf4tg4d"]
-[ext_resource type="PackedScene" uid="uid://ds1t8vc0kxoeo" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://ytv5cbt6dbeg" path="res://addons/godot-xr-tools/hands/model/hand_r.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_23oai"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4mwbe")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_x7ees")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn
index 3062ad9..30f53d2 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_hand.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://raeeicvvindd"]
-[ext_resource type="PackedScene" uid="uid://c6s5nvekg0isa" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://duffm8pu8ask7" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_lydk3"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_0hd6d")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_okkj6")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn
index 0ee707a..0be37a2 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_hand.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://kcqomcjq52np"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://c6s5nvekg0isa" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://duffm8pu8ask7" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_R.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_gqplw"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4bb4h")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_b8ks0")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn
index 18bf291..2321537 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_physics_tac_glove.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://b6xesntm4qeo5"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://w7th3d2hl7b5" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://iwqh6hhdhhdk" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_h0fv3"]
[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_dc0m1")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_guoth")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightPhysicsHand" type="Node3D"]
script = ExtResource("6")
diff --git a/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn b/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn
index 3ac11a0..b6b6823 100644
--- a/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn
+++ b/addons/godot-xr-tools/hands/scenes/highpoly/right_tac_glove.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://dup2vp8v5rpi5"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://w7th3d2hl7b5" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://iwqh6hhdhhdk" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_R.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_3ih8a"]
[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="4"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4vdom")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_hef27")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn
index 1899c63..4d82290 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_fullglove_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://bq86r4yll8po"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://16colgxrw27d" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://g510kgsy5u72" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_wyae6"]
[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="5"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_470u2")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_fhgyt")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn
index 7455a9d..b7286db 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_hand_low.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://b4kad2kuba1yn"]
-[ext_resource type="PackedScene" uid="uid://c4nba0qpi0uls" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://w87o4l6qhsmd" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_ry7qg"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_c3h37")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ihxeh")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn
index 94f4a5b..f84a9d8 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_fullglove_low.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=14 format=3 uid="uid://b8hc2ex21u8xj"]
-[ext_resource type="PackedScene" uid="uid://16colgxrw27d" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://g510kgsy5u72" path="res://addons/godot-xr-tools/hands/model/Hand_low_L.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_4017m"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_fvmpw")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_a1c3t")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn
index 7c0ccfb..1d310c7 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_hand_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://bdwmserhqai5h"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://c4nba0qpi0uls" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://w87o4l6qhsmd" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_L.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_t17lq"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_3l13i")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ms3kw")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn
index 57263a9..e8bc058 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_physics_tac_glove_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://bj1aas6kty3qx"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://bnx4hithcij6y" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://dokq2yjsxpofc" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="2"]
[ext_resource type="AnimationNodeBlendTree" uid="uid://dl8yf7ipqotd1" path="res://addons/godot-xr-tools/hands/animations/left/hand_blend_tree.tres" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_oehre"]
[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_vkt4w")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_1yhw8")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftPhysicsHand" type="Node3D"]
script = ExtResource("6")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn
index 26176eb..b53f92d 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/left_tac_glove_low.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://bx1xdisoqo1f6"]
-[ext_resource type="PackedScene" uid="uid://bnx4hithcij6y" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://dokq2yjsxpofc" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_L.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://the6y7swe6j0" path="res://addons/godot-xr-tools/hands/animations/left/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dertgu7k8alls" path="res://addons/godot-xr-tools/hands/poses/pose_default_left.tres" id="3_iq5xt"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_csu2l")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_akg52")
nodes/Trigger/position = Vector2(-360, 20)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="LeftHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn
index 530078b..fc6c501 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_fullglove_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://xqimcf20s2jp"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://cjrac51wst3tu" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://c6rnlihkm44f0" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
[ext_resource type="Material" uid="uid://ba02jnd2dswyn" path="res://addons/godot-xr-tools/hands/materials/cleaning_glove.material" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_r4xyu"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="4"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l50hj")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_vrc3g")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightHand" type="Node3D"]
script = ExtResource("4")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn
index e985370..cac7bff 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_hand_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=13 format=3 uid="uid://l2n30mpbkdyw"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://dunu03tc5vdbh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://cgobg2isk3rk1" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_f67ka"]
[ext_resource type="Material" uid="uid://dbvge3quu3bju" path="res://addons/godot-xr-tools/hands/materials/caucasian_hand.material" id="4"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_covtt")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_h5uio")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn
index be22323..13103a9 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_fullglove_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://bkdeegb8w3oah"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://cjrac51wst3tu" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://c6rnlihkm44f0" path="res://addons/godot-xr-tools/hands/model/Hand_low_R.gltf" id="2"]
[ext_resource type="Material" uid="uid://bhiiya7ow6h8v" path="res://addons/godot-xr-tools/hands/materials/labglove.material" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_e8slj"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_1fjc2")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_ai2qv")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightPhysicsHand" type="Node3D"]
script = ExtResource("4")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn
index 7b35e6f..0c3d319 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_hand_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://btf05hjpw6k05"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://dunu03tc5vdbh" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://cgobg2isk3rk1" path="res://addons/godot-xr-tools/hands/model/Hand_Nails_low_R.gltf" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/physics_hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_b86a5"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand_physics_bone.gd" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_l0mk4")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_it0su")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightPhysicsHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn
index 13804db..76a8f2b 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_physics_tac_glove_low.tscn
@@ -1,7 +1,7 @@
[gd_scene load_steps=14 format=3 uid="uid://c2uvwvdlsfuep"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="1"]
-[ext_resource type="PackedScene" uid="uid://csgsp0wuw8ucy" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="2"]
+[ext_resource type="PackedScene" uid="uid://cacrvwhji2ibw" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="2"]
[ext_resource type="AnimationNodeBlendTree" uid="uid://m85b1gogdums" path="res://addons/godot-xr-tools/hands/animations/right/hand_blend_tree.tres" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_xodao"]
[ext_resource type="Material" uid="uid://dy4ya7w0k18ds" path="res://addons/godot-xr-tools/hands/materials/glove_caucasian_dark_camo.material" id="4"]
@@ -37,7 +37,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_8kdoe")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_5qnsq")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightPhysicsHand" type="Node3D"]
script = ExtResource("6")
diff --git a/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn b/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn
index a258c44..5128804 100644
--- a/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn
+++ b/addons/godot-xr-tools/hands/scenes/lowpoly/right_tac_glove_low.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=13 format=3 uid="uid://chumpejwiub7f"]
-[ext_resource type="PackedScene" uid="uid://csgsp0wuw8ucy" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="1"]
+[ext_resource type="PackedScene" uid="uid://cacrvwhji2ibw" path="res://addons/godot-xr-tools/hands/model/Hand_Glove_low_R.gltf" id="1"]
[ext_resource type="PackedScene" uid="uid://bxipj7hyjwy6f" path="res://addons/godot-xr-tools/hands/animations/right/AnimationPlayer.tscn" id="2"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/hands/hand.gd" id="3"]
[ext_resource type="Resource" uid="uid://dmpjtk0l8vh6v" path="res://addons/godot-xr-tools/hands/poses/pose_default_right.tres" id="3_2wryo"]
@@ -36,7 +36,7 @@ nodes/OpenHand/node = SubResource("AnimationNodeAnimation_4o3a2")
nodes/OpenHand/position = Vector2(-600, 100)
nodes/Trigger/node = SubResource("AnimationNodeBlend2_5v4fm")
nodes/Trigger/position = Vector2(-360, 40)
-node_connections = [&"output", 0, &"Grip", &"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1"]
+node_connections = [&"Grip", 0, &"Trigger", &"Grip", 1, &"ClosedHand2", &"Trigger", 0, &"OpenHand", &"Trigger", 1, &"ClosedHand1", &"output", 0, &"Grip"]
[node name="RightHand" type="Node3D"]
script = ExtResource("3")
diff --git a/addons/godot-xr-tools/interactables/interactable_hinge.tscn b/addons/godot-xr-tools/interactables/interactable_hinge.tscn
index 11e5ed8..ca39b0a 100644
--- a/addons/godot-xr-tools/interactables/interactable_hinge.tscn
+++ b/addons/godot-xr-tools/interactables/interactable_hinge.tscn
@@ -1,6 +1,6 @@
-[gd_scene load_steps=2 format=2]
+[gd_scene load_steps=2 format=3 uid="uid://bwqiturebyt3h"]
-[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" type="Script" id=1]
+[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_hinge.gd" id="1"]
[node name="InteractableHinge" type="Spatial"]
-script = ExtResource( 1 )
+script = ExtResource("1")
diff --git a/addons/godot-xr-tools/interactables/interactable_joystick.tscn b/addons/godot-xr-tools/interactables/interactable_joystick.tscn
index 1dcd9a4..6ec1496 100644
--- a/addons/godot-xr-tools/interactables/interactable_joystick.tscn
+++ b/addons/godot-xr-tools/interactables/interactable_joystick.tscn
@@ -1,6 +1,6 @@
-[gd_scene load_steps=2 format=2]
+[gd_scene load_steps=2 format=3 uid="uid://cnfk38alyp72q"]
-[ext_resource path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" type="Script" id=1]
+[ext_resource type="Script" path="res://addons/godot-xr-tools/interactables/interactable_joystick.gd" id="1"]
[node name="InteractableJoystick" type="Spatial"]
-script = ExtResource( 1 )
+script = ExtResource("1")
diff --git a/addons/godot-xr-tools/misc/hold_button.tscn b/addons/godot-xr-tools/misc/hold_button.tscn
index 2e69092..84f9aaa 100644
--- a/addons/godot-xr-tools/misc/hold_button.tscn
+++ b/addons/godot-xr-tools/misc/hold_button.tscn
@@ -10,9 +10,9 @@ resource_local_to_scene = true
render_priority = 0
shader = ExtResource("2")
shader_parameter/albedo = Color(1, 1, 1, 1)
+shader_parameter/value = 0.2
shader_parameter/fade = 0.05
shader_parameter/radius = 0.8
-shader_parameter/value = 0.2
shader_parameter/width = 0.2
[node name="HoldButton" type="Node3D"]
diff --git a/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn b/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn
index 8c9ab26..597bab7 100644
--- a/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn
+++ b/addons/godot-xr-tools/misc/vr_common_shader_cache.tscn
@@ -1,7 +1,7 @@
-[gd_scene load_steps=8 format=3]
+[gd_scene load_steps=8 format=3 uid="uid://cjccb67fjl4aw"]
[ext_resource type="Script" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.gd" id="1"]
-[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/teleport.tres" id="2_6822k"]
+[ext_resource type="Material" uid="uid://bk72wfw25ff0v" path="res://addons/godot-xr-tools/materials/teleport.tres" id="2_6822k"]
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/target.tres" id="3_agvdv"]
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/capsule.tres" id="4_gxjsg"]
[ext_resource type="Material" path="res://addons/godot-xr-tools/materials/pointer.tres" id="5_12251"]
diff --git a/addons/godot-xr-tools/staging/loading_screen.tscn b/addons/godot-xr-tools/staging/loading_screen.tscn
index 305c89f..749402e 100644
--- a/addons/godot-xr-tools/staging/loading_screen.tscn
+++ b/addons/godot-xr-tools/staging/loading_screen.tscn
@@ -2,8 +2,8 @@
[ext_resource type="Script" path="res://addons/godot-xr-tools/staging/loading_screen.gd" id="2"]
[ext_resource type="Shader" uid="uid://4i0pwdtfmtsv" path="res://addons/godot-xr-tools/staging/loading_screen/loading_screen_shader.tres" id="3"]
-[ext_resource type="Texture2D" uid="uid://clbtsf0ahb3fm" path="res://addons/godot-xr-tools/assets/misc/progress_bar.png" id="4"]
-[ext_resource type="Texture2D" uid="uid://ocyj01x5mtt7" path="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" id="5"]
+[ext_resource type="Texture2D" uid="uid://b77u06jwo4l5y" path="res://addons/godot-xr-tools/assets/misc/progress_bar.png" id="4"]
+[ext_resource type="Texture2D" uid="uid://dbbxlk5acoxfg" path="res://addons/godot-xr-tools/assets/misc/Hold trigger to continue.png" id="5"]
[ext_resource type="PackedScene" uid="uid://cymteydkxagpp" path="res://addons/godot-xr-tools/misc/hold_button.tscn" id="6"]
[sub_resource type="Curve" id="21"]
diff --git a/addons/godot-xr-tools/staging/staging.tscn b/addons/godot-xr-tools/staging/staging.tscn
index d78690b..7fc0b02 100644
--- a/addons/godot-xr-tools/staging/staging.tscn
+++ b/addons/godot-xr-tools/staging/staging.tscn
@@ -4,7 +4,7 @@
[ext_resource type="PackedScene" uid="uid://bqumugyvkct4r" path="res://addons/godot-xr-tools/staging/loading_screen.tscn" id="2"]
[ext_resource type="Environment" uid="uid://ckiwtcdsam7ed" path="res://addons/godot-xr-tools/staging/staging_env.tres" id="3_40x3a"]
[ext_resource type="Shader" path="res://addons/godot-xr-tools/staging/fade.gdshader" id="4"]
-[ext_resource type="PackedScene" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.tscn" id="5"]
+[ext_resource type="PackedScene" uid="uid://cjccb67fjl4aw" path="res://addons/godot-xr-tools/misc/vr_common_shader_cache.tscn" id="5"]
[ext_resource type="PackedScene" uid="uid://clc5dre31iskm" path="res://addons/godot-xr-tools/xr/start_xr.tscn" id="6_balvx"]
[sub_resource type="QuadMesh" id="4"]
diff --git a/addons/godotopenxrvendors/GodotOpenXRVendors_CHANGES.md b/addons/godotopenxrvendors/GodotOpenXRVendors_CHANGES.md
new file mode 100644
index 0000000..75d57d3
--- /dev/null
+++ b/addons/godotopenxrvendors/GodotOpenXRVendors_CHANGES.md
@@ -0,0 +1,30 @@
+# Change history for the Godot OpenXR loaders asset
+
+## 2.0.0
+- Update to the new Godot 4.2 Android plugin packaging format
+- Update the plugin to Godot v2 Android plugin
+- Update to the Godot 4.2 Android library
+- Add warning when multiple loaders are selected
+- Add configs for the OpenXR Eye gaze interaction extension
+- Add the ability to customize supported Meta devices
+- Add support for Quest 3 devices
+- Update the directory structure for the v2 plugin
+- Update Meta OpenXR mobile SDK to version 57
+- Update the java version to 17
+- Rename the plugin to 'Godot OpenXR Vendors'
+- Add godot-cpp dependency
+- Add OpenXR 1.0.30 headers
+- Add support for the Meta scene capture API (Donated by [Migeran](https://migeran.com))
+
+## 1.1.0
+- Update Meta OpenXR loader to version 54
+- Update PICO OpenXR loader to version 2.2.0
+- Bump dependencies versions to match the latest Godot 4.x stable version (v4.0.3)
+
+## 1.0.0
+- First version
+- Added support for Meta Quest loader
+- Added support for Pico loader
+- Added support for Khronos loader (Magic Leap 2, HTC, etc.)
+- Added support for Lynx loader
+- Add logic to automatically publish the Godot OpenXR loaders libraries to mavencentral on release
diff --git a/addons/godotopenxrvendors/globals.gd b/addons/godotopenxrvendors/globals.gd
new file mode 100644
index 0000000..4964c2f
--- /dev/null
+++ b/addons/godotopenxrvendors/globals.gd
@@ -0,0 +1,19 @@
+@tool
+
+# Set of supported vendors
+const META_VENDOR_NAME = "meta"
+const PICO_VENDOR_NAME = "pico"
+const LYNX_VENDOR_NAME = "lynx"
+const KHRONOS_VENDOR_NAME = "khronos"
+
+const VENDORS_LIST = [
+ META_VENDOR_NAME,
+ PICO_VENDOR_NAME,
+ LYNX_VENDOR_NAME,
+ KHRONOS_VENDOR_NAME,
+ ]
+
+# Set of custom feature tags supported by the plugin
+const EYE_GAZE_INTERACTION_FEATURE = "XR_EXT_eye_gaze_interaction"
+
+const OPENXR_MODE_VALUE = 1
diff --git a/addons/godotopenxrvendors/godot_openxr_export_plugin.gd b/addons/godotopenxrvendors/godot_openxr_export_plugin.gd
new file mode 100644
index 0000000..ab35812
--- /dev/null
+++ b/addons/godotopenxrvendors/godot_openxr_export_plugin.gd
@@ -0,0 +1,186 @@
+@tool
+extends EditorPlugin
+
+var globals = preload("globals.gd")
+
+# A class member to hold the export plugin during its lifecycle.
+var meta_export_plugin : GodotOpenXREditorExportPlugin
+var pico_export_plugin : GodotOpenXREditorExportPlugin
+var lynx_export_plugin : GodotOpenXREditorExportPlugin
+var khronos_export_plugin : GodotOpenXREditorExportPlugin
+
+
+func _enter_tree():
+ var plugin_version = get_plugin_version()
+
+ # Initializing the export plugins
+ meta_export_plugin = preload("meta/godot_openxr_meta_editor_export_plugin.gd").new()
+ meta_export_plugin._setup(globals.META_VENDOR_NAME, plugin_version)
+
+ pico_export_plugin = preload("pico/godot_openxr_pico_editor_export_plugin.gd").new()
+ pico_export_plugin._setup(globals.PICO_VENDOR_NAME, plugin_version)
+
+ lynx_export_plugin = preload("lynx/godot_openxr_lynx_editor_export_plugin.gd").new()
+ lynx_export_plugin._setup(globals.LYNX_VENDOR_NAME, plugin_version)
+
+ khronos_export_plugin = preload("khronos/godot_openxr_khronos_editor_export_plugin.gd").new()
+ khronos_export_plugin._setup(globals.KHRONOS_VENDOR_NAME, plugin_version)
+
+ add_export_plugin(meta_export_plugin)
+ add_export_plugin(pico_export_plugin)
+ add_export_plugin(lynx_export_plugin)
+ add_export_plugin(khronos_export_plugin)
+
+
+func _exit_tree():
+ # Cleaning up the export plugins
+ remove_export_plugin(meta_export_plugin)
+ remove_export_plugin(pico_export_plugin)
+ remove_export_plugin(lynx_export_plugin)
+ remove_export_plugin(khronos_export_plugin)
+
+ meta_export_plugin = null
+ pico_export_plugin = null
+ lynx_export_plugin = null
+ khronos_export_plugin = null
+
+
+class GodotOpenXREditorExportPlugin extends EditorExportPlugin:
+
+ ## Base class for the vendor editor export plugin
+
+ var globals = preload("globals.gd")
+
+ var _vendor: String
+ var _plugin_version: String
+
+ func _setup(vendor: String, version: String):
+ _vendor = vendor
+ _plugin_version = version
+
+
+ func _get_name() -> String:
+ return "GodotOpenXR" + _vendor.capitalize()
+
+
+ # Path to the Android library aar file
+ # If this is not available, we fall back to the maven central dependency
+ func _get_android_aar_file_path(debug: bool) -> String:
+ var debug_label = "debug" if debug else "release"
+ return "res://addons/godotopenxrvendors/" + _vendor + "/.bin/" + debug_label + "/godotopenxr" + _vendor + "-" + debug_label + ".aar"
+
+
+ # Maven central dependency used as fall back when the Android library aar file is not available
+ func _get_android_maven_central_dependency() -> String:
+ return "org.godotengine:godot-openxr-vendors-" + _vendor + ":" + _plugin_version
+
+
+ func _get_vendor_toggle_option_name(vendor_name: String = _vendor) -> String:
+ return "xr_features/enable_" + vendor_name + "_plugin"
+
+
+ func _get_vendor_toggle_option(vendor_name: String = _vendor) -> Dictionary:
+ var toggle_option = {
+ "option": {
+ "name": _get_vendor_toggle_option_name(vendor_name),
+ "class_name": "",
+ "type": TYPE_BOOL,
+ "hint": PROPERTY_HINT_NONE,
+ "hint_string": "",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": false,
+ "update_visibility": false,
+ }
+ return toggle_option
+
+
+ func _is_openxr_enabled() -> bool:
+ return _get_int_option("xr_features/xr_mode", 0) == globals.OPENXR_MODE_VALUE
+
+
+ func _get_export_options(platform) -> Array[Dictionary]:
+ if not _supports_platform(platform):
+ return []
+
+ return [
+ _get_vendor_toggle_option(),
+ ]
+
+
+ func _get_export_option_warning(platform, option) -> String:
+ if not _supports_platform(platform):
+ return ""
+
+ if option != _get_vendor_toggle_option_name():
+ return ""
+
+ if not(_is_openxr_enabled()) and _get_bool_option(option):
+ return "\"Enable " + _vendor.capitalize() + " Plugin\" requires \"XR Mode\" to be \"OpenXR\".\n"
+
+ if _is_vendor_plugin_enabled():
+ for vendor_name in globals.VENDORS_LIST:
+ if (vendor_name != _vendor) and _is_vendor_plugin_enabled(vendor_name):
+ return "\"Disable " + _vendor.capitalize() + " Plugin before enabling another. Multiple plugins are not supported!\""
+
+ return ""
+
+
+ func _supports_platform(platform) -> bool:
+ if platform is EditorExportPlatformAndroid:
+ return true
+ return false
+
+
+ func _get_bool_option(option: String) -> bool:
+ var option_enabled = get_option(option)
+ if option_enabled is bool:
+ return option_enabled
+ return false
+
+
+ func _get_int_option(option: String, default_value: int) -> int:
+ var option_value = get_option(option)
+ if option_value is int:
+ return option_value
+ return default_value
+
+
+ func _is_vendor_plugin_enabled(vendor_name: String = _vendor) -> bool:
+ return _get_bool_option(_get_vendor_toggle_option_name(vendor_name))
+
+
+ func _is_android_aar_file_available(debug: bool) -> bool:
+ return FileAccess.file_exists(_get_android_aar_file_path(debug))
+
+
+ func _get_android_dependencies(platform, debug) -> PackedStringArray:
+ if not _supports_platform(platform):
+ return PackedStringArray()
+
+ if _is_vendor_plugin_enabled() and not _is_android_aar_file_available(debug):
+ return PackedStringArray([_get_android_maven_central_dependency()])
+
+ return PackedStringArray()
+
+
+ func _get_android_libraries(platform, debug) -> PackedStringArray:
+ if not _supports_platform(platform):
+ return PackedStringArray()
+
+ if _is_vendor_plugin_enabled() and _is_android_aar_file_available(debug):
+ return PackedStringArray([_get_android_aar_file_path(debug)])
+
+ return PackedStringArray()
+
+
+ func _get_android_dependencies_maven_repos(platform, debug) -> PackedStringArray:
+ var maven_repos = PackedStringArray()
+
+ if not _supports_platform(platform):
+ return maven_repos
+
+ if _is_vendor_plugin_enabled() and not _is_android_aar_file_available(debug) and _plugin_version.ends_with("-SNAPSHOT"):
+ maven_repos.append("https://s01.oss.sonatype.org/content/repositories/snapshots/")
+
+ return maven_repos
diff --git a/android/plugins/godotopenxrkhr/godotopenxrkhr-release.aar b/addons/godotopenxrvendors/khronos/.bin/debug/godotopenxrkhronos-debug.aar
similarity index 99%
rename from android/plugins/godotopenxrkhr/godotopenxrkhr-release.aar
rename to addons/godotopenxrvendors/khronos/.bin/debug/godotopenxrkhronos-debug.aar
index cc5f719..4599d45 100644
Binary files a/android/plugins/godotopenxrkhr/godotopenxrkhr-release.aar and b/addons/godotopenxrvendors/khronos/.bin/debug/godotopenxrkhronos-debug.aar differ
diff --git a/addons/godotopenxrvendors/khronos/.bin/release/godotopenxrkhronos-release.aar b/addons/godotopenxrvendors/khronos/.bin/release/godotopenxrkhronos-release.aar
new file mode 100644
index 0000000..61232b7
Binary files /dev/null and b/addons/godotopenxrvendors/khronos/.bin/release/godotopenxrkhronos-release.aar differ
diff --git a/android/plugins/godotopenxrkhr/LICENSE b/addons/godotopenxrvendors/khronos/LICENSE
similarity index 100%
rename from android/plugins/godotopenxrkhr/LICENSE
rename to addons/godotopenxrvendors/khronos/LICENSE
diff --git a/addons/godotopenxrvendors/khronos/godot_openxr_khronos_editor_export_plugin.gd b/addons/godotopenxrvendors/khronos/godot_openxr_khronos_editor_export_plugin.gd
new file mode 100644
index 0000000..00905e4
--- /dev/null
+++ b/addons/godotopenxrvendors/khronos/godot_openxr_khronos_editor_export_plugin.gd
@@ -0,0 +1,23 @@
+@tool
+extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
+
+
+func _get_android_manifest_activity_element_contents(platform, debug) -> String:
+ if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
+ return ""
+
+ var contents = """
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ """
+
+ return contents
diff --git a/addons/godotopenxrvendors/lynx/.bin/debug/godotopenxrlynx-debug.aar b/addons/godotopenxrvendors/lynx/.bin/debug/godotopenxrlynx-debug.aar
new file mode 100644
index 0000000..cc48c6a
Binary files /dev/null and b/addons/godotopenxrvendors/lynx/.bin/debug/godotopenxrlynx-debug.aar differ
diff --git a/android/plugins/godotopenxrlynx/godotopenxrlynx-release.aar b/addons/godotopenxrvendors/lynx/.bin/release/godotopenxrlynx-release.aar
similarity index 99%
rename from android/plugins/godotopenxrlynx/godotopenxrlynx-release.aar
rename to addons/godotopenxrvendors/lynx/.bin/release/godotopenxrlynx-release.aar
index 3fcef3d..362f38a 100644
Binary files a/android/plugins/godotopenxrlynx/godotopenxrlynx-release.aar and b/addons/godotopenxrvendors/lynx/.bin/release/godotopenxrlynx-release.aar differ
diff --git a/addons/godotopenxrvendors/lynx/godot_openxr_lynx_editor_export_plugin.gd b/addons/godotopenxrvendors/lynx/godot_openxr_lynx_editor_export_plugin.gd
new file mode 100644
index 0000000..fb13ce9
--- /dev/null
+++ b/addons/godotopenxrvendors/lynx/godot_openxr_lynx_editor_export_plugin.gd
@@ -0,0 +1,20 @@
+@tool
+extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
+
+
+func _get_android_manifest_activity_element_contents(platform, debug) -> String:
+ if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
+ return ""
+
+ var contents = """
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ """
+
+ return contents
diff --git a/addons/godotopenxrvendors/meta/.bin/debug/godotopenxrmeta-debug.aar b/addons/godotopenxrvendors/meta/.bin/debug/godotopenxrmeta-debug.aar
new file mode 100644
index 0000000..bcea0a8
Binary files /dev/null and b/addons/godotopenxrvendors/meta/.bin/debug/godotopenxrmeta-debug.aar differ
diff --git a/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.x86_64.so b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.x86_64.so
new file mode 100644
index 0000000..b463f7f
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.x86_64.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:412fb9932adf31a0db9adbefb190ac9241003ed9166abb2714e9065dec3f0767
+size 719904
diff --git a/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.x86_64.so b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.x86_64.so
new file mode 100644
index 0000000..ebba244
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.x86_64.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fc9c79f67a780456530834388a9112bb5d0aec70775e051c211bde30912ec805
+size 711152
diff --git a/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_debug.framework/libgodotopenxrmeta.macos.template_debug b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_debug.framework/libgodotopenxrmeta.macos.template_debug
new file mode 100644
index 0000000..9e4e100
Binary files /dev/null and b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_debug.framework/libgodotopenxrmeta.macos.template_debug differ
diff --git a/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_release.framework/libgodotopenxrmeta.macos.template_release b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_release.framework/libgodotopenxrmeta.macos.template_release
new file mode 100644
index 0000000..08e8b57
Binary files /dev/null and b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_release.framework/libgodotopenxrmeta.macos.template_release differ
diff --git a/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_debug.x86_64.dll b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_debug.x86_64.dll
new file mode 100644
index 0000000..3a40c52
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_debug.x86_64.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7cee1054aae5929644ebe34ee27870f5d5b75a9062c45c2ff650573e68adea89
+size 1533440
diff --git a/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_release.x86_64.dll b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_release.x86_64.dll
new file mode 100644
index 0000000..bc82cff
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_release.x86_64.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6acd70ae65a48332a57014b8d8998bd486fe514df96bcff80bbe6488a86e7772
+size 1529344
diff --git a/addons/godotopenxrvendors/meta/.bin/release/godotopenxrmeta-release.aar b/addons/godotopenxrvendors/meta/.bin/release/godotopenxrmeta-release.aar
new file mode 100644
index 0000000..414aa6d
Binary files /dev/null and b/addons/godotopenxrvendors/meta/.bin/release/godotopenxrmeta-release.aar differ
diff --git a/addons/godotopenxrvendors/meta/.bin/~libgodotopenxrmeta.windows.template_debug.x86_64.dll b/addons/godotopenxrvendors/meta/.bin/~libgodotopenxrmeta.windows.template_debug.x86_64.dll
new file mode 100644
index 0000000..3a40c52
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/.bin/~libgodotopenxrmeta.windows.template_debug.x86_64.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7cee1054aae5929644ebe34ee27870f5d5b75a9062c45c2ff650573e68adea89
+size 1533440
diff --git a/android/plugins/godotopenxrmeta/LICENSE.txt b/addons/godotopenxrvendors/meta/LICENSE.txt
similarity index 100%
rename from android/plugins/godotopenxrmeta/LICENSE.txt
rename to addons/godotopenxrvendors/meta/LICENSE.txt
diff --git a/addons/godotopenxrvendors/meta/godot_openxr_meta_editor_export_plugin.gd b/addons/godotopenxrvendors/meta/godot_openxr_meta_editor_export_plugin.gd
new file mode 100644
index 0000000..5c9a3eb
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/godot_openxr_meta_editor_export_plugin.gd
@@ -0,0 +1,300 @@
+@tool
+extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
+
+const EYE_TRACKING_NONE_VALUE = 0
+const EYE_TRACKING_OPTIONAL_VALUE = 1
+const EYE_TRACKING_REQUIRED_VALUE = 2
+
+const PASSTHROUGH_NONE_VALUE = 0
+const PASSTHROUGH_OPTIONAL_VALUE = 1
+const PASSTHROUGH_REQUIRED_VALUE = 2
+
+const HAND_TRACKING_NONE_VALUE = 0
+const HAND_TRACKING_OPTIONAL_VALUE = 1
+const HAND_TRACKING_REQUIRED_VALUE = 2
+
+const HAND_TRACKING_FREQUENCY_LOW_VALUE = 0
+const HAND_TRACKING_FREQUENCY_HIGH_VALUE = 1
+
+const EYE_TRACKING_OPTION = {
+ "option": {
+ "name": "meta_xr_features/eye_tracking",
+ "class_name": "",
+ "type": TYPE_INT,
+ "hint": PROPERTY_HINT_ENUM,
+ "hint_string": "None,Optional,Required",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": EYE_TRACKING_NONE_VALUE,
+ "update_visibility": false,
+}
+
+const HAND_TRACKING_OPTION = {
+ "option": {
+ "name": "meta_xr_features/hand_tracking",
+ "class_name": "",
+ "type": TYPE_INT,
+ "hint": PROPERTY_HINT_ENUM,
+ "hint_string": "None,Optional,Required",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": HAND_TRACKING_NONE_VALUE,
+ "update_visibility": false,
+}
+
+const HAND_TRACKING_FREQUENCY_OPTION = {
+ "option": {
+ "name": "meta_xr_features/hand_tracking_frequency",
+ "class_name": "",
+ "type": TYPE_INT,
+ "hint": PROPERTY_HINT_ENUM,
+ "hint_string": "Low,High",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": HAND_TRACKING_FREQUENCY_LOW_VALUE,
+ "update_visibility": false,
+}
+
+const PASSTHROUGH_OPTION = {
+ "option": {
+ "name": "meta_xr_features/passthrough",
+ "class_name": "",
+ "type": TYPE_INT,
+ "hint": PROPERTY_HINT_ENUM,
+ "hint_string": "None,Optional,Required",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": PASSTHROUGH_NONE_VALUE,
+ "update_visibility": false,
+}
+
+const USE_ANCHOR_API_OPTION = {
+ "option": {
+ "name": "meta_xr_features/use_anchor_api",
+ "class_name": "",
+ "type": TYPE_BOOL,
+ "hint": PROPERTY_HINT_NONE,
+ "hint_string": "",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": false,
+ "update_visibility": false,
+}
+
+const SUPPORT_QUEST_1_OPTION = {
+ "option": {
+ "name": "meta_xr_features/quest_1_support",
+ "class_name": "",
+ "type": TYPE_BOOL,
+ "hint": PROPERTY_HINT_NONE,
+ "hint_string": "",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": false,
+ "update_visibility": false,
+}
+
+const SUPPORT_QUEST_2_OPTION = {
+ "option": {
+ "name": "meta_xr_features/quest_2_support",
+ "class_name": "",
+ "type": TYPE_BOOL,
+ "hint": PROPERTY_HINT_NONE,
+ "hint_string": "",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": true,
+ "update_visibility": false,
+}
+
+const SUPPORT_QUEST_3_OPTION = {
+ "option": {
+ "name": "meta_xr_features/quest_3_support",
+ "class_name": "",
+ "type": TYPE_BOOL,
+ "hint": PROPERTY_HINT_NONE,
+ "hint_string": "",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": true,
+ "update_visibility": false,
+}
+
+const SUPPORT_QUEST_PRO_OPTION = {
+ "option": {
+ "name": "meta_xr_features/quest_pro_support",
+ "class_name": "",
+ "type": TYPE_BOOL,
+ "hint": PROPERTY_HINT_NONE,
+ "hint_string": "",
+ "usage": PROPERTY_USAGE_DEFAULT,
+ },
+ "default_value": true,
+ "update_visibility": false,
+}
+
+func _get_export_options(platform) -> Array[Dictionary]:
+ if not _supports_platform(platform):
+ return []
+
+ return [
+ _get_vendor_toggle_option(),
+ EYE_TRACKING_OPTION,
+ HAND_TRACKING_OPTION,
+ HAND_TRACKING_FREQUENCY_OPTION,
+ PASSTHROUGH_OPTION,
+ USE_ANCHOR_API_OPTION,
+ SUPPORT_QUEST_1_OPTION,
+ SUPPORT_QUEST_2_OPTION,
+ SUPPORT_QUEST_3_OPTION,
+ SUPPORT_QUEST_PRO_OPTION,
+ ]
+
+
+func _get_supported_devices() -> PackedStringArray:
+ var supported_devices = PackedStringArray()
+
+ if _get_bool_option("meta_xr_features/quest_1_support"):
+ supported_devices.append("quest")
+ if _get_bool_option("meta_xr_features/quest_2_support"):
+ supported_devices.append("quest2")
+ if _get_bool_option("meta_xr_features/quest_3_support"):
+ supported_devices.append("quest3")
+ if _get_bool_option("meta_xr_features/quest_pro_support"):
+ supported_devices.append("questpro")
+
+ return supported_devices
+
+
+func _is_eye_tracking_enabled() -> bool:
+ var eye_tracking_project_setting_enabled = ProjectSettings.get_setting_with_override("xr/openxr/extensions/eye_gaze_interaction")
+ if not(eye_tracking_project_setting_enabled):
+ return false
+
+ var eye_tracking_option_value = _get_int_option("meta_xr_features/eye_tracking", EYE_TRACKING_NONE_VALUE)
+ return eye_tracking_option_value > EYE_TRACKING_NONE_VALUE
+
+
+func _get_export_features(platform, debug) -> PackedStringArray:
+ var features = PackedStringArray()
+
+ if not _supports_platform(platform):
+ return features
+
+ # Add the eye tracking feature if necessary
+ if _is_eye_tracking_enabled():
+ features.append(globals.EYE_GAZE_INTERACTION_FEATURE)
+
+ return features
+
+
+func _get_export_option_warning(platform, option) -> String:
+ if not _supports_platform(platform):
+ return ""
+
+ var warning = ""
+ var openxr_enabled = _is_openxr_enabled()
+ match (option):
+ "meta_xr_features/eye_tracking":
+ var eye_tracking_project_setting_enabled = ProjectSettings.get_setting_with_override("xr/openxr/extensions/eye_gaze_interaction")
+ var eye_tracking_option_value = _get_int_option("meta_xr_features/eye_tracking", EYE_TRACKING_NONE_VALUE)
+ if eye_tracking_option_value > EYE_TRACKING_NONE_VALUE and not(eye_tracking_project_setting_enabled):
+ warning = "\"Eye Tracking\" project setting must be enabled!\n"
+
+ "meta_xr_features/hand_tracking":
+ if not(openxr_enabled) and _get_int_option(option, HAND_TRACKING_NONE_VALUE) > HAND_TRACKING_NONE_VALUE:
+ warning = "\"Hand Tracking\" requires \"XR Mode\" to be \"OpenXR\".\n"
+
+ "meta_xr_features/passthrough":
+ if not(openxr_enabled) and _get_int_option(option, PASSTHROUGH_NONE_VALUE) > PASSTHROUGH_NONE_VALUE:
+ warning = "\"Passthrough\" requires \"XR Mode\" to be \"OpenXR\".\n"
+
+ "meta_xr_features/use_anchor_api":
+ if not(openxr_enabled) and _get_bool_option(option):
+ warning = "\"Use anchor API\" is only valid when \"XR Mode\" is \"OpenXR\"."
+
+ _:
+ warning = super._get_export_option_warning(platform, option)
+
+ return warning
+
+
+func _get_android_manifest_element_contents(platform, debug) -> String:
+ if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
+ return ""
+
+ var contents = ""
+
+ # Check for eye tracking
+ if _is_eye_tracking_enabled():
+ contents += " \n"
+
+ var eye_tracking_value = _get_int_option("meta_xr_features/eye_tracking", EYE_TRACKING_NONE_VALUE)
+ if eye_tracking_value == EYE_TRACKING_OPTIONAL_VALUE:
+ contents += " \n"
+ elif eye_tracking_value == EYE_TRACKING_REQUIRED_VALUE:
+ contents += " \n"
+
+
+ # Check for hand tracking
+ var hand_tracking_value = _get_int_option("meta_xr_features/hand_tracking", HAND_TRACKING_NONE_VALUE)
+ if hand_tracking_value > HAND_TRACKING_NONE_VALUE:
+ contents += " \n"
+ if hand_tracking_value == HAND_TRACKING_OPTIONAL_VALUE:
+ contents += " \n"
+ elif hand_tracking_value == HAND_TRACKING_REQUIRED_VALUE:
+ contents += " \n"
+
+ # Check for passthrough
+ var passthrough_mode = _get_int_option("meta_xr_features/passthrough", PASSTHROUGH_NONE_VALUE)
+ if passthrough_mode == PASSTHROUGH_OPTIONAL_VALUE:
+ contents += " \n"
+ elif passthrough_mode == PASSTHROUGH_REQUIRED_VALUE:
+ contents += " \n"
+
+ # Check for anchor api
+ var use_anchor_api = _get_bool_option("meta_xr_features/use_anchor_api")
+ if use_anchor_api:
+ contents += " \n"
+
+ return contents
+
+
+func _get_android_manifest_application_element_contents(platform, debug) -> String:
+ if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
+ return ""
+
+ var contents = ""
+
+ var supported_devices = "|".join(_get_supported_devices())
+ contents += " \n" % supported_devices
+
+ var hand_tracking_enabled = _get_int_option("meta_xr_features/hand_tracking", HAND_TRACKING_NONE_VALUE) > HAND_TRACKING_NONE_VALUE
+ if hand_tracking_enabled:
+ var hand_tracking_frequency = _get_int_option("meta_xr_features/hand_tracking_frequency", HAND_TRACKING_FREQUENCY_LOW_VALUE)
+ var hand_tracking_frequency_label = "LOW" if hand_tracking_frequency == HAND_TRACKING_FREQUENCY_LOW_VALUE else "HIGH"
+ contents += " \n" % hand_tracking_frequency_label
+ contents += " \n"
+
+ return contents
+
+func _get_android_manifest_activity_element_contents(platform, debug) -> String:
+ if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
+ return ""
+
+ var contents = """
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ """
+
+ return contents
diff --git a/addons/godotopenxrvendors/meta/plugin.gdextension b/addons/godotopenxrvendors/meta/plugin.gdextension
new file mode 100644
index 0000000..12dce86
--- /dev/null
+++ b/addons/godotopenxrvendors/meta/plugin.gdextension
@@ -0,0 +1,20 @@
+[configuration]
+
+entry_symbol = "plugin_library_init"
+compatibility_minimum = "4.2"
+android_aar_plugin = true
+
+[libraries]
+
+android.debug.arm64 = "res://addons/godotopenxrvendors/meta/.bin/debug/arm64-v8a/libgodotopenxrmeta.so"
+android.release.arm64 = "res://addons/godotopenxrvendors/meta/.bin/release/arm64-v8a/libgodotopenxrmeta.so"
+macos.debug = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_debug.framework"
+macos.release = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.macos.template_release.framework"
+windows.debug.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_debug.x86_64.dll"
+windows.release.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.windows.template_release.x86_64.dll"
+linux.debug.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.x86_64.so"
+linux.release.x86_64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.x86_64.so"
+linux.debug.arm64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.arm64.so"
+linux.release.arm64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.arm64.so"
+linux.debug.rv64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_debug.rv64.so"
+linux.release.rv64 = "res://addons/godotopenxrvendors/meta/.bin/libgodotopenxrmeta.linux.template_release.rv64.so"
diff --git a/addons/godotopenxrvendors/pico/.bin/debug/godotopenxrpico-debug.aar b/addons/godotopenxrvendors/pico/.bin/debug/godotopenxrpico-debug.aar
new file mode 100644
index 0000000..16f2b0c
Binary files /dev/null and b/addons/godotopenxrvendors/pico/.bin/debug/godotopenxrpico-debug.aar differ
diff --git a/android/plugins/godotopenxrpico/godotopenxrpico-release.aar b/addons/godotopenxrvendors/pico/.bin/release/godotopenxrpico-release.aar
similarity index 99%
rename from android/plugins/godotopenxrpico/godotopenxrpico-release.aar
rename to addons/godotopenxrvendors/pico/.bin/release/godotopenxrpico-release.aar
index 309d11f..2b16611 100644
Binary files a/android/plugins/godotopenxrpico/godotopenxrpico-release.aar and b/addons/godotopenxrvendors/pico/.bin/release/godotopenxrpico-release.aar differ
diff --git a/android/plugins/godotopenxrpico/LICENSE.md b/addons/godotopenxrvendors/pico/LICENSE.md
similarity index 100%
rename from android/plugins/godotopenxrpico/LICENSE.md
rename to addons/godotopenxrvendors/pico/LICENSE.md
diff --git a/addons/godotopenxrvendors/pico/godot_openxr_pico_editor_export_plugin.gd b/addons/godotopenxrvendors/pico/godot_openxr_pico_editor_export_plugin.gd
new file mode 100644
index 0000000..fb13ce9
--- /dev/null
+++ b/addons/godotopenxrvendors/pico/godot_openxr_pico_editor_export_plugin.gd
@@ -0,0 +1,20 @@
+@tool
+extends "../godot_openxr_export_plugin.gd".GodotOpenXREditorExportPlugin
+
+
+func _get_android_manifest_activity_element_contents(platform, debug) -> String:
+ if not _supports_platform(platform) or not(_is_vendor_plugin_enabled()):
+ return ""
+
+ var contents = """
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ \n
+ """
+
+ return contents
diff --git a/addons/godotopenxrvendors/plugin.cfg b/addons/godotopenxrvendors/plugin.cfg
new file mode 100644
index 0000000..ab71b6a
--- /dev/null
+++ b/addons/godotopenxrvendors/plugin.cfg
@@ -0,0 +1,7 @@
+[plugin]
+
+name="GodotOpenXRVendors"
+description="Godot OpenXR Vendors plugin"
+author="https://github.com/GodotVR/godot_openxr_vendors/blob/master/CONTRIBUTORS.md"
+version="2.0.2-stable"
+script="godot_openxr_export_plugin.gd"
diff --git a/android/.build_version b/android/.build_version
index ca5fccb..32d2ab7 100644
--- a/android/.build_version
+++ b/android/.build_version
@@ -1 +1 @@
-4.1.3.stable
+4.2.stable
diff --git a/android/plugins/GodotOpenXRKHR.gdap b/android/plugins/GodotOpenXRKHR.gdap
deleted file mode 100644
index d15effb..0000000
--- a/android/plugins/GodotOpenXRKHR.gdap
+++ /dev/null
@@ -1,7 +0,0 @@
-[config]
-
-name="GodotOpenXRKHR"
-binary_type="local"
-binary="godotopenxrkhr/godotopenxrkhr-release.aar"
-
-[dependencies]
diff --git a/android/plugins/GodotOpenXRLoaders_CHANGES.md b/android/plugins/GodotOpenXRLoaders_CHANGES.md
deleted file mode 100644
index cb5d87b..0000000
--- a/android/plugins/GodotOpenXRLoaders_CHANGES.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# Change history for the Godot OpenXR loaders asset
-
-## 1.1.0
-- Update Meta OpenXR loader to version 54
-- Update PICO OpenXR loader to version 2.2.0
-- Bump dependencies versions to match the latest Godot 4.x stable version (v4.0.3)
-
-## 1.0.0
-- First version
-- Added support for Meta Quest loader
-- Added support for Pico loader
-- Added support for Khronos loader (Magic Leap 2, HTC, etc.)
-- Added support for Lynx loader
-- Add logic to automatically publish the Godot OpenXR loaders libraries to mavencentral on release
diff --git a/android/plugins/GodotOpenXRLynx.gdap b/android/plugins/GodotOpenXRLynx.gdap
deleted file mode 100644
index c674fdf..0000000
--- a/android/plugins/GodotOpenXRLynx.gdap
+++ /dev/null
@@ -1,7 +0,0 @@
-[config]
-
-name="GodotOpenXRLynx"
-binary_type="local"
-binary="godotopenxrlynx/godotopenxrlynx-release.aar"
-
-[dependencies]
diff --git a/android/plugins/GodotOpenXRMeta.gdap b/android/plugins/GodotOpenXRMeta.gdap
deleted file mode 100644
index 2549f8d..0000000
--- a/android/plugins/GodotOpenXRMeta.gdap
+++ /dev/null
@@ -1,7 +0,0 @@
-[config]
-
-name="GodotOpenXRMeta"
-binary_type="local"
-binary="godotopenxrmeta/godotopenxrmeta-debug.aar"
-
-[dependencies]
diff --git a/android/plugins/GodotOpenXRPico.gdap b/android/plugins/GodotOpenXRPico.gdap
deleted file mode 100644
index 4fb7033..0000000
--- a/android/plugins/GodotOpenXRPico.gdap
+++ /dev/null
@@ -1,7 +0,0 @@
-[config]
-
-name="GodotOpenXRPico"
-binary_type="local"
-binary="godotopenxrpico/godotopenxrpico-release.aar"
-
-[dependencies]
diff --git a/android/plugins/godotopenxrmeta/godotopenxrmeta-debug.aar b/android/plugins/godotopenxrmeta/godotopenxrmeta-debug.aar
deleted file mode 100644
index b4550f9..0000000
Binary files a/android/plugins/godotopenxrmeta/godotopenxrmeta-debug.aar and /dev/null differ
diff --git a/android/plugins/godotopenxrmeta/godotopenxrmeta-release.aar b/android/plugins/godotopenxrmeta/godotopenxrmeta-release.aar
deleted file mode 100644
index d592ff8..0000000
Binary files a/android/plugins/godotopenxrmeta/godotopenxrmeta-release.aar and /dev/null differ
diff --git a/assets/design.afdesign b/assets/design.afdesign
index 4240538..507d4a3 100644
--- a/assets/design.afdesign
+++ b/assets/design.afdesign
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2912c7c12f5c81475ac3e28ed67e8a7828a947418c5d5a2f892acba91ca60e3a
-size 4101566
+oid sha256:3782adb5391dac4872890ccd7c7820c6c4eb20d56031598c1f3c4d978438a914
+size 12684397
diff --git a/assets/immersive_home/button.obj.import b/assets/immersive_home/button.obj.import
index b073cd4..1ad77e6 100644
--- a/assets/immersive_home/button.obj.import
+++ b/assets/immersive_home/button.obj.import
@@ -19,3 +19,4 @@ generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true
+force_disable_mesh_compression=false
diff --git a/assets/immersive_home/immersive_home.obj.import b/assets/immersive_home/immersive_home.obj.import
index 5639338..0d35b31 100644
--- a/assets/immersive_home/immersive_home.obj.import
+++ b/assets/immersive_home/immersive_home.obj.import
@@ -19,3 +19,4 @@ generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true
+force_disable_mesh_compression=false
diff --git a/assets/immersive_home_panels/immersive_home_panels.obj.import b/assets/immersive_home_panels/immersive_home_panels.obj.import
index 76abff1..b54a622 100644
--- a/assets/immersive_home_panels/immersive_home_panels.obj.import
+++ b/assets/immersive_home_panels/immersive_home_panels.obj.import
@@ -19,3 +19,4 @@ generate_tangents=true
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
optimize_mesh=true
+force_disable_mesh_compression=false
diff --git a/assets/living_room/scene.gltf.import b/assets/living_room/scene.gltf.import
index b5af9a4..65d76dc 100644
--- a/assets/living_room/scene.gltf.import
+++ b/assets/living_room/scene.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/assets/logo-background.png.import b/assets/logo-background.png.import
index 6fb0474..f34e866 100644
--- a/assets/logo-background.png.import
+++ b/assets/logo-background.png.import
@@ -3,25 +3,27 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://q4va5chi4k7f"
-path="res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.ctex"
+path.s3tc="res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.s3tc.ctex"
+path.etc2="res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.etc2.ctex"
metadata={
-"vram_texture": false
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
}
[deps]
source_file="res://assets/logo-background.png"
-dest_files=["res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.ctex"]
+dest_files=["res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.s3tc.ctex", "res://.godot/imported/logo-background.png-3d5691e6c32be592c284587b43087aae.etc2.ctex"]
[params]
-compress/mode=0
+compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
-mipmaps/generate=false
+mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -31,4 +33,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
-detect_3d/compress_to=1
+detect_3d/compress_to=0
diff --git a/assets/materials/sky_passthrough.material b/assets/materials/sky_passthrough.material
index 8e73733..f846ea8 100644
--- a/assets/materials/sky_passthrough.material
+++ b/assets/materials/sky_passthrough.material
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:97ebf636b842f381a15cecbfbbf8128e5ffb7171b2b3dd24e6bef7ab036a67a7
+oid sha256:9bac0d498144e58cd467f8db75da57f71b519523ac08799d2e3d75b22ba2401f
size 361
diff --git a/assets/models/basketball/scene.gltf.import b/assets/models/basketball/scene.gltf.import
index dbdd771..d592a3b 100644
--- a/assets/models/basketball/scene.gltf.import
+++ b/assets/models/basketball/scene.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/assets/models/hands_steam/left_hand.glb.import b/assets/models/hands_steam/left_hand.glb.import
index 9e2f3eb..fb6879f 100644
--- a/assets/models/hands_steam/left_hand.glb.import
+++ b/assets/models/hands_steam/left_hand.glb.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/assets/models/hands_steam/left_hand_file3.jpg b/assets/models/hands_steam/left_hand_file3.jpg
new file mode 100644
index 0000000..376b38a
--- /dev/null
+++ b/assets/models/hands_steam/left_hand_file3.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a424f719450ca9bce29ba28e90712dab4e40b56e67642150379b5359475eb868
+size 9524998
diff --git a/assets/models/hands_steam/left_hand_file3.jpg.import b/assets/models/hands_steam/left_hand_file3.jpg.import
new file mode 100644
index 0000000..bfb4820
--- /dev/null
+++ b/assets/models/hands_steam/left_hand_file3.jpg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cru4vxblikgyo"
+path.s3tc="res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.s3tc.ctex"
+path.etc2="res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+generator_parameters={}
+
+[deps]
+
+source_file="res://assets/models/hands_steam/left_hand_file3.jpg"
+dest_files=["res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.s3tc.ctex", "res://.godot/imported/left_hand_file3.jpg-86182121cf5816737d977d66b2e93a96.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/hands_steam/openxr_glove_left_model_slim.glb.import b/assets/models/hands_steam/openxr_glove_left_model_slim.glb.import
index 8b87f9b..ebb8b4d 100644
--- a/assets/models/hands_steam/openxr_glove_left_model_slim.glb.import
+++ b/assets/models/hands_steam/openxr_glove_left_model_slim.glb.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg b/assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg
new file mode 100644
index 0000000..376b38a
--- /dev/null
+++ b/assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a424f719450ca9bce29ba28e90712dab4e40b56e67642150379b5359475eb868
+size 9524998
diff --git a/assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg.import b/assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg.import
new file mode 100644
index 0000000..8f94985
--- /dev/null
+++ b/assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://bhm4cfuyhv74t"
+path.s3tc="res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.s3tc.ctex"
+path.etc2="res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+generator_parameters={}
+
+[deps]
+
+source_file="res://assets/models/hands_steam/openxr_glove_left_model_slim_file3.jpg"
+dest_files=["res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.s3tc.ctex", "res://.godot/imported/openxr_glove_left_model_slim_file3.jpg-f1f34cc456e3656d9e67e63c12ebfe0d.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/hands_steam/right_hand.glb.import b/assets/models/hands_steam/right_hand.glb.import
index 806a76c..7e5d99c 100644
--- a/assets/models/hands_steam/right_hand.glb.import
+++ b/assets/models/hands_steam/right_hand.glb.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/assets/models/hands_steam/right_hand_file3.jpg b/assets/models/hands_steam/right_hand_file3.jpg
new file mode 100644
index 0000000..376b38a
--- /dev/null
+++ b/assets/models/hands_steam/right_hand_file3.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a424f719450ca9bce29ba28e90712dab4e40b56e67642150379b5359475eb868
+size 9524998
diff --git a/assets/models/hands_steam/right_hand_file3.jpg.import b/assets/models/hands_steam/right_hand_file3.jpg.import
new file mode 100644
index 0000000..762c885
--- /dev/null
+++ b/assets/models/hands_steam/right_hand_file3.jpg.import
@@ -0,0 +1,37 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ddau0sqisjbpr"
+path.s3tc="res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.s3tc.ctex"
+path.etc2="res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+generator_parameters={}
+
+[deps]
+
+source_file="res://assets/models/hands_steam/right_hand_file3.jpg"
+dest_files=["res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.s3tc.ctex", "res://.godot/imported/right_hand_file3.jpg-cc07d116bd668be676069a9a7edfd195.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/license.txt b/assets/models/sky_dome/license.txt
new file mode 100644
index 0000000..f7b0482
--- /dev/null
+++ b/assets/models/sky_dome/license.txt
@@ -0,0 +1,11 @@
+Model Information:
+* title: Sky Dome
+* source: https://sketchfab.com/3d-models/sky-dome-95b2fd979c3f4a84b707a43772f7b2cd
+* author: exiS7-Gs (https://sketchfab.com/exiS7-Gs)
+
+Model License:
+* license type: CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
+* requirements: Author must be credited. Commercial use is allowed.
+
+If you use this 3D model in your project be sure to copy paste this credit wherever you share it:
+This work is based on "Sky Dome" (https://sketchfab.com/3d-models/sky-dome-95b2fd979c3f4a84b707a43772f7b2cd) by exiS7-Gs (https://sketchfab.com/exiS7-Gs) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)
\ No newline at end of file
diff --git a/assets/models/sky_dome/scene.bin b/assets/models/sky_dome/scene.bin
new file mode 100644
index 0000000..0c571b8
--- /dev/null
+++ b/assets/models/sky_dome/scene.bin
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c332f83230ebc5c8e00c178adc18aaf08ba06e296fa14e944130fa3028aa08d4
+size 583360
diff --git a/assets/models/sky_dome/scene.gltf b/assets/models/sky_dome/scene.gltf
new file mode 100644
index 0000000..70d0f14
--- /dev/null
+++ b/assets/models/sky_dome/scene.gltf
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a617cfbfe1b13a6b7df2e80444ba517d9846c51770fabdce04d9be06d576462f
+size 24161
diff --git a/assets/models/sky_dome/scene.gltf.import b/assets/models/sky_dome/scene.gltf.import
new file mode 100644
index 0000000..6efbee2
--- /dev/null
+++ b/assets/models/sky_dome/scene.gltf.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="scene"
+importer_version=1
+type="PackedScene"
+uid="uid://bhr3t3segpu6l"
+path="res://.godot/imported/scene.gltf-740422c37e4e437959a4bcd749abf05a.scn"
+
+[deps]
+
+source_file="res://assets/models/sky_dome/scene.gltf"
+dest_files=["res://.godot/imported/scene.gltf-740422c37e4e437959a4bcd749abf05a.scn"]
+
+[params]
+
+nodes/root_type=""
+nodes/root_name=""
+nodes/apply_root_scale=true
+nodes/root_scale=1.0
+meshes/ensure_tangents=true
+meshes/generate_lods=true
+meshes/create_shadow_meshes=true
+meshes/light_baking=1
+meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
+skins/use_named_skins=true
+animation/import=true
+animation/fps=30
+animation/trimming=false
+animation/remove_immutable_tracks=true
+import_script/path=""
+_subresources={}
+gltf/naming_version=1
+gltf/embedded_image_handling=1
diff --git a/assets/models/sky_dome/textures/.001_baseColor.jpeg b/assets/models/sky_dome/textures/.001_baseColor.jpeg
new file mode 100644
index 0000000..2be4f16
--- /dev/null
+++ b/assets/models/sky_dome/textures/.001_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce48599538a8694a093a9d88e1c0533529213e7dc1fac262f38e4a15e4901e62
+size 3283817
diff --git a/assets/models/sky_dome/textures/.001_baseColor.jpeg.import b/assets/models/sky_dome/textures/.001_baseColor.jpeg.import
new file mode 100644
index 0000000..e727951
--- /dev/null
+++ b/assets/models/sky_dome/textures/.001_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://b4buy0btq1f1a"
+path.s3tc="res://.godot/imported/.001_baseColor.jpeg-86bde1622edda11a6b29a5cb598813f9.s3tc.ctex"
+path.etc2="res://.godot/imported/.001_baseColor.jpeg-86bde1622edda11a6b29a5cb598813f9.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.001_baseColor.jpeg"
+dest_files=["res://.godot/imported/.001_baseColor.jpeg-86bde1622edda11a6b29a5cb598813f9.s3tc.ctex", "res://.godot/imported/.001_baseColor.jpeg-86bde1622edda11a6b29a5cb598813f9.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.002_baseColor.jpeg b/assets/models/sky_dome/textures/.002_baseColor.jpeg
new file mode 100644
index 0000000..7a0da20
--- /dev/null
+++ b/assets/models/sky_dome/textures/.002_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1daf7f0a3ecf4d651e16c050942abe93d15fa9a31b1c10f97384f8a246771169
+size 3434069
diff --git a/assets/models/sky_dome/textures/.002_baseColor.jpeg.import b/assets/models/sky_dome/textures/.002_baseColor.jpeg.import
new file mode 100644
index 0000000..48fd806
--- /dev/null
+++ b/assets/models/sky_dome/textures/.002_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c66aheqrbg2rr"
+path.s3tc="res://.godot/imported/.002_baseColor.jpeg-a356be7f8b9e774110d367bea996a20b.s3tc.ctex"
+path.etc2="res://.godot/imported/.002_baseColor.jpeg-a356be7f8b9e774110d367bea996a20b.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.002_baseColor.jpeg"
+dest_files=["res://.godot/imported/.002_baseColor.jpeg-a356be7f8b9e774110d367bea996a20b.s3tc.ctex", "res://.godot/imported/.002_baseColor.jpeg-a356be7f8b9e774110d367bea996a20b.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.004_baseColor.jpeg b/assets/models/sky_dome/textures/.004_baseColor.jpeg
new file mode 100644
index 0000000..ba27977
--- /dev/null
+++ b/assets/models/sky_dome/textures/.004_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32d75b77c4def3ed697e337d0d847b729782d1c7adc170356783cbed8ed15e08
+size 3186667
diff --git a/assets/models/sky_dome/textures/.004_baseColor.jpeg.import b/assets/models/sky_dome/textures/.004_baseColor.jpeg.import
new file mode 100644
index 0000000..658120b
--- /dev/null
+++ b/assets/models/sky_dome/textures/.004_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://d3280ylwokac1"
+path.s3tc="res://.godot/imported/.004_baseColor.jpeg-e5a1f592dd1df13f291948e9da36a195.s3tc.ctex"
+path.etc2="res://.godot/imported/.004_baseColor.jpeg-e5a1f592dd1df13f291948e9da36a195.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.004_baseColor.jpeg"
+dest_files=["res://.godot/imported/.004_baseColor.jpeg-e5a1f592dd1df13f291948e9da36a195.s3tc.ctex", "res://.godot/imported/.004_baseColor.jpeg-e5a1f592dd1df13f291948e9da36a195.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.005_baseColor.jpeg b/assets/models/sky_dome/textures/.005_baseColor.jpeg
new file mode 100644
index 0000000..217afb5
--- /dev/null
+++ b/assets/models/sky_dome/textures/.005_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b43240e1867c5883b0facfec3ab5739000dca2fb59a7c5dc13cfb22eb59f34c1
+size 3127854
diff --git a/assets/models/sky_dome/textures/.005_baseColor.jpeg.import b/assets/models/sky_dome/textures/.005_baseColor.jpeg.import
new file mode 100644
index 0000000..ee4e97a
--- /dev/null
+++ b/assets/models/sky_dome/textures/.005_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://c60yxe3axi2fc"
+path.s3tc="res://.godot/imported/.005_baseColor.jpeg-341822702e23877f91ada05077c865e1.s3tc.ctex"
+path.etc2="res://.godot/imported/.005_baseColor.jpeg-341822702e23877f91ada05077c865e1.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.005_baseColor.jpeg"
+dest_files=["res://.godot/imported/.005_baseColor.jpeg-341822702e23877f91ada05077c865e1.s3tc.ctex", "res://.godot/imported/.005_baseColor.jpeg-341822702e23877f91ada05077c865e1.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.006_baseColor.jpeg b/assets/models/sky_dome/textures/.006_baseColor.jpeg
new file mode 100644
index 0000000..4c8ae1b
--- /dev/null
+++ b/assets/models/sky_dome/textures/.006_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:565ee82a38a0c886a2897e79cafbcb1b993e10277fdeb351226d8513fa80b591
+size 3018822
diff --git a/assets/models/sky_dome/textures/.006_baseColor.jpeg.import b/assets/models/sky_dome/textures/.006_baseColor.jpeg.import
new file mode 100644
index 0000000..5b39f3e
--- /dev/null
+++ b/assets/models/sky_dome/textures/.006_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dyuhqeea2hoip"
+path.s3tc="res://.godot/imported/.006_baseColor.jpeg-a60ebfc731dcc5f23604da25f8974021.s3tc.ctex"
+path.etc2="res://.godot/imported/.006_baseColor.jpeg-a60ebfc731dcc5f23604da25f8974021.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.006_baseColor.jpeg"
+dest_files=["res://.godot/imported/.006_baseColor.jpeg-a60ebfc731dcc5f23604da25f8974021.s3tc.ctex", "res://.godot/imported/.006_baseColor.jpeg-a60ebfc731dcc5f23604da25f8974021.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.007_baseColor.jpeg b/assets/models/sky_dome/textures/.007_baseColor.jpeg
new file mode 100644
index 0000000..4126104
--- /dev/null
+++ b/assets/models/sky_dome/textures/.007_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee9b32b243f292b2fe3e971290c4924dec1a0cb45eb1ef8d181d86b3d5984ffe
+size 987655
diff --git a/assets/models/sky_dome/textures/.007_baseColor.jpeg.import b/assets/models/sky_dome/textures/.007_baseColor.jpeg.import
new file mode 100644
index 0000000..f70a04f
--- /dev/null
+++ b/assets/models/sky_dome/textures/.007_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://djlsovtlqk1jk"
+path.bptc="res://.godot/imported/.007_baseColor.jpeg-644e1e15ce3452b6e89b1a903ae8c5ec.bptc.ctex"
+path.astc="res://.godot/imported/.007_baseColor.jpeg-644e1e15ce3452b6e89b1a903ae8c5ec.astc.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.007_baseColor.jpeg"
+dest_files=["res://.godot/imported/.007_baseColor.jpeg-644e1e15ce3452b6e89b1a903ae8c5ec.bptc.ctex", "res://.godot/imported/.007_baseColor.jpeg-644e1e15ce3452b6e89b1a903ae8c5ec.astc.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=true
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.008_baseColor.jpeg b/assets/models/sky_dome/textures/.008_baseColor.jpeg
new file mode 100644
index 0000000..2a6bcb7
--- /dev/null
+++ b/assets/models/sky_dome/textures/.008_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c2a31c2a2fae09d3bb12948766ce2d80ee9a3e9b841c33f5d6a4cee28b22d3c
+size 3339319
diff --git a/assets/models/sky_dome/textures/.008_baseColor.jpeg.import b/assets/models/sky_dome/textures/.008_baseColor.jpeg.import
new file mode 100644
index 0000000..0b024a8
--- /dev/null
+++ b/assets/models/sky_dome/textures/.008_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dusb35tmwrnm2"
+path.s3tc="res://.godot/imported/.008_baseColor.jpeg-270b6ad0873950b636fd20291833d78a.s3tc.ctex"
+path.etc2="res://.godot/imported/.008_baseColor.jpeg-270b6ad0873950b636fd20291833d78a.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.008_baseColor.jpeg"
+dest_files=["res://.godot/imported/.008_baseColor.jpeg-270b6ad0873950b636fd20291833d78a.s3tc.ctex", "res://.godot/imported/.008_baseColor.jpeg-270b6ad0873950b636fd20291833d78a.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/.009_baseColor.jpeg b/assets/models/sky_dome/textures/.009_baseColor.jpeg
new file mode 100644
index 0000000..edb2c78
--- /dev/null
+++ b/assets/models/sky_dome/textures/.009_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea08f0af4e887d3a9d23a2d11acfbdf02c2f7a24f79062899b34322c62f552cb
+size 2769271
diff --git a/assets/models/sky_dome/textures/.009_baseColor.jpeg.import b/assets/models/sky_dome/textures/.009_baseColor.jpeg.import
new file mode 100644
index 0000000..e2ba760
--- /dev/null
+++ b/assets/models/sky_dome/textures/.009_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://dai7igfcqpplj"
+path.s3tc="res://.godot/imported/.009_baseColor.jpeg-2a5c560d7fbcd24c89a8a2ea98462d25.s3tc.ctex"
+path.etc2="res://.godot/imported/.009_baseColor.jpeg-2a5c560d7fbcd24c89a8a2ea98462d25.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/.009_baseColor.jpeg"
+dest_files=["res://.godot/imported/.009_baseColor.jpeg-2a5c560d7fbcd24c89a8a2ea98462d25.s3tc.ctex", "res://.godot/imported/.009_baseColor.jpeg-2a5c560d7fbcd24c89a8a2ea98462d25.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/sky_dome/textures/material_baseColor.jpeg b/assets/models/sky_dome/textures/material_baseColor.jpeg
new file mode 100644
index 0000000..d3e88c4
--- /dev/null
+++ b/assets/models/sky_dome/textures/material_baseColor.jpeg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:26b1bcf20d0e8e9437fc1b58a31f35833b932f52c91ac846aa9a648f80232057
+size 3324600
diff --git a/assets/models/sky_dome/textures/material_baseColor.jpeg.import b/assets/models/sky_dome/textures/material_baseColor.jpeg.import
new file mode 100644
index 0000000..c87433b
--- /dev/null
+++ b/assets/models/sky_dome/textures/material_baseColor.jpeg.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://40ovoh488v6k"
+path.s3tc="res://.godot/imported/material_baseColor.jpeg-1b598c2edbe3ff8c2c63ec63e33a07da.s3tc.ctex"
+path.etc2="res://.godot/imported/material_baseColor.jpeg-1b598c2edbe3ff8c2c63ec63e33a07da.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://assets/models/sky_dome/textures/material_baseColor.jpeg"
+dest_files=["res://.godot/imported/material_baseColor.jpeg-1b598c2edbe3ff8c2c63ec63e33a07da.s3tc.ctex", "res://.godot/imported/material_baseColor.jpeg-1b598c2edbe3ff8c2c63ec63e33a07da.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/normal_map_invert_y=false
+process/hdr_as_srgb=false
+process/hdr_clamp_exposure=false
+process/size_limit=0
+detect_3d/compress_to=0
diff --git a/assets/models/trash_bin/trash_bin.gltf.import b/assets/models/trash_bin/trash_bin.gltf.import
index 3658632..845dc53 100644
--- a/assets/models/trash_bin/trash_bin.gltf.import
+++ b/assets/models/trash_bin/trash_bin.gltf.import
@@ -22,6 +22,7 @@ meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
+meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
@@ -29,4 +30,5 @@ animation/trimming=false
animation/remove_immutable_tracks=true
import_script/path=""
_subresources={}
+gltf/naming_version=0
gltf/embedded_image_handling=1
diff --git a/content/main.gd b/content/main.gd
index 963a577..4f5bc04 100644
--- a/content/main.gd
+++ b/content/main.gd
@@ -12,7 +12,7 @@ var sky_passthrough = preload("res://assets/materials/sky_passthrough.material")
func _ready():
# In case we're running on the headset, use the passthrough sky
if OS.get_name() == "Android":
- OS.request_permissions()
+ # OS.request_permissions()
environment.environment.sky.set_material(sky_passthrough)
house.visible = false
else:
diff --git a/content/main.tscn b/content/main.tscn
index e7035a0..b12959a 100644
--- a/content/main.tscn
+++ b/content/main.tscn
@@ -36,7 +36,8 @@ script = ExtResource("1_uvrd4")
[node name="XROrigin3D" type="XROrigin3D" parent="."]
[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"]
-transform = Transform3D(1, 1.8976e-10, 4.07454e-10, 6.76872e-11, 1, 2.08738e-08, -5.82077e-11, 1.04592e-11, 1, 0.0356618, 0.71033, 0.00564247)
+transform = Transform3D(1, 1.8976e-10, 4.07454e-10, 6.76872e-11, 1, 2.08734e-08, -5.82077e-11, 1.09139e-11, 1, 0.0356618, 0.71033, 0.00564247)
+cull_mask = 524287
current = true
[node name="XRControllerLeft" parent="XROrigin3D" instance=ExtResource("2_2lraw")]
diff --git a/content/main_golf.tscn b/content/main_golf.tscn
deleted file mode 100644
index 89d8588..0000000
--- a/content/main_golf.tscn
+++ /dev/null
@@ -1,129 +0,0 @@
-[gd_scene load_steps=18 format=3 uid="uid://fap7m74qctpl"]
-
-[ext_resource type="Script" path="res://content/main.gd" id="1_d7nko"]
-[ext_resource type="PackedScene" uid="uid://c3kdssrmv84kv" path="res://content/ui/menu/menu.tscn" id="2_1ns4p"]
-[ext_resource type="Script" path="res://content/raycast.gd" id="3_raorn"]
-[ext_resource type="PackedScene" uid="uid://clc5dre31iskm" path="res://addons/godot-xr-tools/xr/start_xr.tscn" id="4_6x466"]
-[ext_resource type="Material" uid="uid://bf5ina366dwm6" path="res://assets/materials/sky.material" id="5_o7oeh"]
-[ext_resource type="PackedScene" uid="uid://ctltchlf2j2r4" path="res://addons/xr-simulator/XRSimulator.tscn" id="6_yj6uv"]
-
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_m58yb"]
-ao_enabled = true
-
-[sub_resource type="BoxMesh" id="BoxMesh_ir3co"]
-material = SubResource("StandardMaterial3D_m58yb")
-size = Vector3(0.01, 0.01, 0.01)
-
-[sub_resource type="Sky" id="Sky_vhymk"]
-sky_material = ExtResource("5_o7oeh")
-
-[sub_resource type="Environment" id="Environment_7ghp0"]
-background_mode = 2
-background_color = Color(0.466667, 0.47451, 0.462745, 0)
-sky = SubResource("Sky_vhymk")
-ambient_light_color = Color(1, 1, 1, 1)
-ambient_light_sky_contribution = 0.72
-
-[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_5qi0p"]
-rough = true
-
-[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_i18hv"]
-
-[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_t7p2m"]
-rough = true
-
-[sub_resource type="SphereShape3D" id="SphereShape3D_wckr8"]
-radius = 0.1
-
-[sub_resource type="SphereMesh" id="SphereMesh_5b0e3"]
-radius = 0.1
-height = 0.2
-
-[sub_resource type="BoxMesh" id="BoxMesh_4w3j6"]
-size = Vector3(0.02, 1, 0.02)
-
-[sub_resource type="BoxShape3D" id="BoxShape3D_huggw"]
-size = Vector3(0.02, 1, 0.02)
-
-[node name="Main" type="Node3D"]
-transform = Transform3D(1, -0.000296142, 0.000270963, 0.000296143, 1, -4.61078e-06, -0.000270962, 4.67014e-06, 1, 0, 0, 0)
-script = ExtResource("1_d7nko")
-
-[node name="XROrigin3D" type="XROrigin3D" parent="."]
-
-[node name="XRCamera3D" type="XRCamera3D" parent="XROrigin3D"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.798091, 0.311748)
-
-[node name="XRControllerLeft" type="XRController3D" parent="XROrigin3D"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.469893, 0.597213, -0.251112)
-tracker = &"left_hand"
-pose = &"aim"
-
-[node name="MeshInstance3D" type="MeshInstance3D" parent="XROrigin3D/XRControllerLeft"]
-mesh = SubResource("BoxMesh_ir3co")
-
-[node name="Menu" parent="XROrigin3D/XRControllerLeft" instance=ExtResource("2_1ns4p")]
-transform = Transform3D(-4.37114e-08, 0, -1, -0.707107, 0.707107, 3.09086e-08, 0.707107, 0.707107, -3.09086e-08, 0.183517, 0, -0.0534939)
-
-[node name="XRControllerRight" type="XRController3D" parent="XROrigin3D"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.488349, 0.559219, -0.2988)
-tracker = &"right_hand"
-pose = &"aim"
-
-[node name="MeshInstance3D" type="MeshInstance3D" parent="XROrigin3D/XRControllerRight"]
-mesh = SubResource("BoxMesh_ir3co")
-
-[node name="Raycast" type="Node3D" parent="XROrigin3D/XRControllerRight" node_paths=PackedStringArray("ray")]
-script = ExtResource("3_raorn")
-ray = NodePath("RayCast3D")
-
-[node name="RayCast3D" type="RayCast3D" parent="XROrigin3D/XRControllerRight/Raycast"]
-transform = Transform3D(-2.58078e-11, 4.3714e-08, 1, 1, -4.37117e-08, 9.27469e-12, 4.37112e-08, 1, -4.3714e-08, 0, 0, 0)
-target_position = Vector3(0, -5, 0)
-
-[node name="RemoteTransform3D" type="RemoteTransform3D" parent="XROrigin3D/XRControllerRight"]
-remote_path = NodePath("../../../Club (AnimatableBody3D)")
-
-[node name="StartXR" parent="." instance=ExtResource("4_6x466")]
-enable_passthrough = true
-
-[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
-environment = SubResource("Environment_7ghp0")
-
-[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
-transform = Transform3D(0.834925, -0.386727, -0.39159, 0.550364, 0.586681, 0.594058, 0, -0.711511, 0.702675, 0, 7.21041, 2.06458)
-shadow_enabled = true
-
-[node name="XRSimulator" parent="." instance=ExtResource("6_yj6uv")]
-xr_origin = NodePath("../XROrigin3D")
-
-[node name="Ground (StaticBody3D)" type="StaticBody3D" parent="."]
-transform = Transform3D(1, -1.39636e-11, 0, 9.47997e-12, 1, 0, 0, 0, 1, 0, 0, 0)
-physics_material_override = SubResource("PhysicsMaterial_5qi0p")
-
-[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground (StaticBody3D)"]
-transform = Transform3D(0.999999, -1.39631e-11, 0, 9.48108e-12, 0.999999, -4.54747e-13, 0, -4.54747e-13, 0.999999, 0, 0, 0)
-shape = SubResource("WorldBoundaryShape3D_i18hv")
-
-[node name="Ball (RigidBody3D)" type="RigidBody3D" parent="."]
-transform = Transform3D(0.999997, -1.39633e-11, 0, 9.48364e-12, 0.999998, -1.81899e-12, 0, 5.91172e-12, 0.999998, 0.487249, 1.15211, -0.679336)
-physics_material_override = SubResource("PhysicsMaterial_t7p2m")
-angular_damp = 4.0
-
-[node name="CollisionShape3D" type="CollisionShape3D" parent="Ball (RigidBody3D)"]
-shape = SubResource("SphereShape3D_wckr8")
-
-[node name="MeshInstance3D" type="MeshInstance3D" parent="Ball (RigidBody3D)"]
-transform = Transform3D(1, -1.39641e-11, 0, 9.47986e-12, 1, 0, 2.91038e-11, 0, 1, 0, 0, 0)
-mesh = SubResource("SphereMesh_5b0e3")
-
-[node name="Club (AnimatableBody3D)" type="AnimatableBody3D" parent="."]
-transform = Transform3D(1, -1.39637e-11, 0, 9.47975e-12, 1, 0, 0, 0, 1, 0.488349, 0.559219, -0.2988)
-
-[node name="MeshInstance3D" type="MeshInstance3D" parent="Club (AnimatableBody3D)"]
-transform = Transform3D(1, -0.000567105, -2.51786e-05, -2.51789e-05, 4.39913e-08, -0.999999, 0.000567105, 1, 2.97096e-08, 0.000972658, -0.00257713, -0.524774)
-mesh = SubResource("BoxMesh_4w3j6")
-
-[node name="CollisionShape3D" type="CollisionShape3D" parent="Club (AnimatableBody3D)"]
-transform = Transform3D(1, -0.000567105, -2.51788e-05, -2.51788e-05, 4.39918e-08, -1, 0.000567105, 1, 2.97127e-08, 0.000972658, -0.00257713, -0.524774)
-shape = SubResource("BoxShape3D_huggw")
diff --git a/content/system/hands/hands.tscn b/content/system/hands/hands.tscn
index 4c397c2..a0efb03 100644
--- a/content/system/hands/hands.tscn
+++ b/content/system/hands/hands.tscn
@@ -9,7 +9,7 @@ radius = 0.001
height = 0.02
[sub_resource type="BoxShape3D" id="BoxShape3D_1pxrt"]
-size = Vector3(0.14, 0.0577792, 0.169383)
+size = Vector3(0.14, 0.0224609, 0.169383)
[node name="Hands" type="Node3D"]
script = ExtResource("1_c4f76")
@@ -19,10 +19,10 @@ transform = Transform3D(0.999999, -1.39628e-11, 0, 9.48119e-12, 0.999999, -4.547
hand_skeleton = NodePath("left_hand/Armature_001/Skeleton3D")
[node name="left_hand" parent="XRHandLeft" instance=ExtResource("2_n73lt")]
-transform = Transform3D(1, 4.42441e-11, 0, -1.06936e-10, 1, 1.81899e-12, 5.82077e-11, -1.81899e-12, 1, 0, 0, 0.033)
+transform = Transform3D(1, 4.42441e-11, 0, -1.06936e-10, 1, 1.81899e-12, 5.82077e-11, -1.81899e-12, 1, 0, 0, 0)
[node name="IndexTip" type="BoneAttachment3D" parent="XRHandLeft"]
-transform = Transform3D(0.19221, -0.669965, -0.717079, 0.977075, 0.19881, 0.076153, 0.0915428, -0.715277, 0.692819, 0.0345973, 0.0355402, -0.131767)
+transform = Transform3D(0.19221, -0.669965, -0.717079, 0.977075, 0.19881, 0.076153, 0.0915428, -0.715277, 0.692819, 0.0345973, 0.0355402, -0.164767)
bone_name = "Index_Tip_L"
bone_idx = 9
use_external_skeleton = true
@@ -42,7 +42,7 @@ transform = Transform3D(1, -7.45058e-09, -2.22045e-16, 7.45058e-09, 1, 0, 0, 0,
shape = SubResource("CapsuleShape3D_dopke")
[node name="ThumbTip" type="BoneAttachment3D" parent="XRHandLeft"]
-transform = Transform3D(0.937246, 0.0284254, -0.347508, 0.0184905, 0.991216, 0.130949, 0.348178, -0.129157, 0.928488, 0.0498668, 0.0560917, -0.0797768)
+transform = Transform3D(0.937246, 0.0284254, -0.347508, 0.0184905, 0.991216, 0.130949, 0.348178, -0.129157, 0.928488, 0.0498668, 0.0560917, -0.112777)
bone_name = "Thumb_Tip_L"
bone_idx = 4
use_external_skeleton = true
@@ -52,7 +52,7 @@ external_skeleton = NodePath("../left_hand/Armature_001/Skeleton3D")
gizmo_extents = 0.02
[node name="MiddleTip" type="BoneAttachment3D" parent="XRHandLeft"]
-transform = Transform3D(0.0812012, -0.650531, -0.755125, 0.996577, 0.064817, 0.051326, 0.0155558, -0.756708, 0.653568, 0.032112, 0.00654224, -0.138612)
+transform = Transform3D(0.0812012, -0.650531, -0.755125, 0.996577, 0.064817, 0.051326, 0.0155558, -0.756708, 0.653568, 0.032112, 0.00654224, -0.171612)
bone_name = "Middle_Tip_L"
bone_idx = 14
use_external_skeleton = true
@@ -77,7 +77,7 @@ collision_layer = 8
collision_mask = 8
[node name="CollisionShape3D" type="CollisionShape3D" parent="XRHandLeft/AnimatableBody3D"]
-transform = Transform3D(1, 8.67362e-19, 4.75779e-13, -2.32831e-10, 1, -1.77636e-14, -4.97946e-12, 1.77636e-15, 1, -7.7486e-07, 1.33878e-09, -0.030436)
+transform = Transform3D(1, 1.05818e-16, 4.75779e-13, -2.32831e-10, 1, -1.77636e-14, -4.97946e-12, 1.77636e-15, 1, -7.7486e-07, 1.33878e-09, -0.030436)
shape = SubResource("BoxShape3D_1pxrt")
[node name="RemoteTransform3D" type="RemoteTransform3D" parent="XRHandLeft"]
@@ -89,13 +89,12 @@ hand = 1
hand_skeleton = NodePath("right_hand/Armature/Skeleton3D")
[node name="right_hand" parent="XRHandRight" instance=ExtResource("1_uekbj")]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.033)
[node name="vr_glove_right_slim" parent="XRHandRight/right_hand/Armature/Skeleton3D" index="0"]
transform = Transform3D(1, 0, 4.7579e-13, 0, 1, 0, -1.34149e-12, 1.77636e-15, 1, 0, 0, 0)
[node name="IndexTip" type="BoneAttachment3D" parent="XRHandRight"]
-transform = Transform3D(0.19221, 0.669966, 0.717079, -0.091543, -0.715277, 0.69282, 0.977075, -0.19881, -0.0761527, -0.0345977, -0.164767, -0.00254008)
+transform = Transform3D(0.19221, 0.669966, 0.717079, -0.091543, -0.715277, 0.69282, 0.977075, -0.19881, -0.0761527, -0.0345977, -0.164767, -0.0355401)
bone_name = "Index_Tip_R"
bone_idx = 9
use_external_skeleton = true
@@ -115,7 +114,7 @@ transform = Transform3D(1, -7.45058e-09, -2.22045e-16, 7.45058e-09, 1, 0, 0, 0,
shape = SubResource("CapsuleShape3D_dopke")
[node name="ThumbTip" type="BoneAttachment3D" parent="XRHandRight"]
-transform = Transform3D(0.937246, -0.0284254, 0.347508, -0.348179, -0.129158, 0.928488, 0.0184906, -0.991216, -0.130949, -0.0498677, -0.112777, -0.0230909)
+transform = Transform3D(0.937246, -0.0284254, 0.347508, -0.348179, -0.129158, 0.928488, 0.0184906, -0.991216, -0.130949, -0.0498677, -0.112777, -0.0560909)
bone_name = "Thumb_Tip_R"
bone_idx = 4
use_external_skeleton = true
@@ -125,7 +124,7 @@ external_skeleton = NodePath("../right_hand/Armature/Skeleton3D")
gizmo_extents = 0.02
[node name="MiddleTip" type="BoneAttachment3D" parent="XRHandRight"]
-transform = Transform3D(0.0812011, 0.650531, 0.755126, -0.0155557, -0.756708, 0.653568, 0.996576, -0.0648169, -0.0513262, -0.032112, -0.171612, 0.0264578)
+transform = Transform3D(0.0812011, 0.650531, 0.755126, -0.0155557, -0.756708, 0.653568, 0.996576, -0.0648169, -0.0513262, -0.032112, -0.171612, -0.00654216)
bone_name = "Middle_Tip_R"
bone_idx = 14
use_external_skeleton = true
@@ -145,7 +144,7 @@ transform = Transform3D(1, -7.45058e-09, -2.22045e-16, 7.45058e-09, 1, 0, 0, 0,
shape = SubResource("CapsuleShape3D_dopke")
[node name="AnimatableBody3D" type="AnimatableBody3D" parent="XRHandRight"]
-transform = Transform3D(1, 0, 4.7579e-13, -5.82077e-11, 1, 0, -4.97947e-12, 1.77636e-15, 1, 0, 0, 0)
+transform = Transform3D(1, 0, 4.7579e-13, 0, 1, 0, -1.34149e-12, 1.77636e-15, 1, 0, 0, 0)
collision_layer = 8
collision_mask = 8
diff --git a/content/ui/menu/edit/edit_menu.gd b/content/ui/menu/edit/edit_menu.gd
index 404417b..1dd855a 100644
--- a/content/ui/menu/edit/edit_menu.gd
+++ b/content/ui/menu/edit/edit_menu.gd
@@ -149,6 +149,10 @@ func _on_entity_click(entity_name):
AudioPlayer.play_effect("spawn")
var entity = EntityCreator.create_entity(type, entity_name)
+
+ if entity == null:
+ return
+
entity.set_position(global_position)
get_node("/root").add_child(entity)
diff --git a/content/ui/menu/room/room_menu.gd b/content/ui/menu/room/room_menu.gd
index ac16576..063c74b 100644
--- a/content/ui/menu/room/room_menu.gd
+++ b/content/ui/menu/room/room_menu.gd
@@ -2,7 +2,7 @@ extends Node3D
const wall_corner_scene = preload("./wall_corner.tscn")
const wall_edge_scene = preload("./wall_edge.tscn")
-const windows_scene = preload("./windows.tscn")
+const window_scene = preload("./window.tscn")
@onready var teleport_root = $TeleportRoot
@onready var background = $Background
@@ -23,7 +23,7 @@ func _ready():
get_tree().get_root().get_node("Main").add_child.call_deferred(teleport_root)
spawn_windows.on_button_down.connect(func():
- get_tree().root.get_node("Main").add_child.call_deferred(windows_scene.instantiate())
+ get_tree().root.get_node("Main").add_child.call_deferred(window_scene.instantiate())
)
teleport_root.get_node("Ground/Clickable").on_click.connect(func(event):
diff --git a/content/ui/menu/room/room_menu.gdshader b/content/ui/menu/room/room_menu.gdshader
deleted file mode 100644
index 061034b..0000000
--- a/content/ui/menu/room/room_menu.gdshader
+++ /dev/null
@@ -1,10 +0,0 @@
-shader_type spatial;
-render_mode unshaded, cull_disabled;
-
-uniform sampler2D SCREEN_TEXTURE : hint_screen_texture;
-uniform float blur_amount: hint_range(0.0, 5.0, 0.1) = 2;
-
-void fragment() {
- vec4 lod = textureLod(SCREEN_TEXTURE, SCREEN_UV, blur_amount);
- ALBEDO = lod.xyz;
-}
\ No newline at end of file
diff --git a/content/ui/menu/room/window.tres b/content/ui/menu/room/window.tres
new file mode 100644
index 0000000..137bdf1
--- /dev/null
+++ b/content/ui/menu/room/window.tres
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:21d6414588bf8162f73905682ce72e101592e1be72bded5b99c0e634565505c1
+size 172
diff --git a/content/ui/menu/room/window.tscn b/content/ui/menu/room/window.tscn
index 312244b..a21bc6f 100644
--- a/content/ui/menu/room/window.tscn
+++ b/content/ui/menu/room/window.tscn
@@ -1,16 +1,90 @@
-[gd_scene load_steps=4 format=3 uid="uid://scu77f1crn6"]
+[gd_scene load_steps=9 format=3 uid="uid://crl02od5o86ii"]
-[ext_resource type="Texture2D" uid="uid://ddkdqduooyt5e" path="res://assets/ComfyUI_00480_2.png" id="3_qlot3"]
+[ext_resource type="Material" uid="uid://cmmo2p0up0dns" path="res://content/ui/menu/room/window.tres" id="1_jpfo1"]
+[ext_resource type="Script" path="res://content/functions/movable.gd" id="2_ff8e1"]
-[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xx1h5"]
-shading_mode = 0
-albedo_texture = ExtResource("3_qlot3")
+[sub_resource type="QuadMesh" id="QuadMesh_crf2x"]
+size = Vector2(0.34, 1.04)
-[sub_resource type="PlaneMesh" id="PlaneMesh_ndue5"]
-size = Vector2(1, 1)
-orientation = 2
+[sub_resource type="QuadMesh" id="QuadMesh_5ykyi"]
+size = Vector2(0.76, 0.35)
-[node name="MeshInstance3D" type="MeshInstance3D"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.000999987)
-material_override = SubResource("StandardMaterial3D_xx1h5")
-mesh = SubResource("PlaneMesh_ndue5")
+[sub_resource type="BoxShape3D" id="BoxShape3D_hdsvs"]
+size = Vector3(0.81, 1.62, 0.15)
+
+[sub_resource type="QuadMesh" id="QuadMesh_qw3nn"]
+size = Vector2(0.36, 1.08)
+
+[sub_resource type="QuadMesh" id="QuadMesh_7dnwh"]
+size = Vector2(0.36, 0.73)
+
+[sub_resource type="BoxShape3D" id="BoxShape3D_r2ahp"]
+size = Vector3(0.82, 2.44, 0.15)
+
+[node name="Window" type="Node3D"]
+
+[node name="StaticBody3D" type="StaticBody3D" parent="."]
+
+[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.03, 0, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_crf2x")
+skeleton = NodePath("../..")
+
+[node name="MeshInstance3D2" type="MeshInstance3D" parent="StaticBody3D"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.46, 0, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_crf2x")
+skeleton = NodePath("../..")
+
+[node name="MeshInstance3D3" type="MeshInstance3D" parent="StaticBody3D"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22, 0.88, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_5ykyi")
+skeleton = NodePath("../..")
+
+[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.205, 0.28, 0)
+shape = SubResource("BoxShape3D_hdsvs")
+
+[node name="Movable" type="Node" parent="StaticBody3D"]
+script = ExtResource("2_ff8e1")
+
+[node name="StaticBody3D2" type="StaticBody3D" parent="."]
+
+[node name="MeshInstance3D4" type="MeshInstance3D" parent="StaticBody3D2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.07, 0.94, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_5ykyi")
+skeleton = NodePath("../..")
+
+[node name="MeshInstance3D5" type="MeshInstance3D" parent="StaticBody3D2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.86, 0.04, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_qw3nn")
+skeleton = NodePath("../..")
+
+[node name="MeshInstance3D6" type="MeshInstance3D" parent="StaticBody3D2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.29, 0.04, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_qw3nn")
+skeleton = NodePath("../..")
+
+[node name="MeshInstance3D7" type="MeshInstance3D" parent="StaticBody3D2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.29, -0.95, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_7dnwh")
+skeleton = NodePath("../..")
+
+[node name="MeshInstance3D8" type="MeshInstance3D" parent="StaticBody3D2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.85, -0.95, 0)
+material_override = ExtResource("1_jpfo1")
+mesh = SubResource("QuadMesh_7dnwh")
+skeleton = NodePath("../..")
+
+[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.06, -0.13, 0)
+shape = SubResource("BoxShape3D_r2ahp")
+
+[node name="Movable2" type="Node" parent="StaticBody3D2"]
+script = ExtResource("2_ff8e1")
diff --git a/content/ui/menu/room/windows.tscn b/content/ui/menu/room/windows.tscn
deleted file mode 100644
index 9e5e420..0000000
--- a/content/ui/menu/room/windows.tscn
+++ /dev/null
@@ -1,63 +0,0 @@
-[gd_scene load_steps=5 format=3 uid="uid://bubusve8ijc7h"]
-
-[ext_resource type="PackedScene" uid="uid://scu77f1crn6" path="res://content/ui/menu/room/window.tscn" id="1_nl1ra"]
-[ext_resource type="Script" path="res://content/functions/movable.gd" id="2_tt5ej"]
-
-[sub_resource type="BoxShape3D" id="BoxShape3D_gsqto"]
-size = Vector3(0.86, 1.58, 0.07)
-
-[sub_resource type="BoxShape3D" id="BoxShape3D_a74ne"]
-size = Vector3(0.75, 2.37, 0.09)
-
-[node name="Windows" type="Node3D"]
-
-[node name="StaticBody3D" type="StaticBody3D" parent="."]
-
-[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.27, 0)
-shape = SubResource("BoxShape3D_gsqto")
-
-[node name="Window" parent="StaticBody3D" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.32, 0, 0, 0, 1.04, 0, 0, 0, 1, -0.23, 0, 0.001)
-skeleton = NodePath("../..")
-
-[node name="Window3" parent="StaticBody3D" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.32, 0, 0, 0, 1.04, 0, 0, 0, 1, 0.23, 0, 0.001)
-skeleton = NodePath("../..")
-
-[node name="Window2" parent="StaticBody3D" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.76, 0, 0, 0, 0.35, 0, 0, 0, 1, 0, 0.88, 0)
-skeleton = NodePath("../..")
-
-[node name="Movable2" type="Node" parent="StaticBody3D"]
-script = ExtResource("2_tt5ej")
-
-[node name="StaticBody3D2" type="StaticBody3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.35061, 0, 0)
-
-[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.39, 0)
-shape = SubResource("BoxShape3D_a74ne")
-
-[node name="Window8" parent="StaticBody3D2" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.76, 0, 0, 0, 0.35, 0, 0, 0, 1, 0, 1.39, 0)
-skeleton = NodePath("../..")
-
-[node name="Window4" parent="StaticBody3D2" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.34, 0, 0, 0, 1.03, 0, 0, 0, 1, -0.21, 0.52, 0)
-skeleton = NodePath("../..")
-
-[node name="Window5" parent="StaticBody3D2" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.34, 0, 0, 0, 1.03, 0, 0, 0, 1, 0.21, 0.52, 0)
-skeleton = NodePath("../..")
-
-[node name="Window6" parent="StaticBody3D2" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.34, 0, 0, 0, 0.73, 0, 0, 0, 1, 0.21, -0.44, 0)
-skeleton = NodePath("../..")
-
-[node name="Window7" parent="StaticBody3D2" instance=ExtResource("1_nl1ra")]
-transform = Transform3D(0.34, 0, 0, 0, 0.73, 0, 0, 0, 1, -0.21, -0.44, 0)
-skeleton = NodePath("../..")
-
-[node name="Movable" type="Node" parent="StaticBody3D2"]
-script = ExtResource("2_tt5ej")
diff --git a/content/ui/menu/settings/credits.tscn b/content/ui/menu/settings/credits.tscn
index c5375a5..b73c820 100644
--- a/content/ui/menu/settings/credits.tscn
+++ b/content/ui/menu/settings/credits.tscn
@@ -44,6 +44,15 @@ font_size = 14
outline_size = 0
autowrap_mode = 3
+[node name="Room2" type="Label3D" parent="Content"]
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 4.65661e-09, 0.0471446)
+pixel_size = 0.001
+modulate = Color(0, 0, 0, 1)
+text = "This work is based on \"Sky Dome\" (https://sketchfab.com/3d-models/sky-dome-95b2fd979c3f4a84b707a43772f7b2cd) by exiS7-Gs (https://sketchfab.com/exiS7-Gs) licensed under CC-BY-4.0 (http://creativecommons.org/licenses/by/4.0/)"
+font_size = 14
+outline_size = 0
+autowrap_mode = 3
+
[node name="Button" parent="Content" instance=ExtResource("2_dejch")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.22, 0, -0.22)
label = "close"
diff --git a/export_presets.cfg b/export_presets.cfg
index 7f41361..952470b 100644
--- a/export_presets.cfg
+++ b/export_presets.cfg
@@ -22,10 +22,6 @@ gradle_build/use_gradle_build=true
gradle_build/export_format=0
gradle_build/min_sdk=""
gradle_build/target_sdk=""
-plugins/GodotOpenXRKHR=false
-plugins/GodotOpenXRLynx=false
-plugins/GodotOpenXRMeta=true
-plugins/GodotOpenXRPico=false
architectures/armeabi-v7a=false
architectures/arm64-v8a=true
architectures/x86=false
@@ -38,14 +34,14 @@ package/signed=true
package/app_category=2
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
+package/show_in_android_tv=false
+package/show_in_app_library=true
+package/show_as_launcher_app=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=1
-xr_features/hand_tracking=1
-xr_features/hand_tracking_frequency=1
-xr_features/passthrough=2
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
@@ -203,6 +199,23 @@ permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
-package/show_in_android_tv=false
-package/show_in_app_library=true
-package/show_as_launcher_app=false
+plugins/GodotOpenXRKHR=false
+plugins/GodotOpenXRLynx=false
+plugins/GodotOpenXRMeta=true
+plugins/GodotOpenXRPico=false
+xr_features/hand_tracking=1
+xr_features/hand_tracking_frequency=1
+xr_features/passthrough=2
+xr_features/enable_meta_plugin=true
+meta_xr_features/eye_tracking=0
+meta_xr_features/hand_tracking=1
+meta_xr_features/hand_tracking_frequency=1
+meta_xr_features/passthrough=2
+meta_xr_features/use_anchor_api=false
+meta_xr_features/quest_1_support=false
+meta_xr_features/quest_2_support=true
+meta_xr_features/quest_3_support=true
+meta_xr_features/quest_pro_support=true
+xr_features/enable_pico_plugin=false
+xr_features/enable_lynx_plugin=false
+xr_features/enable_khronos_plugin=false
diff --git a/export_presets_prod.cfg b/export_presets_prod.cfg
index 8311756..8222d14 100644
--- a/export_presets_prod.cfg
+++ b/export_presets_prod.cfg
@@ -22,10 +22,6 @@ gradle_build/use_gradle_build=true
gradle_build/export_format=0
gradle_build/min_sdk=""
gradle_build/target_sdk="32"
-plugins/GodotOpenXRKHR=false
-plugins/GodotOpenXRLynx=false
-plugins/GodotOpenXRMeta=true
-plugins/GodotOpenXRPico=false
architectures/armeabi-v7a=false
architectures/arm64-v8a=true
architectures/x86=false
@@ -38,14 +34,14 @@ package/signed=true
package/app_category=2
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
+package/show_in_android_tv=false
+package/show_in_app_library=true
+package/show_as_launcher_app=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=1
-xr_features/hand_tracking=1
-xr_features/hand_tracking_frequency=1
-xr_features/passthrough=2
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
@@ -203,6 +199,23 @@ permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false
-package/show_in_android_tv=false
-package/show_in_app_library=true
-package/show_as_launcher_app=false
+plugins/GodotOpenXRKHR=false
+plugins/GodotOpenXRLynx=false
+plugins/GodotOpenXRMeta=true
+plugins/GodotOpenXRPico=false
+xr_features/hand_tracking=1
+xr_features/hand_tracking_frequency=1
+xr_features/passthrough=2
+xr_features/enable_meta_plugin=true
+meta_xr_features/eye_tracking=0
+meta_xr_features/hand_tracking=1
+meta_xr_features/hand_tracking_frequency=1
+meta_xr_features/passthrough=2
+meta_xr_features/use_anchor_api=false
+meta_xr_features/quest_1_support=false
+meta_xr_features/quest_2_support=true
+meta_xr_features/quest_3_support=true
+meta_xr_features/quest_pro_support=true
+xr_features/enable_pico_plugin=false
+xr_features/enable_lynx_plugin=false
+xr_features/enable_khronos_plugin=false
\ No newline at end of file
diff --git a/project.godot b/project.godot
index 800e839..9dbf93c 100644
--- a/project.godot
+++ b/project.godot
@@ -12,7 +12,7 @@ config_version=5
config/name="ImmersiveHome"
run/main_scene="res://content/main.tscn"
-config/features=PackedStringArray("4.1", "Mobile")
+config/features=PackedStringArray("4.2", "Mobile")
config/icon="res://assets/logo.png"
[autoload]
@@ -26,7 +26,15 @@ EventSystem="*res://lib/globals/event_system.gd"
[editor_plugins]
-enabled=PackedStringArray("res://addons/godot-xr-tools/plugin.cfg")
+enabled=PackedStringArray("res://addons/godot-xr-tools/plugin.cfg", "res://addons/godotopenxrvendors/plugin.cfg")
+
+[file_customization]
+
+folder_colors={
+"res://assets/": "blue",
+"res://content/": "teal",
+"res://lib/": "yellow"
+}
[filesystem]