1
- extends State
1
+ extends CameraState
2
2
"""
3
3
Parent state for all camera based states for the Camera. Handles input based on
4
4
mouse/gamepad and movement and configuration based on which state we're using.
@@ -9,7 +9,7 @@ logic contained in a central location while being easily modifiable.
9
9
"""
10
10
11
11
12
- onready var aim_target : Sprite3D = owner . get_node ( "AimTarget" )
12
+ onready var aim_target : Sprite3D
13
13
14
14
export var is_y_inverted : = true
15
15
export var fov_default : = 70.0
@@ -26,10 +26,11 @@ var _is_aiming: = false
26
26
func _ready ():
27
27
Input .set_mouse_mode (Input .MOUSE_MODE_CAPTURED )
28
28
yield (owner , "ready" )
29
+ aim_target = camera_rig .aim_target
29
30
30
31
31
32
func physics_process (delta : float ) -> void :
32
- owner .global_transform .origin = owner .player .global_transform .origin + owner ._position_start
33
+ camera_rig .global_transform .origin = camera_rig .player .global_transform .origin + camera_rig ._position_start
33
34
34
35
var look_direction : = get_look_direction ()
35
36
var move_direction : = get_move_direction ()
@@ -44,12 +45,12 @@ func physics_process(delta: float) -> void:
44
45
if not is_moving_towards_camera and not _is_aiming :
45
46
auto_rotate (move_direction )
46
47
47
- owner .rotation .y = wrapf (owner .rotation .y , - PI , PI )
48
+ camera_rig .rotation .y = wrapf (camera_rig .rotation .y , - PI , PI )
48
49
49
- if owner .camera .fov != _fov_current :
50
- owner .camera .fov = lerp (owner .camera .fov , _fov_current , 0.05 )
50
+ if camera_rig .camera .fov != _fov_current :
51
+ camera_rig .camera .fov = lerp (camera_rig .camera .fov , _fov_current , 0.05 )
51
52
52
- owner .spring_arm .translation = lerp (owner .spring_arm .translation , owner ._position_start + _offset , 0.05 )
53
+ camera_rig .spring_arm .translation = lerp (camera_rig .spring_arm .translation , camera_rig ._position_start + _offset , 0.05 )
53
54
54
55
55
56
func enter (msg : Dictionary = {}) -> void :
@@ -59,13 +60,13 @@ func enter(msg: Dictionary = {}) ->void:
59
60
60
61
61
62
func auto_rotate (move_direction : Vector3 ) -> void :
62
- var offset : float = owner .player .rotation .y - owner .rotation .y
63
+ var offset : float = camera_rig .player .rotation .y - camera_rig .rotation .y
63
64
var target_angle : float = (
64
- owner .player .rotation .y - 2 * PI if offset > PI
65
- else owner .player .rotation .y + 2 * PI if offset < - PI
66
- else owner .player .rotation .y
65
+ camera_rig .player .rotation .y - 2 * PI if offset > PI
66
+ else camera_rig .player .rotation .y + 2 * PI if offset < - PI
67
+ else camera_rig .player .rotation .y
67
68
)
68
- owner .rotation .y = lerp (owner .rotation .y , target_angle , 0.015 )
69
+ camera_rig .rotation .y = lerp (camera_rig .rotation .y , target_angle , 0.015 )
69
70
70
71
71
72
func unhandled_input (event : InputEvent ) -> void :
@@ -83,12 +84,12 @@ func unhandled_input(event: InputEvent) -> void:
83
84
84
85
func process_camera_input (input : Vector2 ) -> void :
85
86
if input .x != 0 :
86
- owner .rotation .y -= input .x
87
+ camera_rig .rotation .y -= input .x
87
88
if input .y != 0 :
88
89
var angle : = input .y
89
- owner .rotation .x -= angle * - 1.0 if is_y_inverted else angle
90
- owner .rotation .x = clamp (owner .rotation .x , - 0.75 , 1.25 )
91
- owner .rotation .z = 0
90
+ camera_rig .rotation .x -= angle * - 1.0 if is_y_inverted else angle
91
+ camera_rig .rotation .x = clamp (camera_rig .rotation .x , - 0.75 , 1.25 )
92
+ camera_rig .rotation .z = 0
92
93
93
94
94
95
"""
0 commit comments