From a0967ebe815cd229b69fb9578f2288b95b2ddb28 Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Sun, 4 Sep 2022 14:57:56 -0700 Subject: networked machine project. added broken airplane from previous project --- scripts/boats/Gunboat.gd | 124 ----------------------------------------------- 1 file changed, 124 deletions(-) delete mode 100644 scripts/boats/Gunboat.gd (limited to 'scripts/boats/Gunboat.gd') 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) -- cgit v1.2.3