gd: added hit input

This commit is contained in:
2025-06-05 13:58:22 +02:00
parent b517404dc4
commit 8818e77d23
5 changed files with 61 additions and 14 deletions

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=28 format=3 uid="uid://bei4nhkf8lwdo"]
[gd_scene load_steps=29 format=3 uid="uid://bei4nhkf8lwdo"]
[ext_resource type="Script" uid="uid://bbbrf5ckydfna" path="res://player_controller/Scripts/PlayerController.cs" id="1_poq2x"]
[ext_resource type="Resource" uid="uid://bl5crtu1gkrtr" path="res://systems/inputs/walk_mode/base_mode.tres" id="3_cresl"]
@ -16,6 +16,7 @@
[ext_resource type="Script" uid="uid://dwoppk8j5fxeg" path="res://player_controller/Scripts/DashSystem.cs" id="9_qu4wy"]
[ext_resource type="Resource" uid="uid://bdit2jy5gbpts" path="res://systems/inputs/walk_mode/jump.tres" id="10_4u7i3"]
[ext_resource type="Script" uid="uid://g8idirw62qe0" path="res://player_controller/Scripts/Bobbing.cs" id="10_7wk1w"]
[ext_resource type="Resource" uid="uid://b5gx3q8nvu72e" path="res://systems/inputs/walk_mode/hit.tres" id="11_cresl"]
[ext_resource type="PackedScene" uid="uid://0ysqmqphq6mq" path="res://systems/head/head_system.tscn" id="11_rxwoh"]
[ext_resource type="Script" uid="uid://b6k73aj5povgv" path="res://player_controller/Scripts/FieldOfView.cs" id="12_m2mxi"]
[ext_resource type="Script" uid="uid://b5nk6ntlps3x0" path="res://systems/inputs/input_system.gd" id="16_v31n3"]
@ -46,6 +47,7 @@ aim_pressed = ExtResource("7_cresl")
aim_released = ExtResource("8_lhb11")
aim_canceled = ExtResource("9_5p2qc")
jump = ExtResource("10_4u7i3")
hit = ExtResource("11_cresl")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
@ -138,6 +140,7 @@ StartVelocity = 4.0
[connection signal="input_aim_canceled" from="InputController" to="." method="OnInputAimCanceled"]
[connection signal="input_aim_pressed" from="InputController" to="." method="OnInputAimPressed"]
[connection signal="input_aim_released" from="InputController" to="." method="OnInputAimReleased"]
[connection signal="input_hit" from="InputController" to="." method="OnInputHitPressed"]
[connection signal="input_jump" from="InputController" to="." method="OnInputJumpPressed"]
[connection signal="input_move" from="InputController" to="." method="OnInputMove"]
[connection signal="input_rotate_floorplane" from="InputController" to="." method="OnInputRotateFloorplane"]

View File

@ -73,6 +73,11 @@ public partial class PlayerController : CharacterBody3D
DashSystem.CancelDash();
}
public void OnInputHitPressed()
{
GD.Print("OnInputHitPressed");
}
public void OnInputJumpPressed()
{
bool doesCapsuleHaveCrouchingHeight = CapsuleCollider.IsCrouchingHeight();
@ -81,28 +86,26 @@ public partial class PlayerController : CharacterBody3D
if (!doesCapsuleHaveCrouchingHeight && !isPlayerDead)
MoveSystem.Jump(IsOnFloor());
}
public override void _Ready()
{
HeadSystem = GetNode<HeadSystem>("HeadSystem");
HeadSystem.Init();
_headCollisionDetectors = new RayCast3D[NumOfHeadCollisionDetectors];
for (int i = 0; i < NumOfHeadCollisionDetectors; i++)
{
_headCollisionDetectors[i] = GetNode<RayCast3D>(
"HeadCollisionDetectors/HeadCollisionDetector" + i);
}
HeadSystem = GetNode<HeadSystem>("HeadSystem");
HeadSystem.Init();
// Getting dependencies of the components(In godot we manage this from upwards to downwards not vice versa)
Camera3D camera = GetNode<Camera3D>("HeadSystem/CameraSmooth/Camera3D");
Node3D cameraSmooth = GetNode<Node3D>("HeadSystem/CameraSmooth");
RayCast3D stairsBelowRayCast3D = GetNode<RayCast3D>("StairsBelowRayCast3D");
RayCast3D stairsAheadRayCast3D = GetNode<RayCast3D>("StairsAheadRayCast3D");
Node3D cameraSmooth = GetNode<Node3D>("HeadSystem/CameraSmooth");
// Getting universal setting from GODOT editor to be in sync
float gravitySetting = (float)ProjectSettings.GetSetting("physics/3d/default_gravity");
@ -162,7 +165,6 @@ public partial class PlayerController : CharacterBody3D
DistortionRect = distortionRect,
BlurRect = blurRect,
};
HealthSystem.Init(healthSystemParams);
}
@ -190,7 +192,6 @@ public partial class PlayerController : CharacterBody3D
IsOnFloorCustom = isOnFloorCustom(),
Velocity = Velocity
};
Bobbing.PerformCameraBobbing(cameraBobbingParams);
FieldOfView.FovParameters fovParams = new FieldOfView.FovParameters
@ -200,7 +201,6 @@ public partial class PlayerController : CharacterBody3D
SprintSpeed = MoveSystem.SprintSpeed,
Velocity = Velocity
};
FieldOfView.PerformFovAdjustment(fovParams);
StairsSystem.UpStairsCheckParams upStairsCheckParams = new StairsSystem.UpStairsCheckParams
@ -260,7 +260,6 @@ public partial class PlayerController : CharacterBody3D
BetweenCrouchingAndNormalHeight = CapsuleCollider.IsBetweenCrouchingAndNormalHeight(),
Delta = (float)delta
};
StairsSystem.SlideCameraSmoothBackToOrigin(slideCameraParams);
}

