From e616fc4cbbae40a8c70aca11db6128882b5d234f Mon Sep 17 00:00:00 2001 From: Simon Ward Date: Thu, 22 Jan 2026 20:42:01 +1300 Subject: [PATCH] gears: make balls despawn after 5 seconds Add timer to the ball, which allows the ball to despawn after a certain amount of time. Co-authored-by: Simon Ward Co-committed-by: Simon Ward --- gears/ball.gd | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gears/ball.gd b/gears/ball.gd index 098ce8d..fc30219 100644 --- a/gears/ball.gd +++ b/gears/ball.gd @@ -6,10 +6,14 @@ func gear_id(): return 1 func continuous(): return false + +func kill_ball(ball): + ball.queue_free() func make_ball(player): var ball = RigidBody3D.new() var cs = CollisionShape3D.new() + var timer = Timer.new() cs.shape = SphereShape3D.new() ball.name = "Ball" ball.mass = 4 @@ -20,11 +24,16 @@ func make_ball(player): ball.set_collision_layer_value(1, false) ball.set_collision_layer_value(3, true) ball.set_collision_mask_value(3, true) + timer.one_shot = true + timer.autostart = true + timer.wait_time = 5 + timer.timeout.connect(kill_ball.bind(ball)) var mesh = $GearMesh.duplicate() mesh.position = Vector3.ZERO ball.add_child(mesh) ball.add_child(cs) + ball.add_child(timer) return ball