From d80381c4894fe53b99858bcbeae22564898ce5ae Mon Sep 17 00:00:00 2001 From: veclavtalica Date: Tue, 11 Feb 2025 18:40:14 +0300 Subject: [PATCH] make players collider with water bombs --- src/ingame/pipe.tscn | 1 + src/ingame/player.gd | 1 + src/ingame/water_bomb.gd | 5 +++++ src/ingame/water_bomb.tscn | 1 + 4 files changed, 8 insertions(+) diff --git a/src/ingame/pipe.tscn b/src/ingame/pipe.tscn index 187bf93..701059e 100644 --- a/src/ingame/pipe.tscn +++ b/src/ingame/pipe.tscn @@ -18,6 +18,7 @@ _projectile_holder = NodePath("ProjectileHolder") _production_timer = NodePath("DropTimer") [node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."] +_spawnable_scenes = PackedStringArray("res://src/ingame/water_bomb.tscn") spawn_path = NodePath("../ProjectileHolder") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] diff --git a/src/ingame/player.gd b/src/ingame/player.gd index 08d3fe9..a3b5b62 100644 --- a/src/ingame/player.gd +++ b/src/ingame/player.gd @@ -87,6 +87,7 @@ func _unhandled_input(event: InputEvent) -> void: _projectile_holder.add_child(new_projectile, true) _set_projectile_authority.rpc(new_projectile.get_path(), id) new_projectile.set_global_pos.rpc(_projectile_point.global_position) + new_projectile.sender_body = self new_projectile.body.process_mode = Node.PROCESS_MODE_INHERIT new_projectile.body.linear_velocity = -_camera.global_basis.z * _projectile_speed diff --git a/src/ingame/water_bomb.gd b/src/ingame/water_bomb.gd index 6b2c93d..75d30a6 100644 --- a/src/ingame/water_bomb.gd +++ b/src/ingame/water_bomb.gd @@ -10,6 +10,8 @@ extends Node3D var _in_splash_range := {} +## something to ignore +var sender_body: PhysicsBody3D func _ready() -> void: body.process_mode = Node.PROCESS_MODE_DISABLED @@ -30,6 +32,9 @@ func _disable_body() -> void: func _on_body_entered(p_body: Node3D) -> void: + if p_body == sender_body: + return + if p_body.is_in_group("voids"): queue_free() return diff --git a/src/ingame/water_bomb.tscn b/src/ingame/water_bomb.tscn index 2875885..53bb5c0 100644 --- a/src/ingame/water_bomb.tscn +++ b/src/ingame/water_bomb.tscn @@ -81,6 +81,7 @@ draw_pass_1 = SubResource("SphereMesh_bhdh4") [node name="RigidBody3D" type="RigidBody3D" parent="."] top_level = true collision_layer = 4 +collision_mask = 3 contact_monitor = true max_contacts_reported = 1 linear_damp_mode = 1