Compare commits

...

2 commits

2 changed files with 55 additions and 0 deletions

View file

@ -9,9 +9,11 @@ const CAMERA_X_ROT_MIN := deg_to_rad(-85)
const CAMERA_X_ROT_MAX := deg_to_rad(70) const CAMERA_X_ROT_MAX := deg_to_rad(70)
@export var use_mouse: bool = true @export var use_mouse: bool = true
@export var pov_move_speed = 0.05
var active: bool = false var active: bool = false
var initial_rotation: Vector3 var initial_rotation: Vector3
var initial_pov_position: Vector3
@onready var camera_base = $"." @onready var camera_base = $"."
@onready var camera = $FallbackCamera @onready var camera = $FallbackCamera
@ -20,6 +22,7 @@ func _ready() -> void:
set_process(false) set_process(false)
set_process_input(false) set_process_input(false)
initial_rotation = camera.rotation initial_rotation = camera.rotation
initial_pov_position = position
func _on_aircraft_use_fallback(active_in: bool) -> void: func _on_aircraft_use_fallback(active_in: bool) -> void:
if active_in: if active_in:
@ -52,6 +55,14 @@ func _input(event):
var camera_speed_this_frame = CAMERA_MOUSE_ROTATION_SPEED var camera_speed_this_frame = CAMERA_MOUSE_ROTATION_SPEED
rotate_camera(event.relative * camera_speed_this_frame * scale_factor) rotate_camera(event.relative * camera_speed_this_frame * scale_factor)
if event.is_action_pressed("pov_reset"):
position = initial_pov_position
func _process(delta: float):
var horizontal = Input.get_vector("pov_left", "pov_right", "pov_forward", "pov_back")
var vertical = Input.get_axis("pov_down", "pov_up")
# Currently PilotEyes has Yaw 180, so horizontal axes need to be inverted
position += delta * pov_move_speed * Vector3(-horizontal.x, vertical, -horizontal.y)
func rotate_camera(move): func rotate_camera(move):
camera_base.rotate_y(-move.x) camera_base.rotate_y(-move.x)

View file

@ -25,19 +25,63 @@ window/stretch/mode="viewport"
enabled=PackedStringArray() enabled=PackedStringArray()
[input]
pov_up={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
]
}
pov_down={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":99,"location":0,"echo":false,"script":null)
]
}
pov_forward={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
]
}
pov_back={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
]
}
pov_right={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
]
}
pov_left={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
]
}
pov_reset={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null)
]
}
[physics] [physics]
common/enable_object_picking=false common/enable_object_picking=false
[rendering] [rendering]
textures/canvas_textures/default_texture_filter=2
renderer/rendering_method="gl_compatibility" renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility"
lights_and_shadows/directional_shadow/size=8192
lights_and_shadows/directional_shadow/soft_shadow_filter_quality=3
lights_and_shadows/positional_shadow/soft_shadow_filter_quality=3
anti_aliasing/quality/msaa_2d=1 anti_aliasing/quality/msaa_2d=1
anti_aliasing/quality/msaa_3d=1 anti_aliasing/quality/msaa_3d=1
lights_and_shadows/positional_shadow/atlas_size=8192
[xr] [xr]
openxr/enabled=true
openxr/reference_space=2 openxr/reference_space=2
openxr/foveation_level=3 openxr/foveation_level=3
shaders/enabled=true shaders/enabled=true