pick up bombs or something
This commit is contained in:
parent
d80381c489
commit
e810836675
@ -67,6 +67,11 @@ fire={
|
|||||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
pick={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":102,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[layer_names]
|
[layer_names]
|
||||||
|
|
||||||
|
@ -222,6 +222,9 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.60402, 0.396167, 2.77978)
|
|||||||
[node name="Sprout6" parent="Plants" instance=ExtResource("3_2xvqq")]
|
[node name="Sprout6" parent="Plants" instance=ExtResource("3_2xvqq")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.59598, 0.396167, 2.77978)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.59598, 0.396167, 2.77978)
|
||||||
|
|
||||||
|
[node name="Sprout19" parent="Plants" instance=ExtResource("3_2xvqq")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.27774, 0.866392, 8.06555)
|
||||||
|
|
||||||
[node name="Sprout7" parent="Plants" instance=ExtResource("3_2xvqq")]
|
[node name="Sprout7" parent="Plants" instance=ExtResource("3_2xvqq")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00401986, 0.396167, 3.37978)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00401986, 0.396167, 3.37978)
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ const JUMP_VELOCITY = 4.5
|
|||||||
@export var _projectile_point: Marker3D
|
@export var _projectile_point: Marker3D
|
||||||
@export var _camera_pivot: Node3D
|
@export var _camera_pivot: Node3D
|
||||||
@export var _camera: Camera3D
|
@export var _camera: Camera3D
|
||||||
|
@export var _line_of_sight: ShapeCast3D
|
||||||
@export var _shot_sound: AudioStreamPlayer3D
|
@export var _shot_sound: AudioStreamPlayer3D
|
||||||
|
|
||||||
@export var id: int
|
@export var id: int
|
||||||
@ -22,7 +23,7 @@ var _mouse_sensitivity := 0.008 # radians/pixel
|
|||||||
var _projectile_speed := 12.0
|
var _projectile_speed := 12.0
|
||||||
|
|
||||||
var controls_disabled := false
|
var controls_disabled := false
|
||||||
|
var held_thing: String
|
||||||
|
|
||||||
# What the others see.
|
# What the others see.
|
||||||
func _init_bystander() -> void:
|
func _init_bystander() -> void:
|
||||||
@ -72,6 +73,18 @@ func _physics_process(delta: float) -> void:
|
|||||||
move_and_slide()
|
move_and_slide()
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable")
|
||||||
|
func hold_thing() -> void:
|
||||||
|
held_thing = "water"
|
||||||
|
_camera_pivot.get_node("HeldViewmodel").show()
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable")
|
||||||
|
func throw_thing() -> void:
|
||||||
|
held_thing = ""
|
||||||
|
_camera_pivot.get_node("HeldViewmodel").hide()
|
||||||
|
|
||||||
|
|
||||||
func _unhandled_input(event: InputEvent) -> void:
|
func _unhandled_input(event: InputEvent) -> void:
|
||||||
if controls_disabled or id != multiplayer.get_unique_id():
|
if controls_disabled or id != multiplayer.get_unique_id():
|
||||||
return
|
return
|
||||||
@ -82,7 +95,16 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
_camera_pivot.rotation.x = clamp(_camera_pivot.rotation.x, -1.2, 1.2)
|
_camera_pivot.rotation.x = clamp(_camera_pivot.rotation.x, -1.2, 1.2)
|
||||||
return
|
return
|
||||||
|
|
||||||
if event.is_action_pressed("fire"):
|
if event.is_action_pressed("pick") and held_thing == "":
|
||||||
|
if _line_of_sight.is_colliding():
|
||||||
|
if id != 1:
|
||||||
|
print("test")
|
||||||
|
# TODO: bad
|
||||||
|
var picked = _line_of_sight.get_collider(0).get_parent()
|
||||||
|
picked.get_picked_up.rpc()
|
||||||
|
hold_thing.rpc()
|
||||||
|
|
||||||
|
if event.is_action_pressed("fire") and held_thing != "":
|
||||||
var new_projectile: Node3D = _projectile_scene.instantiate()
|
var new_projectile: Node3D = _projectile_scene.instantiate()
|
||||||
_projectile_holder.add_child(new_projectile, true)
|
_projectile_holder.add_child(new_projectile, true)
|
||||||
_set_projectile_authority.rpc(new_projectile.get_path(), id)
|
_set_projectile_authority.rpc(new_projectile.get_path(), id)
|
||||||
@ -93,6 +115,7 @@ func _unhandled_input(event: InputEvent) -> void:
|
|||||||
new_projectile.body.linear_velocity = -_camera.global_basis.z * _projectile_speed
|
new_projectile.body.linear_velocity = -_camera.global_basis.z * _projectile_speed
|
||||||
|
|
||||||
_shot_sound.play()
|
_shot_sound.play()
|
||||||
|
throw_thing.rpc()
|
||||||
|
|
||||||
|
|
||||||
@rpc("authority", "call_local", "reliable")
|
@rpc("authority", "call_local", "reliable")
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://cs8c570bxh6u"]
|
[gd_scene load_steps=9 format=3 uid="uid://cs8c570bxh6u"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/ingame/player.gd" id="1_isrmf"]
|
[ext_resource type="Script" path="res://src/ingame/player.gd" id="1_isrmf"]
|
||||||
[ext_resource type="PackedScene" uid="uid://tdsbo3e5ic86" path="res://src/ingame/water_bomb.tscn" id="2_naek4"]
|
[ext_resource type="PackedScene" uid="uid://tdsbo3e5ic86" path="res://src/ingame/water_bomb.tscn" id="2_naek4"]
|
||||||
[ext_resource type="AudioStream" uid="uid://3dlhs18w1fa2" path="res://assets/sfx/boom.wav" id="3_u2hxa"]
|
[ext_resource type="AudioStream" uid="uid://3dlhs18w1fa2" path="res://assets/sfx/boom.wav" id="3_u2hxa"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://s2a1pry5fw8f" path="res://scenes/water_bomb_model.tscn" id="4_bfvih"]
|
||||||
|
|
||||||
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_2xotl"]
|
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_2xotl"]
|
||||||
properties/0/path = NodePath(".:position")
|
properties/0/path = NodePath(".:position")
|
||||||
@ -28,7 +29,9 @@ properties/5/replication_mode = 2
|
|||||||
|
|
||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_f4jjl"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_f4jjl"]
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("_projectile_holder", "_projectile_point", "_camera_pivot", "_camera", "_shot_sound")]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_rsfjy"]
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("_projectile_holder", "_projectile_point", "_camera_pivot", "_camera", "_line_of_sight", "_shot_sound")]
|
||||||
collision_layer = 2
|
collision_layer = 2
|
||||||
script = ExtResource("1_isrmf")
|
script = ExtResource("1_isrmf")
|
||||||
_projectile_scene = ExtResource("2_naek4")
|
_projectile_scene = ExtResource("2_naek4")
|
||||||
@ -36,6 +39,7 @@ _projectile_holder = NodePath("ProjectileHolder")
|
|||||||
_projectile_point = NodePath("ProjectilePoint")
|
_projectile_point = NodePath("ProjectilePoint")
|
||||||
_camera_pivot = NodePath("CameraPivot")
|
_camera_pivot = NodePath("CameraPivot")
|
||||||
_camera = NodePath("CameraPivot/Camera3D")
|
_camera = NodePath("CameraPivot/Camera3D")
|
||||||
|
_line_of_sight = NodePath("CameraPivot/LineOfSight")
|
||||||
_shot_sound = NodePath("ShotSound")
|
_shot_sound = NodePath("ShotSound")
|
||||||
|
|
||||||
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
||||||
@ -66,6 +70,20 @@ shape = SubResource("CapsuleShape3D_f4jjl")
|
|||||||
[node name="Camera3D" type="Camera3D" parent="CameraPivot"]
|
[node name="Camera3D" type="Camera3D" parent="CameraPivot"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
|
||||||
|
|
||||||
|
[node name="LineOfSight" type="ShapeCast3D" parent="CameraPivot"]
|
||||||
|
shape = SubResource("SphereShape3D_rsfjy")
|
||||||
|
target_position = Vector3(0, 0, -2)
|
||||||
|
collision_mask = 16
|
||||||
|
collide_with_areas = true
|
||||||
|
collide_with_bodies = false
|
||||||
|
debug_shape_custom_color = Color(0.628721, 0, 0.256939, 1)
|
||||||
|
|
||||||
|
[node name="HeldViewmodel" type="Node3D" parent="CameraPivot"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2, -1)
|
||||||
|
visible = false
|
||||||
|
|
||||||
|
[node name="Model" parent="CameraPivot/HeldViewmodel" instance=ExtResource("4_bfvih")]
|
||||||
|
|
||||||
[node name="ShotSound" type="AudioStreamPlayer3D" parent="."]
|
[node name="ShotSound" type="AudioStreamPlayer3D" parent="."]
|
||||||
stream = ExtResource("3_u2hxa")
|
stream = ExtResource("3_u2hxa")
|
||||||
bus = &"SoundEffects"
|
bus = &"SoundEffects"
|
||||||
|
@ -43,6 +43,7 @@ texture = ExtResource("3_kghdv")
|
|||||||
[node name="Area3D" type="Area3D" parent="."]
|
[node name="Area3D" type="Area3D" parent="."]
|
||||||
collision_layer = 8
|
collision_layer = 8
|
||||||
collision_mask = 0
|
collision_mask = 0
|
||||||
|
monitoring = false
|
||||||
|
|
||||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||||
shape = SubResource("CapsuleShape3D_cwbye")
|
shape = SubResource("CapsuleShape3D_cwbye")
|
||||||
|
@ -4,6 +4,7 @@ extends Node3D
|
|||||||
@export var _splash_small_quiet_sound: AudioStreamPlayer3D
|
@export var _splash_small_quiet_sound: AudioStreamPlayer3D
|
||||||
@export var _model: Node3D
|
@export var _model: Node3D
|
||||||
@export var _splash_particles: GPUParticles3D
|
@export var _splash_particles: GPUParticles3D
|
||||||
|
@export var _picking_area: Area3D
|
||||||
@export var body: RigidBody3D
|
@export var body: RigidBody3D
|
||||||
## no longer exists and shouldn't be considered, but not ready to be freed yet
|
## no longer exists and shouldn't be considered, but not ready to be freed yet
|
||||||
@export var is_dead := false
|
@export var is_dead := false
|
||||||
@ -48,6 +49,7 @@ func _on_body_entered(p_body: Node3D) -> void:
|
|||||||
|
|
||||||
is_dead = true
|
is_dead = true
|
||||||
_model.hide()
|
_model.hide()
|
||||||
|
_picking_area.collision_layer = 0
|
||||||
_disable_body.rpc()
|
_disable_body.rpc()
|
||||||
|
|
||||||
await _splash_small_sound.finished
|
await _splash_small_sound.finished
|
||||||
@ -69,3 +71,9 @@ func set_global_pos(new: Vector3) -> void:
|
|||||||
global_position = new
|
global_position = new
|
||||||
body.global_position = new
|
body.global_position = new
|
||||||
body.reset_physics_interpolation()
|
body.reset_physics_interpolation()
|
||||||
|
|
||||||
|
|
||||||
|
@rpc("any_peer", "call_local", "reliable")
|
||||||
|
func get_picked_up() -> void:
|
||||||
|
if is_multiplayer_authority():
|
||||||
|
queue_free()
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=11 format=3 uid="uid://tdsbo3e5ic86"]
|
[gd_scene load_steps=11 format=3 uid="uid://tdsbo3e5ic86"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://src/ingame/water_bomb.gd" id="1_lk5fq"]
|
[ext_resource type="Script" path="res://src/ingame/water_bomb.gd" id="1_lk5fq"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://s2a1pry5fw8f" path="res://scenes/water_bomb_model.tscn" id="2_0lxuq"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dtjpv2b74g24m" path="res://assets/sfx/splash-small.wav" id="2_0wk8g"]
|
[ext_resource type="AudioStream" uid="uid://dtjpv2b74g24m" path="res://assets/sfx/splash-small.wav" id="2_0wk8g"]
|
||||||
[ext_resource type="AudioStream" uid="uid://blgrl2wl05feq" path="res://assets/sfx/splash-small-quiet.wav" id="3_hgy7l"]
|
[ext_resource type="AudioStream" uid="uid://blgrl2wl05feq" path="res://assets/sfx/splash-small-quiet.wav" id="3_hgy7l"]
|
||||||
|
|
||||||
@ -24,11 +25,6 @@ properties/5/path = NodePath("SplashParticles:emitting")
|
|||||||
properties/5/spawn = true
|
properties/5/spawn = true
|
||||||
properties/5/replication_mode = 2
|
properties/5/replication_mode = 2
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ptaep"]
|
|
||||||
albedo_color = Color(0.0936238, 0.825356, 1, 1)
|
|
||||||
metallic = 0.8
|
|
||||||
roughness = 0.4
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v7dnr"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_v7dnr"]
|
||||||
albedo_color = Color(0, 1, 1, 1)
|
albedo_color = Color(0, 1, 1, 1)
|
||||||
roughness = 0.2
|
roughness = 0.2
|
||||||
@ -50,22 +46,19 @@ radius = 0.2
|
|||||||
[sub_resource type="SphereShape3D" id="SphereShape3D_y6453"]
|
[sub_resource type="SphereShape3D" id="SphereShape3D_y6453"]
|
||||||
radius = 1.5
|
radius = 1.5
|
||||||
|
|
||||||
[node name="WaterBomb" type="Node3D" node_paths=PackedStringArray("_splash_small_sound", "_splash_small_quiet_sound", "_model", "_splash_particles", "body")]
|
[node name="WaterBomb" type="Node3D" node_paths=PackedStringArray("_splash_small_sound", "_splash_small_quiet_sound", "_model", "_splash_particles", "_picking_area", "body")]
|
||||||
script = ExtResource("1_lk5fq")
|
script = ExtResource("1_lk5fq")
|
||||||
_splash_small_sound = NodePath("SplashSmallSound")
|
_splash_small_sound = NodePath("SplashSmallSound")
|
||||||
_splash_small_quiet_sound = NodePath("SplashSmallQuietSound")
|
_splash_small_quiet_sound = NodePath("SplashSmallQuietSound")
|
||||||
_model = NodePath("Model")
|
_model = NodePath("Model")
|
||||||
_splash_particles = NodePath("SplashParticles")
|
_splash_particles = NodePath("SplashParticles")
|
||||||
|
_picking_area = NodePath("PickingArea")
|
||||||
body = NodePath("RigidBody3D")
|
body = NodePath("RigidBody3D")
|
||||||
|
|
||||||
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
|
||||||
replication_config = SubResource("SceneReplicationConfig_0ebrr")
|
replication_config = SubResource("SceneReplicationConfig_0ebrr")
|
||||||
|
|
||||||
[node name="Model" type="CSGSphere3D" parent="."]
|
[node name="Model" parent="." instance=ExtResource("2_0lxuq")]
|
||||||
material_override = SubResource("StandardMaterial3D_ptaep")
|
|
||||||
radius = 0.2
|
|
||||||
radial_segments = 24
|
|
||||||
rings = 12
|
|
||||||
|
|
||||||
[node name="SplashParticles" type="GPUParticles3D" parent="."]
|
[node name="SplashParticles" type="GPUParticles3D" parent="."]
|
||||||
material_override = SubResource("StandardMaterial3D_v7dnr")
|
material_override = SubResource("StandardMaterial3D_v7dnr")
|
||||||
@ -106,6 +99,14 @@ bus = &"SoundEffects"
|
|||||||
stream = ExtResource("3_hgy7l")
|
stream = ExtResource("3_hgy7l")
|
||||||
bus = &"SoundEffects"
|
bus = &"SoundEffects"
|
||||||
|
|
||||||
|
[node name="PickingArea" type="Area3D" parent="."]
|
||||||
|
collision_layer = 16
|
||||||
|
collision_mask = 0
|
||||||
|
monitoring = false
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="PickingArea"]
|
||||||
|
shape = SubResource("SphereShape3D_6c830")
|
||||||
|
|
||||||
[connection signal="body_entered" from="RigidBody3D" to="." method="_on_body_entered"]
|
[connection signal="body_entered" from="RigidBody3D" to="." method="_on_body_entered"]
|
||||||
[connection signal="area_entered" from="RigidBody3D/SplashArea" to="." method="_on_splash_area_entered"]
|
[connection signal="area_entered" from="RigidBody3D/SplashArea" to="." method="_on_splash_area_entered"]
|
||||||
[connection signal="area_exited" from="RigidBody3D/SplashArea" to="." method="_on_splash_area_exited"]
|
[connection signal="area_exited" from="RigidBody3D/SplashArea" to="." method="_on_splash_area_exited"]
|
||||||
|
Loading…
Reference in New Issue
Block a user