diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2022-09-19 17:44:22 -0400 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2022-09-19 17:44:22 -0400 |
| commit | 1d347e770fddcdd051890cdf070fd2779ab113bf (patch) | |
| tree | 6501fb000509819b7ba58df15c9a831c8bdc44fb /godot/scripts/vehicles | |
| parent | 2fd755132f526c48fed2c1867530526971e1cf19 (diff) | |
problems: player controller perf, boat perf, NAVSERVER PERF
Diffstat (limited to 'godot/scripts/vehicles')
| -rw-r--r-- | godot/scripts/vehicles/Gunboat.gd | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/godot/scripts/vehicles/Gunboat.gd b/godot/scripts/vehicles/Gunboat.gd index 3137361..4c822ca 100644 --- a/godot/scripts/vehicles/Gunboat.gd +++ b/godot/scripts/vehicles/Gunboat.gd @@ -2,11 +2,11 @@ extends "res://scripts/machines/NetworkedMachineGDS.gd" export var team = 0 -const accel = 50000 +const accel = 500000 const turn_accel = 50000 export(float, 0.0, 1.0) var sail_out = 0.0 -export var sail_speed : float = 0.5 +export var sail_speed : float = 0.2 var sail_turn = 0 export var sail_turn_speed = 30 const SAIL_MAX = 90 @@ -38,7 +38,11 @@ func mp_init(init_info): # Called when the node enters the scene tree for the first time. func _ready(): + print("adding gunboat to scene",get_tree().get_network_unique_id()) world = get_tree().get_root().find_node("GAMEWORLD", true, false) + if get_tree().get_network_unique_id() == 0: + print("enabling navigation for server") + $NavigationMeshInstance.set_enabled(true) func on_no_control(): rudder = 0.0 @@ -46,6 +50,7 @@ func on_no_control(): mainsheet = 0.0 func auto_sail(delta): + return var in_range = global_transform.basis.x.dot(world.winddir) >= 0 if in_range: if Vector2(world.winddir.x, world.winddir.z).angle_to(Vector2($Mast.global_transform.basis.x.x,$Mast.global_transform.basis.x.z)) < 0: @@ -71,15 +76,16 @@ remotesync func damage(amount, _type, _shooter, _extra = ""): # Called every frame. 'delta' is the elapsed time since the previous frame. func _physics_process(delta): if is_network_master(): - $Mast/Sail.scale.y = sail_out + for sail in $SAILS.get_children(): + sail.set_sheet(sail_out) $Rudder.rotation_degrees.y = rudder_turn - $Mast.rotation_degrees.y = sail_turn - var push_force = accel*sail_out*world.winddir.dot($Mast.global_transform.basis.x) - if world.winddir.angle_to($Mast.global_transform.basis.x) < PI/2: - add_force(global_transform.basis.x*push_force, Vector3.ZERO) + #$Mast.rotation_degrees.y = sail_turn + #var push_force = accel*sail_out*world.winddir.dot($Mast.global_transform.basis.x) + #if world.winddir.angle_to($Mast.global_transform.basis.x) < PI/2: + # add_force(global_transform.basis.x*push_force, Vector3.ZERO) add_torque(Vector3(0,-rudder_turn*rudder_constant*(0.5+linear_velocity.dot(global_transform.basis.x)),0)) - add_torque(Vector3(-10000000*angular_velocity.x,0,0)) - add_torque(Vector3(0,0,-10000000*angular_velocity.z)) + add_torque(Vector3(-100000*angular_velocity.x,0,0)) + add_torque(Vector3(0,0,-100000*angular_velocity.z)) rudder_turn += rudder_speed*delta*(-0.25 if rudder_turn > 0 else 0.25) for point in $FloatPoints.get_children(): for area in point.get_overlapping_areas(): |
