diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2022-10-07 15:49:57 -0400 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2022-10-07 15:49:57 -0400 |
| commit | 7dbec964a375598d454e04719576eb6c469a5d7b (patch) | |
| tree | fa819e5e843ecdd88375ad1806ab43358b1ea670 /godot/scripts/vehicles | |
| parent | 62c33688cf2f48d7669790a89e3d1cdec16798be (diff) | |
ai work
Diffstat (limited to 'godot/scripts/vehicles')
| -rw-r--r-- | godot/scripts/vehicles/Airplane.gd | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/godot/scripts/vehicles/Airplane.gd b/godot/scripts/vehicles/Airplane.gd index 9762457..8ac755b 100644 --- a/godot/scripts/vehicles/Airplane.gd +++ b/godot/scripts/vehicles/Airplane.gd @@ -23,9 +23,10 @@ var parentvel = [Vector3.ZERO, Vector3.ZERO] export var roll_curve : CurveTexture #net machine variables -var in_use : bool = false -var user = null -var world = null +var in_use: bool = false +var user: RigidBody = null +var world: Spatial = null +var controllable: bool = true func get_init_info(): return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "in_use" : in_use} @@ -81,7 +82,7 @@ func direction_input(fwd,bwd,left,right,_left2,_right2): func misc_input(_ctrl,space,shift): brake_control = shift if space > 0.1 and !boosting: #if boost is pressed - trigger_boost() + rpc("trigger_boost") func mouse_input(_m1,_m3,_m2): #used for long-press actions pass @@ -91,32 +92,36 @@ func _ready(): countdown = boost_length brake = 5 -func trigger_boost(): - print("boosting") +remotesync func trigger_boost(): boosting = true $"%RocketTrail".emitting = true +remotesync func end_boost(): + $"%RocketTrail".emitting = false + print("stopped boosting") + boosting = false + countdown = boost_length + func _process(delta): if is_network_master(): if boosting and countdown <= 0: - $"%RocketTrail".emitting = false - print("stopped boosting") - boosting = false - countdown = boost_length + rpc("end_boost") func _physics_process(delta): + if boosting: + add_force(global_transform.basis.x*booster_force,Vector3.ZERO) + countdown -= delta if in_use and user.get_network_master() == world.client_id: user.global_transform.origin = $Cockpit.global_transform.origin user.global_transform.basis = $Cockpit.global_transform.basis.orthonormalized() + user.set_linear_velocity(get_linear_velocity()) if is_network_master(): $rearwheel.brake = lerp($rearwheel.brake, brake_force*brake_control, 0.05) v_angle = atan2(global_transform.basis.x.y,sqrt(global_transform.basis.x.z*global_transform.basis.x.z + global_transform.basis.x.x*global_transform.basis.x.x)) roll_angle = global_transform.basis.x.cross(Vector3.UP).angle_to($rightaileron.global_transform.origin-$wingcenter.global_transform.origin) if $rightaileron.global_transform.origin.y < $leftaileron.global_transform.origin.y: roll_angle *= -1 - if boosting: - add_force(global_transform.basis.x*booster_force,Vector3.ZERO) - countdown -= delta + #print(linear_velocity.length()) #slow plane by drag and gravity |
