summaryrefslogtreecommitdiff
path: root/scripts/boats/Gunboat.gd
diff options
context:
space:
mode:
authorAnson Bridges <bridges.anson@gmail.com>2022-09-04 14:57:56 -0700
committerAnson Bridges <bridges.anson@gmail.com>2022-09-04 14:57:56 -0700
commita0967ebe815cd229b69fb9578f2288b95b2ddb28 (patch)
treece1b06b1d8226c64e3550d674df96a2308f18130 /scripts/boats/Gunboat.gd
parent5dbe6302e437c5c1d4431b853c410aa1d52f9b3d (diff)
networked machine project. added broken airplane from previous project
Diffstat (limited to 'scripts/boats/Gunboat.gd')
-rw-r--r--scripts/boats/Gunboat.gd124
1 files changed, 0 insertions, 124 deletions
diff --git a/scripts/boats/Gunboat.gd b/scripts/boats/Gunboat.gd
deleted file mode 100644
index 6f4f807..0000000
--- a/scripts/boats/Gunboat.gd
+++ /dev/null
@@ -1,124 +0,0 @@
-extends RigidBody
-
-
-# Declare member variables here. Examples:
-# var a = 2
-# var b = "text"
-var in_use : bool = false
-var user = null
-var world = null
-
-export var team = 0
-
-const accel = 50000
-const turn_accel = 50000
-
-export(float, 0.0, 1.0) var sail_out = 0.0
-export var sail_speed : float = 0.5
-var sail_turn = 0
-export var sail_turn_speed = 30
-const SAIL_MAX = 90
-
-var rudder_turn : float = 0.0
-export var rudder_speed = 25
-export var rudder_constant = 1800
-const RUDDER_MAX = 60
-
-const health_max = 1000
-var health = health_max
-const max_depth = 2
-
-#controls
-var throttle: float = 0.0
-var rudder: float = 0.0
-var mainsheet: float = 0.0
-
-func get_init_info():
- return {"sail_out" : sail_out, "rudder_turn" : rudder_turn, "sail_turn" : sail_turn, "health" : health, "in_use" : in_use}
-
-func mp_init(init_info):
- for variable in init_info.keys():
- set(variable, init_info[variable])
-
-# Called when the node enters the scene tree for the first time.
-func _ready():
- world = get_tree().get_root().find_node("GAMEWORLD", true, false)
- mass = 13500
- weight = mass * 9.8
-
-func is_in_use():
- return in_use
-
-func take_control(controller):
- user = controller
- in_use = true
- return self
-
-func relinquish_control():
- in_use = false
- rudder = 0.0
- throttle = 0.0
- mainsheet = 0.0
- user = null
-
-func auto_sail(delta):
- 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:
- sail_turn -= sail_turn_speed*delta
- else:
- sail_turn += sail_turn_speed*delta
- else:
- if abs(Vector2(world.winddir.x, world.winddir.z).angle_to(Vector2(global_transform.basis.z.x,global_transform.basis.z.z))) < PI/2:
- sail_turn -= sail_turn_speed*delta
- else:
- sail_turn += sail_turn_speed*delta
-
-func attack1():
- pass
-
-func attack2():
- pass
-
-func direction_input(fwd,bwd,left,right,_left,_right):
- throttle = fwd - bwd
- rudder = left - right
- mainsheet = _left - _right
-
-remotesync func damage(amount, _type, shooter, extra = ""):
- health -= amount
- print(health)
-
-remotesync func net_apply_impulse(impulse_v):
- apply_central_impulse(impulse_v)
-
-# Called every frame. 'delta' is the elapsed time since the previous frame.
-func _physics_process(delta):
- $Mast/Sail.scale.y = 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)
- add_torque(Vector3(0,-rudder_turn*rudder_constant*(0.5+linear_velocity.dot(global_transform.basis.x)),0))
- add_torque(Vector3(-1000000*angular_velocity.x,0,0))
- add_torque(Vector3(0,0,-1000000*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():
- if area.name == "WaterArea":
- var depth = area.global_transform.origin.y-point.global_transform.origin.y
- var floatiness = 0.275 if health <= 0 else 1
- if floatiness == 0.275:
- depth = 0.05
- add_force(Vector3.UP*weight*depth*floatiness, point.global_transform.origin-global_transform.origin)
- if in_use:
- rudder_turn += rudder_speed*delta*(rudder)
- sail_out += sail_speed*delta*(throttle)
- sail_turn += sail_turn_speed*delta*(mainsheet)
- auto_sail(delta)
- sail_out = clamp(sail_out, 0, 1)
- rudder_turn = clamp(rudder_turn, -RUDDER_MAX, RUDDER_MAX)
- sail_turn = clamp(sail_turn, -SAIL_MAX, SAIL_MAX)
-
- #add_force(transform.basis.x*accel*Input.get_action_strength("move_forward"), Vector3.ZERO)