diff options
author | Bastiaan Olij <mux213@gmail.com> | 2017-11-04 08:57:25 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-04 08:57:25 +1100 |
commit | 25c38c75425e3ccfcaed53ebd38fc588d6f35764 (patch) | |
tree | 88e3af7d757376132705070db18afe26731cae3b /modules/gdnative | |
parent | acd193b62e3972d6dd1e4b2aa115948658f85e9b (diff) | |
parent | 167b7b55338761e3cb48677219d41f5bfc32c839 (diff) |
Merge pull request #12557 from BastiaanOlij/arvr_add_rumble_support
Adding rumble support to ARVR controllers
Diffstat (limited to 'modules/gdnative')
-rw-r--r-- | modules/gdnative/gdnative_api.json | 7 | ||||
-rw-r--r-- | modules/gdnative/include/nativearvr/godot_nativearvr.h | 1 | ||||
-rw-r--r-- | modules/gdnative/nativearvr/arvr_interface_gdnative.cpp | 12 |
3 files changed, 20 insertions, 0 deletions
diff --git a/modules/gdnative/gdnative_api.json b/modules/gdnative/gdnative_api.json index e19995b5f5..3a92afd7ab 100644 --- a/modules/gdnative/gdnative_api.json +++ b/modules/gdnative/gdnative_api.json @@ -5316,6 +5316,13 @@ ["godot_real", "p_value"], ["godot_bool", "p_can_be_negative"] ] + }, + { + "name": "godot_arvr_get_controller_rumble", + "return_type": "godot_real", + "arguments": [ + ["godot_int", "p_controller_id"] + ] } ] } diff --git a/modules/gdnative/include/nativearvr/godot_nativearvr.h b/modules/gdnative/include/nativearvr/godot_nativearvr.h index 1a8970d396..a4f4d6a9f1 100644 --- a/modules/gdnative/include/nativearvr/godot_nativearvr.h +++ b/modules/gdnative/include/nativearvr/godot_nativearvr.h @@ -70,6 +70,7 @@ void GDAPI godot_arvr_remove_controller(godot_int p_controller_id); void GDAPI godot_arvr_set_controller_transform(godot_int p_controller_id, godot_transform *p_transform, godot_bool p_tracks_orientation, godot_bool p_tracks_position); void GDAPI godot_arvr_set_controller_button(godot_int p_controller_id, godot_int p_button, godot_bool p_is_pressed); void GDAPI godot_arvr_set_controller_axis(godot_int p_controller_id, godot_int p_axis, godot_real p_value, godot_bool p_can_be_negative); +godot_real GDAPI godot_arvr_get_controller_rumble(godot_int p_controller_id); #ifdef __cplusplus } diff --git a/modules/gdnative/nativearvr/arvr_interface_gdnative.cpp b/modules/gdnative/nativearvr/arvr_interface_gdnative.cpp index ff8bda162f..e2a7019fa4 100644 --- a/modules/gdnative/nativearvr/arvr_interface_gdnative.cpp +++ b/modules/gdnative/nativearvr/arvr_interface_gdnative.cpp @@ -383,4 +383,16 @@ void GDAPI godot_arvr_set_controller_axis(godot_int p_controller_id, godot_int p } } } + +godot_real GDAPI godot_arvr_get_controller_rumble(godot_int p_controller_id) { + ARVRServer *arvr_server = ARVRServer::get_singleton(); + ERR_FAIL_NULL_V(arvr_server, 0.0); + + ARVRPositionalTracker *tracker = arvr_server->find_by_type_and_id(ARVRServer::TRACKER_CONTROLLER, p_controller_id); + if (tracker != NULL) { + return tracker->get_rumble(); + } + + return 0.0; +} } |