summaryrefslogtreecommitdiff
path: root/godot/scripts/vehicles
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-09-19 17:44:22 -0400
committerAnson Bridges <bridges.anson@gmail.com>2022-09-19 17:44:22 -0400
commit1d347e770fddcdd051890cdf070fd2779ab113bf (patch)
tree6501fb000509819b7ba58df15c9a831c8bdc44fb /godot/scripts/vehicles
parent2fd755132f526c48fed2c1867530526971e1cf19 (diff)
problems: player controller perf, boat perf, NAVSERVER PERF
Diffstat (limited to 'godot/scripts/vehicles')
-rw-r--r--godot/scripts/vehicles/Gunboat.gd24
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():