diff options
Diffstat (limited to 'Ship.gd')
-rw-r--r-- | Ship.gd | 31 |
1 files changed, 14 insertions, 17 deletions
@@ -2,32 +2,29 @@ extends RigidBody export var ang_acceleration = 240.0 +onready var player_cam_pivot = $"fps_controller" +onready var player_cam = player_cam_pivot.get_node("Camera") +onready var ship_cam_pivot = $"CameraPivot" +onready var ship_cam = ship_cam_pivot.get_node("Camera") + func lock_camera_to_boat(): - var boat = self - var cam = $"CameraPivot" - cam.look_at_from_position(Basis(Vector3.UP*boat.global_transform.basis.get_euler().y) * (boat.global_transform.origin + Vector3.UP*50.0 + Vector3.BACK*70.0), boat.global_transform.origin, Vector3.UP) - var boat_direction = boat.global_transform.basis - boat_direction = Basis(Vector3.UP*boat_direction.get_euler().y) - cam.global_transform.basis = boat_direction - cam.global_transform.origin.y = 50.0 + player_cam_pivot.global_transform.basis = Basis(Vector3.UP*player_cam_pivot.global_transform.basis.get_euler().y) + ship_cam_pivot.global_transform.basis = Basis(Vector3.UP*ship_cam_pivot.global_transform.basis.get_euler().y) func _physics_process(_delta): if Input.is_action_just_pressed("camera_swap"): - var cam = $"CameraPivot/Camera" - if cam.current: - $"/root/Main/fps_controller/Camera".current = true + if ship_cam.current: + player_cam.current = true else: - cam.current = true + ship_cam.current = true lock_camera_to_boat() func _input(event): - var pivot = $"CameraPivot" - var cam = pivot.get_node("Camera") if event is InputEventMouseMotion: - cam.rotation.x += -event.relative.y * Settings.mouse_sens - cam.rotation.x = clamp(cam.rotation.x, -1.2, 1.2) - cam.rotation.y += -event.relative.x * Settings.mouse_sens - cam.rotation.y = wrapf(cam.rotation.y, 0, TAU) + ship_cam.rotation.x += -event.relative.y * Settings.mouse_sens + ship_cam.rotation.x = clamp(ship_cam.rotation.x, -1.2, 1.2) + ship_cam.rotation.y += -event.relative.x * Settings.mouse_sens + ship_cam.rotation.y = wrapf(ship_cam.rotation.y, 0, TAU) func _integrate_forces(_state): var stick = Input.get_axis("ship_right","ship_left") |