add camera settings
This commit is contained in:
parent
32236f7004
commit
510e9b0c46
|
@ -8,8 +8,6 @@ const Entity = preload ("../entity.gd")
|
||||||
@onready var http_request = $HTTPRequest
|
@onready var http_request = $HTTPRequest
|
||||||
@onready var mesh = $MeshInstance3D
|
@onready var mesh = $MeshInstance3D
|
||||||
@onready var refresh_timer = $RefreshTimer
|
@onready var refresh_timer = $RefreshTimer
|
||||||
@onready var button = $Button
|
|
||||||
@onready var slider = $Slider
|
|
||||||
|
|
||||||
var cam_active = R.state(false)
|
var cam_active = R.state(false)
|
||||||
var cam_fps = R.state(10)
|
var cam_fps = R.state(10)
|
||||||
|
@ -18,12 +16,6 @@ var cam_fps = R.state(10)
|
||||||
func _ready():
|
func _ready():
|
||||||
super()
|
super()
|
||||||
|
|
||||||
button.on_button_up.connect(func():
|
|
||||||
cam_active.value=!cam_active.value
|
|
||||||
)
|
|
||||||
|
|
||||||
R.bind(slider, "value", cam_fps, slider.on_value_changed)
|
|
||||||
|
|
||||||
R.effect(func(_arg):
|
R.effect(func(_arg):
|
||||||
refresh_timer.wait_time=1.0 / cam_fps.value
|
refresh_timer.wait_time=1.0 / cam_fps.value
|
||||||
)
|
)
|
||||||
|
@ -31,10 +23,8 @@ func _ready():
|
||||||
R.effect(func(_arg):
|
R.effect(func(_arg):
|
||||||
if cam_active.value:
|
if cam_active.value:
|
||||||
refresh_timer.start()
|
refresh_timer.start()
|
||||||
button.label="videocam"
|
|
||||||
else:
|
else:
|
||||||
refresh_timer.stop()
|
refresh_timer.stop()
|
||||||
button.label="videocam_off"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
icon.value = "photo_camera"
|
icon.value = "photo_camera"
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://content/entities/camera/camera.gd" id="1_htxq3"]
|
[ext_resource type="Script" path="res://content/entities/camera/camera.gd" id="1_htxq3"]
|
||||||
[ext_resource type="Script" path="res://content/functions/movable.gd" id="2_e2u6o"]
|
[ext_resource type="Script" path="res://content/functions/movable.gd" id="2_e2u6o"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bsjqdvkt0u87c" path="res://content/ui/components/button/button.tscn" id="3_8whxu"]
|
[ext_resource type="Script" path="res://content/functions/camera_follower.gd" id="3_j7lrc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://pk5k1q8bx0rj" path="res://content/ui/components/slider/slider.tscn" id="4_lfexu"]
|
[ext_resource type="PackedScene" uid="uid://dejilst6cwqvi" path="res://content/entities/camera/settings.tscn" id="3_qlnvv"]
|
||||||
|
|
||||||
[sub_resource type="QuadMesh" id="QuadMesh_830bv"]
|
[sub_resource type="QuadMesh" id="QuadMesh_830bv"]
|
||||||
size = Vector2(0.15, 0.15)
|
size = Vector2(0.15, 0.15)
|
||||||
|
@ -29,19 +29,11 @@ shape = SubResource("BoxShape3D_te0pn")
|
||||||
script = ExtResource("2_e2u6o")
|
script = ExtResource("2_e2u6o")
|
||||||
resizable = true
|
resizable = true
|
||||||
|
|
||||||
|
[node name="CameraFollower" type="Node" parent="."]
|
||||||
|
script = ExtResource("3_j7lrc")
|
||||||
|
|
||||||
[node name="RefreshTimer" type="Timer" parent="."]
|
[node name="RefreshTimer" type="Timer" parent="."]
|
||||||
wait_time = 0.1
|
wait_time = 0.1
|
||||||
|
|
||||||
[node name="Button" parent="." instance=ExtResource("3_8whxu")]
|
[node name="Settings" parent="." instance=ExtResource("3_qlnvv")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06, -0.1, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.24, 0, 0)
|
||||||
label = "videocam_off"
|
|
||||||
icon = true
|
|
||||||
|
|
||||||
[node name="Slider" parent="." instance=ExtResource("4_lfexu")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.02, -0.1, 0)
|
|
||||||
min = 1.0
|
|
||||||
max = 30.0
|
|
||||||
value = 1.0
|
|
||||||
step = 1.0
|
|
||||||
label_unit = "FPS"
|
|
||||||
size = Vector3(0.1, 0.02, 0.01)
|
|
||||||
|
|
26
app/content/entities/camera/settings.gd
Normal file
26
app/content/entities/camera/settings.gd
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
const Camera = preload ("./camera.gd")
|
||||||
|
|
||||||
|
@onready var close_button: Button3D = $Close
|
||||||
|
@onready var id_input: Input3D = $IDInput
|
||||||
|
@onready var video_button: Button3D = $VideoButton
|
||||||
|
@onready var fps_slider: Slider3D = $FPSSlider
|
||||||
|
|
||||||
|
var camera: Camera
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
camera = get_parent()
|
||||||
|
|
||||||
|
close_button.on_button_up.connect(func():
|
||||||
|
camera.show_settings.value=false
|
||||||
|
)
|
||||||
|
|
||||||
|
id_input.text = camera.entity_id
|
||||||
|
|
||||||
|
R.effect(func(_arg):
|
||||||
|
video_button.label="videocam" if camera.cam_active.value else "videocam_off"
|
||||||
|
)
|
||||||
|
|
||||||
|
R.bind(video_button, "active", camera.cam_active, video_button.on_toggled)
|
||||||
|
R.bind(fps_slider, "value", camera.cam_fps, fps_slider.on_value_changed)
|
98
app/content/entities/camera/settings.tscn
Normal file
98
app/content/entities/camera/settings.tscn
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
[gd_scene load_steps=9 format=3 uid="uid://dejilst6cwqvi"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" path="res://content/entities/camera/settings.gd" id="1_1ixy6"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dnam3fe36gg62" path="res://content/ui/components/panel/panel.tscn" id="1_myvk1"]
|
||||||
|
[ext_resource type="Shader" path="res://content/ui/components/panel/glass.gdshader" id="2_wwobq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://blrhy2uccrdn4" path="res://content/ui/components/input/input.tscn" id="3_dog14"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://pk5k1q8bx0rj" path="res://content/ui/components/slider/slider.tscn" id="4_t8xp5"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bsjqdvkt0u87c" path="res://content/ui/components/button/button.tscn" id="5_opf0y"]
|
||||||
|
|
||||||
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_jtvwv"]
|
||||||
|
resource_local_to_scene = true
|
||||||
|
render_priority = 10
|
||||||
|
shader = ExtResource("2_wwobq")
|
||||||
|
shader_parameter/color = Color(1, 1, 1, 0.3)
|
||||||
|
shader_parameter/border_color = Color(1, 1, 1, 1)
|
||||||
|
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
||||||
|
shader_parameter/size = Vector2(7.5, 5)
|
||||||
|
shader_parameter/border_size = 0.01
|
||||||
|
shader_parameter/border_fade_in = 0.05
|
||||||
|
shader_parameter/border_fade_out = 0.0
|
||||||
|
shader_parameter/corner_radius = 0.2
|
||||||
|
shader_parameter/roughness = 0.3
|
||||||
|
shader_parameter/grain_amount = 0.02
|
||||||
|
|
||||||
|
[sub_resource type="QuadMesh" id="QuadMesh_myer6"]
|
||||||
|
size = Vector2(0.3, 0.2)
|
||||||
|
|
||||||
|
[node name="Settings" type="Node3D"]
|
||||||
|
script = ExtResource("1_1ixy6")
|
||||||
|
|
||||||
|
[node name="Panel" parent="." instance=ExtResource("1_myvk1")]
|
||||||
|
material_override = SubResource("ShaderMaterial_jtvwv")
|
||||||
|
mesh = SubResource("QuadMesh_myer6")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
size = Vector2(0.3, 0.2)
|
||||||
|
|
||||||
|
[node name="Name" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.14, 0.07, 0)
|
||||||
|
pixel_size = 0.001
|
||||||
|
render_priority = 15
|
||||||
|
outline_render_priority = 14
|
||||||
|
text = "Camera Settings"
|
||||||
|
font_size = 24
|
||||||
|
outline_size = 0
|
||||||
|
horizontal_alignment = 0
|
||||||
|
|
||||||
|
[node name="Close" parent="." instance=ExtResource("5_opf0y")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.12, 0.07, 0)
|
||||||
|
label = "close"
|
||||||
|
icon = true
|
||||||
|
|
||||||
|
[node name="IDLabel" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.14, 0.03, 0)
|
||||||
|
pixel_size = 0.001
|
||||||
|
render_priority = 15
|
||||||
|
outline_render_priority = 14
|
||||||
|
text = "ID:"
|
||||||
|
font_size = 18
|
||||||
|
outline_size = 0
|
||||||
|
horizontal_alignment = 0
|
||||||
|
|
||||||
|
[node name="IDInput" parent="." instance=ExtResource("3_dog14")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.03, 0.03, 0)
|
||||||
|
disabled = true
|
||||||
|
|
||||||
|
[node name="VideoLabel" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.14, -0.01, 0)
|
||||||
|
pixel_size = 0.001
|
||||||
|
render_priority = 15
|
||||||
|
outline_render_priority = 14
|
||||||
|
text = "Video: "
|
||||||
|
font_size = 18
|
||||||
|
outline_size = 0
|
||||||
|
horizontal_alignment = 0
|
||||||
|
|
||||||
|
[node name="VideoButton" parent="." instance=ExtResource("5_opf0y")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06, -0.01, 0)
|
||||||
|
label = "videocam_off"
|
||||||
|
icon = true
|
||||||
|
|
||||||
|
[node name="FPSLabel" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.14, -0.05, 0)
|
||||||
|
pixel_size = 0.001
|
||||||
|
render_priority = 15
|
||||||
|
outline_render_priority = 14
|
||||||
|
text = "Refresh Rate: "
|
||||||
|
font_size = 18
|
||||||
|
outline_size = 0
|
||||||
|
horizontal_alignment = 0
|
||||||
|
|
||||||
|
[node name="FPSSlider" parent="." instance=ExtResource("4_t8xp5")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.04, -0.05, 0)
|
||||||
|
min = 1.0
|
||||||
|
max = 30.0
|
||||||
|
value = 1.0
|
||||||
|
step = 1.0
|
||||||
|
label_unit = "FPS"
|
||||||
|
size = Vector3(0.11, 0.02, 0.01)
|
|
@ -1,16 +1,35 @@
|
||||||
extends StaticBody3D
|
extends StaticBody3D
|
||||||
|
|
||||||
|
var camera_follower: CameraFollower
|
||||||
|
|
||||||
@export var entity_id: String
|
@export var entity_id: String
|
||||||
var icon = R.state("question_mark")
|
var icon = R.state("question_mark")
|
||||||
var icon_color = R.state(Color(1, 1, 1, 1))
|
var icon_color = R.state(Color(1, 1, 1, 1))
|
||||||
|
var show_settings = R.state(false)
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
var movable = get_node("Movable")
|
var movable = get_node("Movable")
|
||||||
|
camera_follower = get_node_or_null("CameraFollower")
|
||||||
|
|
||||||
|
if camera_follower == null:
|
||||||
|
camera_follower = CameraFollower.new()
|
||||||
|
add_child(camera_follower)
|
||||||
|
|
||||||
|
R.effect(func(_args):
|
||||||
|
if show_settings.value == true:
|
||||||
|
camera_follower.enabled=true
|
||||||
|
)
|
||||||
|
|
||||||
if movable:
|
if movable:
|
||||||
movable.on_moved.connect(func():
|
movable.on_moved.connect(func():
|
||||||
App.house.save_all_entities()
|
App.house.save_all_entities()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func set_options(_options):
|
||||||
|
return
|
||||||
|
|
||||||
func get_options():
|
func get_options():
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
func toggle_settings():
|
||||||
|
show_settings.value = !show_settings.value
|
|
@ -15,7 +15,6 @@ const Entity = preload ("../entity.gd")
|
||||||
@onready var snap_sound = $SnapSound
|
@onready var snap_sound = $SnapSound
|
||||||
@onready var settings = $Settings
|
@onready var settings = $Settings
|
||||||
@onready var movable = $Movable
|
@onready var movable = $Movable
|
||||||
@onready var camera_follower = $CameraFollower
|
|
||||||
|
|
||||||
var active = R.state(false)
|
var active = R.state(false)
|
||||||
var brightness = R.state(0) # 0-255
|
var brightness = R.state(0) # 0-255
|
||||||
|
@ -25,7 +24,6 @@ var color_wheel_supported = R.state(false)
|
||||||
var show_brightness = R.state(true)
|
var show_brightness = R.state(true)
|
||||||
var show_modes = R.state(true)
|
var show_modes = R.state(true)
|
||||||
var modes_supported = R.state(false)
|
var modes_supported = R.state(false)
|
||||||
var show_settings = R.state(false)
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
|
@ -168,13 +166,6 @@ func quick_action():
|
||||||
func _toggle():
|
func _toggle():
|
||||||
HomeApi.set_state(entity_id, "off" if active.value else "on")
|
HomeApi.set_state(entity_id, "off" if active.value else "on")
|
||||||
|
|
||||||
func toggle_settings():
|
|
||||||
if show_settings.value == false:
|
|
||||||
show_settings.value = true
|
|
||||||
camera_follower.enabled = true
|
|
||||||
else:
|
|
||||||
show_settings.value = false
|
|
||||||
|
|
||||||
func get_options():
|
func get_options():
|
||||||
return {
|
return {
|
||||||
"color_wheel": show_color_wheel.value,
|
"color_wheel": show_color_wheel.value,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=11 format=3 uid="uid://cw86rc42dv2d8"]
|
[gd_scene load_steps=11 format=3 uid="uid://4smofj8ou0g7"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://content/entities/light/light.gd" id="1_ykxy3"]
|
[ext_resource type="Script" path="res://content/entities/light/light.gd" id="1_ykxy3"]
|
||||||
[ext_resource type="Script" path="res://content/functions/movable.gd" id="4_4sfxb"]
|
[ext_resource type="Script" path="res://content/functions/movable.gd" id="4_4sfxb"]
|
||||||
|
@ -24,6 +24,11 @@ shape = SubResource("SphereShape3D_ukj14")
|
||||||
script = ExtResource("4_4sfxb")
|
script = ExtResource("4_4sfxb")
|
||||||
resizable = true
|
resizable = true
|
||||||
|
|
||||||
|
[node name="CameraFollower" type="Node" parent="." node_paths=PackedStringArray("focus_point")]
|
||||||
|
script = ExtResource("9_a7u7m")
|
||||||
|
enabled = false
|
||||||
|
focus_point = NodePath("../FocusPoint")
|
||||||
|
|
||||||
[node name="Lightbulb" type="CSGCombiner3D" parent="."]
|
[node name="Lightbulb" type="CSGCombiner3D" parent="."]
|
||||||
transform = Transform3D(1, 9.69949e-05, 0.000589194, -9.77749e-05, 0.999999, 0.00135802, -0.000589065, -0.00135808, 0.999999, 0, 0, 0)
|
transform = Transform3D(1, 9.69949e-05, 0.000589194, -9.77749e-05, 0.999999, 0.00135802, -0.000589065, -0.00135808, 0.999999, 0, 0, 0)
|
||||||
material_override = ExtResource("5_50gph")
|
material_override = ExtResource("5_50gph")
|
||||||
|
@ -73,11 +78,6 @@ horizontal_alignment = 0
|
||||||
stream = ExtResource("8_3togy")
|
stream = ExtResource("8_3togy")
|
||||||
volume_db = -20.0
|
volume_db = -20.0
|
||||||
|
|
||||||
[node name="CameraFollower" type="Node" parent="." node_paths=PackedStringArray("focus_point")]
|
|
||||||
script = ExtResource("9_a7u7m")
|
|
||||||
enabled = false
|
|
||||||
focus_point = NodePath("../FocusPoint")
|
|
||||||
|
|
||||||
[node name="FocusPoint" type="Marker3D" parent="."]
|
[node name="FocusPoint" type="Marker3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.29, 0, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.29, 0, 0)
|
||||||
gizmo_extents = 0.1
|
gizmo_extents = 0.1
|
||||||
|
|
Loading…
Reference in New Issue
Block a user