mirror of
https://github.com/CrispyPin/ovr-utils.git
synced 2024-11-22 15:40:25 +01:00
load overlays from file at startup
This commit is contained in:
parent
97a3fb5e80
commit
031a48ffdc
23 changed files with 99 additions and 123 deletions
|
@ -1,30 +1,8 @@
|
||||||
[gd_scene load_steps=7 format=2]
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/openvr_overlay/OverlayInstance.tscn" type="PackedScene" id=1]
|
[ext_resource path="res://overlay_manager.gd" type="Script" id=6]
|
||||||
[ext_resource path="res://overlays/FPSOverlay.tscn" type="PackedScene" id=2]
|
|
||||||
[ext_resource path="res://overlays/TimeOverlay.tscn" type="PackedScene" id=3]
|
|
||||||
[ext_resource path="res://overlays/xyz_widget/XYZ Widget.tscn" type="PackedScene" id=4]
|
|
||||||
[ext_resource path="res://overlays/UI_demo.tscn" type="PackedScene" id=5]
|
|
||||||
[ext_resource path="res://overlays/BatteryOverlay.tscn" type="PackedScene" id=7]
|
|
||||||
|
|
||||||
[node name="Overlays" type="Node"]
|
[node name="Main" type="Node"]
|
||||||
|
|
||||||
[node name="OverlayInstance FPS" parent="." instance=ExtResource( 1 )]
|
[node name="OverlayManager" type="Node" parent="."]
|
||||||
transform = Transform( -4.37114e-08, -0.707107, -0.707107, 0, -0.707107, 0.707107, -1, 3.09086e-08, 3.09086e-08, 0.05, -0.01, 0.15 )
|
script = ExtResource( 6 )
|
||||||
overlay_scene = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="OverlayInstance Time" parent="." instance=ExtResource( 1 )]
|
|
||||||
transform = Transform( -4.37114e-08, -0.707107, -0.707107, 0, -0.707107, 0.707107, -1, 3.09086e-08, 3.09086e-08, -0.05, 0.02, 0.15 )
|
|
||||||
overlay_scene = ExtResource( 3 )
|
|
||||||
width_meters = 0.1
|
|
||||||
|
|
||||||
[node name="OverlayInstance UI demo" parent="." instance=ExtResource( 1 )]
|
|
||||||
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.25 )
|
|
||||||
overlay_scene = ExtResource( 5 )
|
|
||||||
add_cursor = true
|
|
||||||
|
|
||||||
[node name="XYZ Widget" parent="." instance=ExtResource( 4 )]
|
|
||||||
|
|
||||||
[node name="OverlayInstance Battery" parent="." instance=ExtResource( 1 )]
|
|
||||||
transform = Transform( -4.37114e-08, -0.707107, -0.707107, 0, -0.707107, 0.707107, -1, 3.09086e-08, 3.09086e-08, -0.12, 0, 0.1 )
|
|
||||||
overlay_scene = ExtResource( 7 )
|
|
||||||
|
|
40
ovr-utils/OLD.tscn
Normal file
40
ovr-utils/OLD.tscn
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
[gd_scene load_steps=8 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/openvr_overlay/overlay_instance.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://overlays/Clock.tscn" type="PackedScene" id=2]
|
||||||
|
[ext_resource path="res://overlays/zx.tscn" type="PackedScene" id=3]
|
||||||
|
[ext_resource path="res://overlays/UI_demo.tscn" type="PackedScene" id=4]
|
||||||
|
[ext_resource path="res://addons/openvr_overlay/OverlayInstance.tscn" type="PackedScene" id=5]
|
||||||
|
[ext_resource path="res://overlays/yz.tscn" type="PackedScene" id=6]
|
||||||
|
[ext_resource path="res://overlays/BatteryLevel.tscn" type="PackedScene" id=7]
|
||||||
|
|
||||||
|
[node name="OLD" type="Node"]
|
||||||
|
|
||||||
|
[node name="OverlayInstance Time" type="Spatial" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( -4.37114e-08, -0.707107, -0.707107, 0, -0.707107, 0.707107, -1, 3.09086e-08, 3.09086e-08, -0.05, 0.02, 0.15 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
overlay_scene = ExtResource( 2 )
|
||||||
|
width_meters = 0.1
|
||||||
|
|
||||||
|
[node name="OverlayInstance UI demo" type="Spatial" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.25 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
overlay_scene = ExtResource( 4 )
|
||||||
|
add_cursor = true
|
||||||
|
|
||||||
|
[node name="OverlayInstance Battery" type="Spatial" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( -4.37114e-08, -0.707107, -0.707107, 0, -0.707107, 0.707107, -1, 3.09086e-08, 3.09086e-08, -0.12, 0, 0.1 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
overlay_scene = ExtResource( 7 )
|
||||||
|
|
||||||
|
[node name="YZ" type="Spatial" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
overlay_scene = ExtResource( 6 )
|
||||||
|
width_meters = 0.25
|
||||||
|
|
||||||
|
[node name="ZX" type="Spatial" parent="." instance=ExtResource( 5 )]
|
||||||
|
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 )
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
overlay_scene = ExtResource( 3 )
|
||||||
|
width_meters = 0.25
|
|
@ -37,12 +37,9 @@ func _ready() -> void:
|
||||||
ARVRServer.connect("tracker_added", self, "_tracker_changed")
|
ARVRServer.connect("tracker_added", self, "_tracker_changed")
|
||||||
ARVRServer.connect("tracker_removed", self, "_tracker_changed")
|
ARVRServer.connect("tracker_removed", self, "_tracker_changed")
|
||||||
|
|
||||||
# $OverlayViewport.overlay_width_in_meters = width_meters
|
|
||||||
$OverlayViewport.size = OverlayInit.ovr_interface.get_render_targetsize()
|
$OverlayViewport.size = OverlayInit.ovr_interface.get_render_targetsize()
|
||||||
# emit_signal("target_changed")
|
|
||||||
set_notify_transform(true)
|
set_notify_transform(true)
|
||||||
|
|
||||||
# call_deferred("load_settings") # TODO call directly (when overlays are loaded at runtime, after settings have loaded
|
|
||||||
load_settings()
|
load_settings()
|
||||||
if add_cursor or add_grabbing:
|
if add_cursor or add_grabbing:
|
||||||
var interaction_handler = load("res://addons/openvr_overlay/OverlayInteraction.tscn").instance()
|
var interaction_handler = load("res://addons/openvr_overlay/OverlayInteraction.tscn").instance()
|
||||||
|
|
|
@ -15,6 +15,11 @@ const DEF = {
|
||||||
"definition": {
|
"definition": {
|
||||||
"type": "dict",
|
"type": "dict",
|
||||||
"definition": {
|
"definition": {
|
||||||
|
"type": {
|
||||||
|
"name": "Overlay type",
|
||||||
|
"type": "string",
|
||||||
|
"default": "UI_demo"
|
||||||
|
},
|
||||||
"width": {
|
"width": {
|
||||||
"name": "Width (m)",
|
"name": "Width (m)",
|
||||||
"type": "number",
|
"type": "number",
|
||||||
|
@ -55,6 +60,7 @@ const DEF = {
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
"main": {
|
"main": {
|
||||||
|
"type": "MainOverlay",
|
||||||
"width": 0.4,
|
"width": 0.4,
|
||||||
"target": "left",
|
"target": "left",
|
||||||
"fallback": ["left", "right", "head"],
|
"fallback": ["left", "right", "head"],
|
||||||
|
|
33
ovr-utils/overlay_manager.gd
Normal file
33
ovr-utils/overlay_manager.gd
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
|
||||||
|
var loaded := false
|
||||||
|
|
||||||
|
|
||||||
|
func _init() -> void:
|
||||||
|
Settings.connect("settings_loaded", self, "_load_overlays")
|
||||||
|
|
||||||
|
|
||||||
|
func _load_overlays():
|
||||||
|
if loaded:
|
||||||
|
return
|
||||||
|
loaded = true
|
||||||
|
print("Loading in overlays")
|
||||||
|
for key in Settings.s.overlays:
|
||||||
|
# TODO remove this check, settings should always contain "type"
|
||||||
|
if Settings.s.overlays[key].has("type"):
|
||||||
|
add_overlay(Settings.s.overlays[key].type, key)
|
||||||
|
else:
|
||||||
|
print("No type defined for overlay ", key)
|
||||||
|
|
||||||
|
|
||||||
|
func add_overlay(type, name):
|
||||||
|
var scene = load("res://overlays/" + type + ".tscn")
|
||||||
|
if scene == null:
|
||||||
|
print("Unknown overlay type; ", type, ". Skipping overlay \"", name, "\"")
|
||||||
|
return
|
||||||
|
var instance = preload("res://addons/openvr_overlay/OverlayInstance.tscn").instance()
|
||||||
|
instance.name = name
|
||||||
|
instance.overlay_scene = scene
|
||||||
|
add_child(instance)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=6 format=2]
|
[gd_scene load_steps=6 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://overlays/battery.gd" type="Script" id=1]
|
[ext_resource path="res://overlay_scripts/battery.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id=3]
|
[sub_resource type="StyleBoxEmpty" id=3]
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=5 format=2]
|
[gd_scene load_steps=5 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://overlays/time.gd" type="Script" id=1]
|
[ext_resource path="res://overlay_scripts/time.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxFlat" id=1]
|
[sub_resource type="StyleBoxFlat" id=1]
|
|
@ -1,49 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://overlays/fps.gd" type="Script" id=1]
|
|
||||||
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
|
||||||
|
|
||||||
[sub_resource type="DynamicFont" id=1]
|
|
||||||
size = 48
|
|
||||||
font_data = ExtResource( 2 )
|
|
||||||
|
|
||||||
[node name="Overlay" type="Control"]
|
|
||||||
modulate = Color( 1, 1, 1, 0.490196 )
|
|
||||||
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="ColorRect" parent="."]
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -222.0
|
|
||||||
margin_top = -32.0
|
|
||||||
margin_right = 222.0
|
|
||||||
margin_bottom = 32.0
|
|
||||||
color = Color( 0, 0, 0, 0.392157 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="ColorRect"]
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -512.0
|
|
||||||
margin_top = -33.5
|
|
||||||
margin_right = 512.0
|
|
||||||
margin_bottom = 33.5
|
|
||||||
custom_fonts/font = SubResource( 1 )
|
|
||||||
text = "Overlay FPS: 60"
|
|
||||||
align = 1
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_use_anchors_": false
|
|
||||||
}
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=9 format=2]
|
[gd_scene load_steps=9 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://overlays/move_overlay.gd" type="Script" id=1]
|
[ext_resource path="res://overlay_scripts/ui_demo.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
[ext_resource path="res://fonts/OpenSans-Regular.ttf" type="DynamicFontData" id=2]
|
||||||
[ext_resource path="res://fonts/OpenSans-Bold.ttf" type="DynamicFontData" id=3]
|
[ext_resource path="res://fonts/OpenSans-Bold.ttf" type="DynamicFontData" id=3]
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ margin_right = 111.0
|
||||||
margin_bottom = 41.0
|
margin_bottom = 41.0
|
||||||
theme = SubResource( 2 )
|
theme = SubResource( 2 )
|
||||||
text = "Item 0"
|
text = "Item 0"
|
||||||
selected = 0
|
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
extends Label
|
|
||||||
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
if delta > 0:
|
|
||||||
text = "Overlay FPS: " + str(round(1/delta))
|
|
|
@ -1,19 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://overlays/xyz_widget/zx.tscn" type="PackedScene" id=2]
|
|
||||||
[ext_resource path="res://overlays/xyz_widget/yz.tscn" type="PackedScene" id=7]
|
|
||||||
[ext_resource path="res://addons/openvr_overlay/OverlayInstance.tscn" type="PackedScene" id=9]
|
|
||||||
|
|
||||||
[node name="XYZ Widget" type="Spatial"]
|
|
||||||
|
|
||||||
[node name="YZ" parent="." instance=ExtResource( 9 )]
|
|
||||||
transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0 )
|
|
||||||
target = 1
|
|
||||||
overlay_scene = ExtResource( 7 )
|
|
||||||
width_meters = 0.25
|
|
||||||
|
|
||||||
[node name="ZX" parent="." instance=ExtResource( 9 )]
|
|
||||||
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 )
|
|
||||||
target = 1
|
|
||||||
overlay_scene = ExtResource( 2 )
|
|
||||||
width_meters = 0.25
|
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://overlays/xyz_widget/yz_widget.png" type="Texture" id=1]
|
[ext_resource path="res://textures/yz_widget.png" type="Texture" id=1]
|
||||||
|
|
||||||
[node name="Control" type="Control"]
|
[node name="Control" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://overlays/xyz_widget/zx_widget.png" type="Texture" id=1]
|
[ext_resource path="res://textures/zx_widget.png" type="Texture" id=1]
|
||||||
|
|
||||||
[node name="Control" type="Control"]
|
[node name="Control" type="Control"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
|
@ -14,7 +14,7 @@ config/name="ovr-utils"
|
||||||
run/main_scene="res://Main.tscn"
|
run/main_scene="res://Main.tscn"
|
||||||
config/use_custom_user_dir=true
|
config/use_custom_user_dir=true
|
||||||
config/custom_user_dir_name="ovr-utils"
|
config/custom_user_dir_name="ovr-utils"
|
||||||
config/icon="res://icon.png"
|
config/icon="res://textures/icon.png"
|
||||||
|
|
||||||
[autoload]
|
[autoload]
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
path="res://.import/icon.png-f931f6b997c470ed41f337ac62349254.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://icon.png"
|
source_file="res://textures/icon.png"
|
||||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
dest_files=[ "res://.import/icon.png-f931f6b997c470ed41f337ac62349254.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 103 B After Width: | Height: | Size: 103 B |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/yz_widget.png-b9fa885c579466828b6d0caddc809e49.stex"
|
path="res://.import/yz_widget.png-601835b538a8dc18e155517b6b8d1aa6.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://overlays/xyz_widget/yz_widget.png"
|
source_file="res://textures/yz_widget.png"
|
||||||
dest_files=[ "res://.import/yz_widget.png-b9fa885c579466828b6d0caddc809e49.stex" ]
|
dest_files=[ "res://.import/yz_widget.png-601835b538a8dc18e155517b6b8d1aa6.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Before Width: | Height: | Size: 94 B After Width: | Height: | Size: 94 B |
|
@ -2,15 +2,15 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="StreamTexture"
|
type="StreamTexture"
|
||||||
path="res://.import/zx_widget.png-b7f8f97d1c970429dd17d72af3b467a5.stex"
|
path="res://.import/zx_widget.png-5f9e84560ac9e1e5c37ee8a06256191f.stex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://overlays/xyz_widget/zx_widget.png"
|
source_file="res://textures/zx_widget.png"
|
||||||
dest_files=[ "res://.import/zx_widget.png-b7f8f97d1c970429dd17d72af3b467a5.stex" ]
|
dest_files=[ "res://.import/zx_widget.png-5f9e84560ac9e1e5c37ee8a06256191f.stex" ]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
Loading…
Reference in a new issue