mirror of
https://github.com/CrispyPin/ovr-utils.git
synced 2024-11-22 15:40:25 +01:00
add basic battery indicator
This commit is contained in:
parent
de806ff272
commit
71f6abe41a
5 changed files with 102 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/openvr_overlay/OverlayInstance.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://addons/openvr_overlay/OverlayInstance.tscn" type="PackedScene" id=1]
|
||||||
[ext_resource path="res://overlays/FPSOverlay.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://overlays/FPSOverlay.tscn" type="PackedScene" id=2]
|
||||||
|
@ -6,10 +6,17 @@
|
||||||
[ext_resource path="res://temp.gd" type="Script" id=4]
|
[ext_resource path="res://temp.gd" type="Script" id=4]
|
||||||
[ext_resource path="res://overlays/xyz_widget/zx.tscn" type="PackedScene" id=5]
|
[ext_resource path="res://overlays/xyz_widget/zx.tscn" type="PackedScene" id=5]
|
||||||
[ext_resource path="res://overlays/xyz_widget/yz.tscn" type="PackedScene" id=6]
|
[ext_resource path="res://overlays/xyz_widget/yz.tscn" type="PackedScene" id=6]
|
||||||
|
[ext_resource path="res://overlays/BatteryOverlay.tscn" type="PackedScene" id=7]
|
||||||
|
|
||||||
[node name="Overlays" type="Node"]
|
[node name="Overlays" type="Node"]
|
||||||
script = ExtResource( 4 )
|
script = ExtResource( 4 )
|
||||||
|
|
||||||
|
[node name="OverlayInstance Battery" parent="." instance=ExtResource( 1 )]
|
||||||
|
target = 1
|
||||||
|
overlay_scene = ExtResource( 7 )
|
||||||
|
offset_pos = Vector3( -0.12, 0, 0.1 )
|
||||||
|
offset_rot = Vector3( -135, 90, 0 )
|
||||||
|
|
||||||
[node name="OverlayInstance FPS" parent="." instance=ExtResource( 1 )]
|
[node name="OverlayInstance FPS" parent="." instance=ExtResource( 1 )]
|
||||||
target = 1
|
target = 1
|
||||||
overlay_scene = ExtResource( 2 )
|
overlay_scene = ExtResource( 2 )
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
var ovr_interface: ARVRInterface
|
var ovr_interface: ARVRInterface
|
||||||
|
var ovr_config := preload("res://addons/godot-openvr/OpenVRConfig.gdns").new()
|
||||||
|
|
||||||
|
var left_id = 0
|
||||||
|
var right_id = 0
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
var ovr_config = preload("res://addons/godot-openvr/OpenVRConfig.gdns").new()
|
ovr_config = preload("res://addons/godot-openvr/OpenVRConfig.gdns").new()
|
||||||
ovr_config.set_application_type(2) # Set to OVERLAY MODE = 2, NORMAL MODE = 1
|
ovr_config.set_application_type(2) # Set to OVERLAY MODE = 2, NORMAL MODE = 1
|
||||||
ovr_config.set_tracking_universe(1) # Set to SEATED MODE = 0, STANDING MODE = 1, RAW MODE = 2
|
ovr_config.set_tracking_universe(1) # Set to SEATED MODE = 0, STANDING MODE = 1, RAW MODE = 2
|
||||||
|
|
||||||
|
@ -15,7 +18,20 @@ func _init() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
ARVRServer.connect("tracker_added", self, "_tracker_changed")
|
||||||
|
ARVRServer.connect("tracker_removed", self, "_tracker_changed")
|
||||||
|
update_hand_ids()
|
||||||
|
|
||||||
|
func _tracker_changed(tracker_name: String, type: int, id: int):
|
||||||
|
update_hand_ids()
|
||||||
|
|
||||||
|
func update_hand_ids():
|
||||||
for i in ARVRServer.get_tracker_count():
|
for i in ARVRServer.get_tracker_count():
|
||||||
var tracker = ARVRServer.get_tracker(i)
|
var tracker = ARVRServer.get_tracker(i)
|
||||||
print(tracker.get_name(), ": hand ", tracker.get_hand())
|
print(tracker.get_name(), ": hand ", tracker.get_hand())
|
||||||
|
|
||||||
|
var tracking_id = tracker.get_name().split("_")[-1]
|
||||||
|
if tracker.get_hand() == 1:
|
||||||
|
left_id = tracking_id
|
||||||
|
elif tracker.get_hand() == 2:
|
||||||
|
right_id = tracking_id
|
||||||
|
|
|
@ -56,7 +56,7 @@ func update_offset() -> void:
|
||||||
|
|
||||||
|
|
||||||
func _tracker_changed(tracker_name: String, type: int, id: int):
|
func _tracker_changed(tracker_name: String, type: int, id: int):
|
||||||
print("tracker changed: ", tracker_name)
|
# print("tracker changed: ", tracker_name)
|
||||||
update_tracker_id()
|
update_tracker_id()
|
||||||
update_offset()
|
update_offset()
|
||||||
|
|
||||||
|
|
50
ovr-utils/overlays/BatteryOverlay.tscn
Normal file
50
ovr-utils/overlays/BatteryOverlay.tscn
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://overlays/battery.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxFlat" id=1]
|
||||||
|
bg_color = Color( 0, 0, 0, 0.705882 )
|
||||||
|
expand_margin_left = 8.0
|
||||||
|
expand_margin_right = 8.0
|
||||||
|
expand_margin_top = 8.0
|
||||||
|
expand_margin_bottom = 8.0
|
||||||
|
|
||||||
|
[sub_resource type="DynamicFont" id=2]
|
||||||
|
size = 128
|
||||||
|
font_data = ExtResource( 2 )
|
||||||
|
|
||||||
|
[node name="Overlay" type="Control"]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
size_flags_horizontal = 3
|
||||||
|
size_flags_vertical = 3
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ColorRect" type="PanelContainer" parent="."]
|
||||||
|
anchor_left = 0.5
|
||||||
|
anchor_top = 0.5
|
||||||
|
anchor_right = 0.5
|
||||||
|
anchor_bottom = 0.5
|
||||||
|
margin_left = -673.0
|
||||||
|
margin_top = -87.5
|
||||||
|
margin_right = 673.0
|
||||||
|
margin_bottom = 87.5
|
||||||
|
size_flags_horizontal = 0
|
||||||
|
custom_styles/panel = SubResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Label" type="Label" parent="ColorRect"]
|
||||||
|
margin_right = 1346.0
|
||||||
|
margin_bottom = 175.0
|
||||||
|
custom_fonts/font = SubResource( 2 )
|
||||||
|
text = "Left: 100% Right: 100%"
|
||||||
|
align = 1
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
26
ovr-utils/overlays/battery.gd
Normal file
26
ovr-utils/overlays/battery.gd
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
extends Label
|
||||||
|
|
||||||
|
var _delay = 0
|
||||||
|
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
pass
|
||||||
|
|
||||||
|
func _process(delta: float) -> void:
|
||||||
|
_delay += delta
|
||||||
|
if _delay > 1:
|
||||||
|
update_text()
|
||||||
|
_delay = 0
|
||||||
|
|
||||||
|
func update_text():
|
||||||
|
var l = "NaN"
|
||||||
|
var r = "NaN"
|
||||||
|
if OverlayInit.left_id:
|
||||||
|
l = OverlayInit.ovr_config.get_device_battery_percentage(OverlayInit.left_id)*100
|
||||||
|
l = str(int(l))
|
||||||
|
if OverlayInit.right_id:
|
||||||
|
r = OverlayInit.ovr_config.get_device_battery_percentage(OverlayInit.right_id)*100
|
||||||
|
r = str(int(r))
|
||||||
|
if OverlayInit.ovr_config.is_device_charging(OverlayInit.right_id):
|
||||||
|
r += "+"
|
||||||
|
text = "Left: " + l + "% Right: " + r + "%"
|
Loading…
Reference in a new issue