From aaaa8a80a50c470d47a615f21eb0bd4b4bca72cb Mon Sep 17 00:00:00 2001 From: Gary Steven K Date: Sat, 14 Dec 2024 23:35:10 -0500 Subject: [PATCH] update changes IT ALMOST WORKS --- .../core/player-controller/scripts/player.gd | 8 +++---- assets/core/ships/ship_script.gd | 24 ++++++++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/assets/core/player-controller/scripts/player.gd b/assets/core/player-controller/scripts/player.gd index d4085ce..40f1d5a 100644 --- a/assets/core/player-controller/scripts/player.gd +++ b/assets/core/player-controller/scripts/player.gd @@ -55,13 +55,12 @@ func _physics_process(delta: float) -> void: if is_piloting: # global_transform.basis = current_ship.global_transform.basis global_rotation.y = current_ship.global_rotation.y - velocity = walk(delta) + _gravity(delta) + _jump(delta) + else: velocity = walk(delta) + _gravity(delta) + _jump(delta) - - else: velocity = walk(delta) + _gravity(delta) + _jump(delta) + global_rotation.x = 0.0 global_rotation.z = 0.0 @@ -98,7 +97,8 @@ func _handle_joypad_camera_rotation(delta: float, sens_mod: float = 1.0) -> void func walk(delta: float) -> Vector3: if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: move_dir = Input.get_vector("move_left", "move_right", "move_forwards", "move_backwards") - var walk_dir: Vector3 = Vector3(move_dir.x, 0, move_dir.y).normalized() + var _forward: Vector3 = camera.global_transform.basis * Vector3(move_dir.x, 0, move_dir.y) + var walk_dir: Vector3 = Vector3(_forward.x, 0, _forward.z).normalized() walk_vel = walk_vel.move_toward(walk_dir * speed * move_dir.length(), acceleration * delta) return walk_vel diff --git a/assets/core/ships/ship_script.gd b/assets/core/ships/ship_script.gd index c81b1ae..00d1e4f 100644 --- a/assets/core/ships/ship_script.gd +++ b/assets/core/ships/ship_script.gd @@ -18,6 +18,7 @@ var ship_is_piloted: bool = false @export var move_speed: float = 10.0 @export var acceleration: float = 10.0 @export var deceleration: float = 20.0 +var player_on_ship: bool = false func _ready(): @@ -48,12 +49,13 @@ func _physics_process(delta): elif Input.is_action_pressed("crouch"): linear_velocity.y -= lift_speed - if Input.is_action_pressed("move_forwards"): - var forward_force = (((-transform.basis.z * move_speed) - linear_velocity) * mass).normalized() - apply_central_force(forward_force) - elif Input.is_action_pressed("move_backwards"): - var forward_force = (((transform.basis.z * move_speed) - linear_velocity) * mass).normalized() - apply_central_force(forward_force) + if player_on_ship: + if Input.is_action_pressed("move_forwards"): + var forward_force = (((-transform.basis.z * move_speed) - linear_velocity) * mass).normalized() + apply_central_force(forward_force) + elif Input.is_action_pressed("move_backwards"): + var forward_force = (((transform.basis.z * move_speed) - linear_velocity) * mass).normalized() + apply_central_force(forward_force) angular_velocity.y = clamp(angular_velocity.y, -max_turn_speed, max_turn_speed) @@ -65,10 +67,12 @@ func _physics_process(delta): func _on_area_3d_body_entered(body): if body is Player: + print(self.name) body.player_entered_ship(global_position, self) piloting_player = body - print(self.name) - body.reparent(self, true) + if !player_on_ship: + body.reparent(self, true) + player_on_ship = true func _on_area_3d_body_exited(body): @@ -76,7 +80,9 @@ func _on_area_3d_body_exited(body): body.player_exited_ship(global_position, self) ship_is_piloted = false piloting_player = null - body.reparent(get_node("/root/Devlevel"), true) + if player_on_ship: + body.reparent(get_node("/root/DevLevel/"), true) + player_on_ship = false func _add_ship_helm(_ship_helm_scene: PackedScene):