View File

@ -1,4 +1,5 @@
extends Node3D
class_name InputController
@export_group("Mapping contexts")
@export var base_mode:GUIDEMappingContext
@ -13,6 +14,7 @@ extends Node3D
@export var aim_released:GUIDEAction
@export var aim_canceled:GUIDEAction
@export var jump:GUIDEAction
@export var hit:GUIDEAction
signal input_move(value: Vector3)
signal input_rotate_y(value: float)
@ -22,6 +24,7 @@ signal input_aim_pressed
signal input_aim_released
signal input_aim_canceled
signal input_jump
signal input_hit
func _ready() -> void:
GUIDE.enable_mapping_context(base_mode)
@ -30,7 +33,10 @@ func _ready() -> void:
aim_released.triggered.connect(on_input_aim_released)
aim_canceled.triggered.connect(on_input_aim_canceled)
jump.triggered.connect(on_input_jump)
hit.triggered.connect(on_input_hit)
func on_input_hit():
input_hit.emit()
func on_input_jump():
input_jump.emit()

View File

@ -1,4 +1,4 @@
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=58 format=3 uid="uid://bl5crtu1gkrtr"]
[gd_resource type="Resource" script_class="GUIDEMappingContext" load_steps=63 format=3 uid="uid://bl5crtu1gkrtr"]
[ext_resource type="Script" uid="uid://cpplm41b5bt6m" path="res://addons/guide/guide_action_mapping.gd" id="1_0pi3k"]
[ext_resource type="Script" uid="uid://dsa1dnifd6w32" path="res://addons/guide/guide_mapping_context.gd" id="2_ho3ad"]
@ -23,6 +23,7 @@
[ext_resource type="Script" uid="uid://brsxcrai2te83" path="res://addons/guide/triggers/guide_trigger_chorded_action.gd" id="20_xcfo4"]
[ext_resource type="Script" uid="uid://b52rqq28tuqpg" path="res://addons/guide/triggers/guide_trigger_pressed.gd" id="21_k8ji4"]
[ext_resource type="Resource" uid="uid://bdit2jy5gbpts" path="res://systems/inputs/walk_mode/jump.tres" id="22_ufouq"]
[ext_resource type="Resource" uid="uid://b5gx3q8nvu72e" path="res://systems/inputs/walk_mode/hit.tres" id="23_oapce"]
[sub_resource type="Resource" id="Resource_vkvga"]
script = ExtResource("4_oapce")
@ -233,8 +234,32 @@ script = ExtResource("1_0pi3k")
action = ExtResource("22_ufouq")
input_mappings = Array[ExtResource("3_ufouq")]([SubResource("Resource_8w5gu")])
[sub_resource type="Resource" id="Resource_nf3uo"]
script = ExtResource("19_2murt")
button = 10
joy_index = -1
[sub_resource type="Resource" id="Resource_paxxe"]
script = ExtResource("21_k8ji4")
actuation_threshold = 0.5
[sub_resource type="Resource" id="Resource_500v3"]
script = ExtResource("3_ufouq")
override_action_settings = false
is_remappable = false
display_name = ""
display_category = ""
input = SubResource("Resource_nf3uo")
modifiers = Array[ExtResource("5_j3mg7")]([])
triggers = Array[ExtResource("8_nf3uo")]([SubResource("Resource_paxxe")])
[sub_resource type="Resource" id="Resource_ew1hw"]
script = ExtResource("1_0pi3k")
action = ExtResource("23_oapce")
input_mappings = Array[ExtResource("3_ufouq")]([SubResource("Resource_500v3")])
[resource]
script = ExtResource("2_ho3ad")
display_name = ""
mappings = Array[ExtResource("1_0pi3k")]([SubResource("Resource_88x08"), SubResource("Resource_tgr2g"), SubResource("Resource_iarn8"), SubResource("Resource_0hmrk"), SubResource("Resource_iihs4"), SubResource("Resource_0s4kt"), SubResource("Resource_xt1x5")])
mappings = Array[ExtResource("1_0pi3k")]([SubResource("Resource_88x08"), SubResource("Resource_tgr2g"), SubResource("Resource_iarn8"), SubResource("Resource_0hmrk"), SubResource("Resource_iihs4"), SubResource("Resource_0s4kt"), SubResource("Resource_xt1x5"), SubResource("Resource_ew1hw")])
metadata/_custom_type_script = "uid://dsa1dnifd6w32"

View File

@ -0,0 +1,14 @@
[gd_resource type="Resource" script_class="GUIDEAction" load_steps=2 format=3 uid="uid://b5gx3q8nvu72e"]
[ext_resource type="Script" uid="uid://cluhc11vixkf1" path="res://addons/guide/guide_action.gd" id="1_hph1v"]
[resource]
script = ExtResource("1_hph1v")
name = &""
action_value_type = 0
block_lower_priority_actions = true
emit_as_godot_actions = false
is_remappable = false
display_name = ""
display_category = ""
metadata/_custom_type_script = "uid://cluhc11vixkf1"