|
@@ -81,6 +81,7 @@ func _apply_plane_rotation() -> void:
|
|
|
func _apply_plane_thrust() -> void:
|
|
|
var force: Vector3 = transform.basis * target_thrust
|
|
|
apply_central_force(force)
|
|
|
+ debug_central_force(force, $ArrowForceThrust)
|
|
|
|
|
|
|
|
|
func _apply_wing_resistance() -> void:
|
|
@@ -88,6 +89,7 @@ func _apply_wing_resistance() -> void:
|
|
|
local_wing_force = Vector3.UP * -wing_resistance * vertical_speed
|
|
|
var wing_force = transform.basis * local_wing_force
|
|
|
apply_central_force(wing_force)
|
|
|
+ #debug_central_force(wing_force, $ArrowForceWing)
|
|
|
|
|
|
|
|
|
func _apply_foil_resistance() -> void:
|
|
@@ -95,6 +97,7 @@ func _apply_foil_resistance() -> void:
|
|
|
horizontal_speed = linear_velocity.dot(transform.basis * Vector3.RIGHT)
|
|
|
local_foil_force = Vector3.RIGHT * -foil_resistance * horizontal_speed
|
|
|
apply_force(local_foil_force, foil_position)
|
|
|
+ debug_force(local_foil_force, foil_position, $ArrowForceFoil)
|
|
|
|
|
|
|
|
|
func _apply_lift() -> void:
|
|
@@ -104,6 +107,7 @@ func _apply_lift() -> void:
|
|
|
local_lift_force = Vector3.UP * lift * forward_speed
|
|
|
var lift_force = transform.basis * local_lift_force
|
|
|
apply_central_force(lift_force)
|
|
|
+ debug_central_force(lift_force, $ArrowForceLift)
|
|
|
|
|
|
|
|
|
func _on_dir_changed(dir: Vector2) -> void:
|
|
@@ -112,3 +116,26 @@ func _on_dir_changed(dir: Vector2) -> void:
|
|
|
|
|
|
func _on_main_action(pressed: bool) -> void:
|
|
|
trigger_thrust(pressed)
|
|
|
+
|
|
|
+
|
|
|
+func debug_central_force(force: Vector3, arrow: Node3D) -> void:
|
|
|
+ if force.is_zero_approx():
|
|
|
+ arrow.hide()
|
|
|
+ return
|
|
|
+ else:
|
|
|
+ arrow.show()
|
|
|
+
|
|
|
+ arrow.look_at(force)
|
|
|
+ arrow.set_scale(Vector3.ONE * force.length() / 1000.0)
|
|
|
+
|
|
|
+
|
|
|
+func debug_force(force: Vector3, pos: Vector3, arrow: Node3D) -> void:
|
|
|
+ if force.is_zero_approx():
|
|
|
+ arrow.hide()
|
|
|
+ return
|
|
|
+ else:
|
|
|
+ arrow.show()
|
|
|
+
|
|
|
+ arrow.set_position(pos)
|
|
|
+ arrow.look_at(force)
|
|
|
+ arrow.set_scale(Vector3.ONE * force.length() / 1000.0)
|