WIP: Add weapon and jumps
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed

This commit is contained in:
Nikolai Rodionov 2025-01-30 21:43:15 +01:00
parent 5a45278545
commit 5159ef9e27
Signed by: allanger
GPG Key ID: 09F8B434D0FDD99B
9 changed files with 285 additions and 40 deletions

View File

@ -1419,12 +1419,12 @@ shape = SubResource("SphereShape3D_axep3")
[node name="PhysicalBoneSimulator3D" type="PhysicalBoneSimulator3D" parent="Body/Armature/Skeleton3D"]
[node name="Physical Bone mixamorig_Hips" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.8195, 12.756, -10.5629, 98.619, 1.31498, 0.290624, -87.4646)
transform = Transform3D(82.5044, -54.0559, -16.4615, 55.0482, 83.4649, 1.8195, 12.756, -10.5629, 98.619, 1.31498, 0.290626, -87.4646)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.28962e-08, -5.58794e-09, 0.0499956)
body_offset = Transform3D(100, -0.0695305, -0.00860786, -1.28746e-05, 12.2744, -99.2438, 0.0700493, 99.2438, 12.2744, 0.000439644, 4.96175, -0.613665)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.1131e-07, -8.84756e-09, 0.0499956)
body_offset = Transform3D(100, -0.0695305, -0.00860918, -1.4782e-05, 12.2744, -99.2438, 0.0700493, 99.2438, 12.2744, 0.000441551, 4.96175, -0.613665)
mass = 20.0
bone_name = "mixamorig_Hips"
joint_constraints/bias = 0.3
@ -1436,12 +1436,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_0ptuo")
[node name="Physical Bone mixamorig_Spine" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(80.9412, -58.5461, -4.56913, 57.6046, 80.6695, -13.1964, 11.4119, 8.04929, 99.0201, 2.40599, 0.973749, -98.2036)
transform = Transform3D(80.9412, -58.546, -4.56913, 57.6046, 80.6695, -13.1964, 11.4119, 8.04929, 99.0201, 2.40599, 0.973749, -98.2036)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.66276e-09, 1.11885e-09, 0.05866)
body_offset = Transform3D(100, 1.52588e-05, 1.00136e-05, 4.76837e-06, 0, -100, -1.52588e-05, 100, -1.90735e-06, -9.53674e-07, 5.866, 0)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.10335e-09, 5.59426e-10, 0.0586601)
body_offset = Transform3D(100, 7.62939e-06, 1.09673e-05, 4.76837e-06, 0, -100, -1.52588e-05, 100, -9.53674e-07, -9.53674e-07, 5.866, 0)
mass = 20.0
bone_name = "mixamorig_Spine"
joint_constraints/bias = 0.3
@ -1453,12 +1453,12 @@ transform = Transform3D(0.0318071, 3.86358e-14, 4.9738e-14, -2.13163e-14, -1.629
shape = SubResource("CapsuleShape3D_126jt")
[node name="Physical Bone mixamorig_Head" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-97.8019, 4.47329, 20.366, -15.8369, -79.4709, -58.5966, 13.5638, -60.5339, 78.4325, -13.8193, 23.4986, -143.635)
transform = Transform3D(-97.8019, 4.4733, 20.366, -15.8369, -79.4709, -58.5966, 13.5638, -60.5339, 78.4325, -13.8193, 23.4986, -143.635)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.81035e-08, -1.39698e-07, 0.0981531)
body_offset = Transform3D(-100, -0.00220108, -0.000778198, -5.24521e-06, 33.8066, -94.1122, 0.00232792, -94.1122, -33.8066, 7.05719e-05, 9.23741, 3.31821)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7.71773e-08, -1.37836e-07, 0.0981531)
body_offset = Transform3D(-100, -0.00220013, -0.000778198, -5.24521e-06, 33.8066, -94.1122, 0.00232792, -94.1122, -33.8066, 6.86646e-05, 9.23741, 3.31821)
mass = 7.0
bone_name = "mixamorig_Head"
joint_constraints/bias = 0.3
@ -1474,8 +1474,8 @@ transform = Transform3D(86.1165, 14.0252, -48.8594, -45.4995, 64.1262, -61.787,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5578e-09, 2.39336e-07, 0.137023)
body_offset = Transform3D(100, -3.43323e-05, -2.67029e-05, 2.47955e-05, 100, -7.62939e-06, 1.71661e-05, -3.8147e-06, 100, 3.8147e-06, -2.28882e-05, -13.7023)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.17129e-09, 2.34109e-07, 0.137023)
body_offset = Transform3D(100, -4.19617e-05, -2.47955e-05, 2.86102e-05, 100, -3.8147e-06, 1.71661e-05, -3.8147e-06, 100, 3.8147e-06, -2.28882e-05, -13.7023)
mass = 3.0
bone_name = "mixamorig_LeftArm"
joint_constraints/bias = 0.3
@ -1487,12 +1487,12 @@ transform = Transform3D(0.01, 0, 0, 0, 0.00997432, -0.000716193, 0, 0.000716193,
shape = SubResource("CapsuleShape3D_krlof")
[node name="Physical Bone mixamorig_LeftForeArm" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-48.2566, -12.058, 86.752, -78.7312, -37.4258, -48.997, 38.3757, -91.9452, 8.56699, 1.36485, 46.9033, -104.66)
transform = Transform3D(-48.2566, -12.058, 86.752, -78.7312, -37.4258, -48.997, 38.3757, -91.9452, 8.56699, 1.36484, 46.9033, -104.66)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.288e-07, 6.04928e-08, 0.138072)
body_offset = Transform3D(100, 3.05176e-05, -3.8147e-05, -3.8147e-05, 0, -100, -3.8147e-06, 100, 1.14441e-05, 3.8147e-05, 13.8072, -7.62939e-06)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.99826e-07, 6.04928e-08, 0.138072)
body_offset = Transform3D(100, 3.05176e-05, -4.19617e-05, -3.8147e-05, 0, -100, -3.8147e-06, 100, 1.14441e-05, 4.57764e-05, 13.8072, -7.62939e-06)
mass = 3.0
bone_name = "mixamorig_LeftForeArm"
joint_constraints/bias = 0.3
@ -1504,11 +1504,11 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_2k34c")
[node name="Physical Bone mixamorig_LeftHand" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(9.11563, -98.6768, 13.4089, 23.9481, -10.8976, -96.4766, 96.6612, 12.0056, 22.6379, -10.9685, 56.2242, -106.442)
transform = Transform3D(9.11563, -98.6768, 13.4089, 23.9481, -10.8976, -96.4766, 96.6612, 12.0056, 22.6379, -10.9684, 56.2242, -106.442)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.24797e-07, -1.22003e-07, 0.0264902)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.19564e-08, -9.40636e-08, 0.0264903)
body_offset = Transform3D(-58.5197, 57.9894, 56.6805, 1.62125e-05, 69.899, -71.5132, -81.0891, -41.8493, -40.9047, -1.50148, 1.89441, 1.08356)
bone_name = "mixamorig_LeftHand"
joint_constraints/bias = 0.3
@ -1524,7 +1524,7 @@ transform = Transform3D(30.7246, 72.8896, 61.1809, 93.7855, -34.092, -6.48192, 1
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.63344e-08, 1.16326e-07, 0.137023)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.63344e-08, 1.16325e-07, 0.137023)
body_offset = Transform3D(100, -5.72205e-06, 1.19209e-05, 6.67572e-06, 1.07288e-05, -100, -1.90735e-06, 100, 2.64645e-05, 0, 13.7023, -1.52588e-05)
mass = 3.0
bone_name = "mixamorig_RightArm"
@ -1541,8 +1541,8 @@ transform = Transform3D(24.3552, 37.4063, 89.4852, -25.0101, 91.5653, -31.4688,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40737e-07, -4.23739e-08, 0.138072)
body_offset = Transform3D(100, -1.14441e-05, 8.58307e-06, -3.8147e-06, 100, 9.53674e-06, 5.72205e-06, -5.72205e-06, 100, -1.52588e-05, 2.92063e-06, -13.8072)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40737e-07, -5.19106e-08, 0.138072)
body_offset = Transform3D(100, -1.14441e-05, 8.58307e-06, -3.8147e-06, 100, 9.53674e-06, 5.72205e-06, -5.72205e-06, 100, -1.52588e-05, 3.8743e-06, -13.8072)
mass = 3.0
bone_name = "mixamorig_RightForeArm"
joint_constraints/bias = 0.3
@ -1558,7 +1558,7 @@ transform = Transform3D(89.0767, -24.8074, -38.0781, 5.05123, 88.6726, -45.9527,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.86265e-08, 2.30502e-07, 0.0264903)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.51926e-09, 2.77068e-07, 0.0264903)
body_offset = Transform3D(-58.5197, -57.9893, -56.6805, -1.33514e-05, 69.8991, -71.5131, 81.0891, -41.8492, -40.9048, 1.5015, 1.89439, 1.08359)
bone_name = "mixamorig_RightHand"
joint_constraints/bias = 0.3
@ -1574,8 +1574,8 @@ transform = Transform3D(-96.1774, -26.2683, 7.73901, -23.4203, 64.2554, -72.957,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.39893e-08, -7.74374e-09, 0.202997)
body_offset = Transform3D(100, -3.8147e-05, 1.14441e-05, 7.62939e-06, 7.62939e-06, -100, 4.19617e-05, 100, 3.8147e-06, -5.72205e-06, 20.2997, 0)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.78612e-08, -7.74374e-09, 0.202997)
body_offset = Transform3D(100, -4.3869e-05, 9.53674e-06, 9.53674e-06, 7.62939e-06, -100, 4.673e-05, 100, 3.8147e-06, -5.72205e-06, 20.2997, 0)
mass = 5.0
bone_name = "mixamorig_LeftUpLeg"
joint_constraints/bias = 0.3
@ -1591,8 +1591,8 @@ transform = Transform3D(-97.5216, -11.6193, -18.8291, -22.0483, 58.1427, 78.3154
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.01576e-09, -2.10753e-08, 0.210495)
body_offset = Transform3D(100, 4.76837e-06, 1.14441e-05, 5.72205e-06, 0, -100, -9.53674e-07, 100, 1.90735e-05, -1.90735e-06, 21.0495, -1.90735e-06)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.03062e-09, -1.30455e-08, 0.210495)
body_offset = Transform3D(100, 4.76837e-06, 1.33514e-05, 5.72205e-06, 0, -100, -9.53674e-07, 100, 1.52588e-05, -1.90735e-06, 21.0495, -1.90735e-06)
mass = 5.0
bone_name = "mixamorig_LeftLeg"
joint_constraints/bias = 0.3
@ -1604,12 +1604,12 @@ transform = Transform3D(0.01, 0, 0, 0, -4.37114e-10, 0.01, 0, -0.01, -4.37114e-1
shape = SubResource("CapsuleShape3D_vwdij")
[node name="Physical Bone mixamorig_LeftFoot" type="PhysicalBone3D" parent="Body/Armature/Skeleton3D/PhysicalBoneSimulator3D"]
transform = Transform3D(-93.6712, -34.5296, 5.78095, -34.9451, 91.207, -21.4506, 2.13418, -22.1132, -97.501, 11.7385, 3.12728, -14.5678)
transform = Transform3D(-93.6712, -34.5296, 5.78095, -34.9451, 91.207, -21.4506, 2.13419, -22.1132, -97.501, 11.7385, 3.12728, -14.5678)
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.41225e-09, 6.36356e-08, 0.078608)
body_offset = Transform3D(100, 5.72205e-06, -1.43051e-06, -1.90735e-06, -1.52588e-05, -100, -5.72205e-06, 100, -3.24249e-05, 9.53674e-07, 7.8608, -3.8147e-06)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.41225e-09, 7.07881e-08, 0.078608)
body_offset = Transform3D(100, 5.72205e-06, -1.43051e-06, -9.53674e-07, -1.52588e-05, -100, -5.72205e-06, 100, -3.24249e-05, 9.53674e-07, 7.8608, -4.52995e-06)
bone_name = "mixamorig_LeftFoot"
joint_constraints/bias = 0.3
joint_constraints/damping = 1.0
@ -1624,8 +1624,8 @@ transform = Transform3D(-83.6898, -51.5224, 18.4786, -50.5592, 59.8312, -62.161,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.08665e-08, 7.74372e-09, 0.202997)
body_offset = Transform3D(100, -1.52588e-05, 3.8147e-06, 5.72205e-06, -3.8147e-06, -100, 1.14441e-05, 100, -3.8147e-06, -2.86102e-06, 20.2997, 0)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.31228e-08, 7.74372e-09, 0.202997)
body_offset = Transform3D(100, -1.52588e-05, 7.62939e-06, 5.72205e-06, -3.8147e-06, -100, 1.14441e-05, 100, -3.8147e-06, -2.86102e-06, 20.2997, 0)
mass = 5.0
bone_name = "mixamorig_RightUpLeg"
joint_constraints/bias = 0.3
@ -1641,8 +1641,8 @@ transform = Transform3D(-91.8175, -23.5086, -31.8888, -36.0103, 83.0805, 42.437,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.40577e-08, -2.67006e-07, 0.210495)
body_offset = Transform3D(100, -1.71661e-05, 1.14441e-05, -9.53674e-07, 4.19617e-05, -100, 1.90735e-05, 100, 7.24792e-05, -3.8147e-06, 21.0495, 1.14441e-05)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.48112e-08, -2.68513e-07, 0.210495)
body_offset = Transform3D(100, -1.71661e-05, 1.33514e-05, -9.53674e-07, 4.19617e-05, -100, 1.90735e-05, 100, 6.86646e-05, -4.29153e-06, 21.0495, 1.23978e-05)
mass = 5.0
bone_name = "mixamorig_RightLeg"
joint_constraints/bias = 0.3
@ -1658,7 +1658,7 @@ transform = Transform3D(-88.192, -17.3351, 43.8367, -46.8549, 42.4444, -77.4796,
collision_layer = 4
collision_mask = 4
joint_type = 1
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.24153e-08, -2.70381e-09, 0.078608)
joint_offset = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5.24152e-08, -2.70387e-09, 0.078608)
body_offset = Transform3D(100, 1.14441e-05, -7.62939e-06, -7.62939e-06, -1.90735e-05, -100, 0, 100, -5.72205e-05, 5.84126e-06, 7.8608, 4.76837e-06)
bone_name = "mixamorig_RightFoot"
joint_constraints/bias = 0.3

View File

@ -137,6 +137,7 @@ libraries = {
}
[node name="HUD" type="Control" parent="FirstPersonCameraMount"]
visible = false
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0

View File

@ -7,6 +7,9 @@ class_name PlayerPlaceholder
@onready var client_node: CharacterBody3D = $PlayerControlledNode
@onready var server_node: CharacterBody3D = $ServerControlledNode
@export var character_speed: int = 5
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
set_multiplayer_authority(1)
@ -16,6 +19,7 @@ func _ready() -> void:
client_node.global_position = server_node.global_position
client_node.rotation.y = server_node.rotation.y
client_node.rotation.x = server_node.rotation.x
if multiplayer.is_server():
$Timer.start()
if owner_id != multiplayer.get_unique_id():

View File

@ -1,13 +1,79 @@
[gd_scene load_steps=6 format=3 uid="uid://bmm3brgvr4d86"]
[gd_scene load_steps=14 format=3 uid="uid://bmm3brgvr4d86"]
[ext_resource type="Script" path="res://scenes/player/player_input_controller.gd" id="1_m6tul"]
[ext_resource type="Script" path="res://scenes/player/placeholder.gd" id="1_ts455"]
[ext_resource type="Texture2D" uid="uid://oopj5mj1vdp0" path="res://assets/crosshairs/crosshair_default.png" id="3_8ulsx"]
[ext_resource type="Script" path="res://scenes/player/server_player_controller.gd" id="3_f1bhn"]
[ext_resource type="PackedScene" uid="uid://dtvo21mk1webd" path="res://scenes/weapon/guns/ak/with_hands.tscn" id="3_xxv4y"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_taqso"]
radius = 0.4
height = 1.6
[sub_resource type="LabelSettings" id="LabelSettings_3bk8i"]
font_size = 70
[sub_resource type="LabelSettings" id="LabelSettings_adbcb"]
font_size = 100
font_color = Color(0.756874, 0, 0.223924, 1)
[sub_resource type="Animation" id="Animation_falg4"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0.125),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_mkk0p"]
resource_name = "move"
length = 0.5
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.125, 0.25, 0.375, 0.5),
"transitions": PackedFloat32Array(1, 2, 1, 2, 1),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0.001, 0.001, -0.001), Vector3(0, 0, 0), Vector3(-0.001, 0.001, -0.001), Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_ah507"]
resource_name = "shooting"
length = 0.2
loop_mode = 1
step = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath(".:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 0.233258, 8.57419),
"update": 0,
"values": [Vector3(0, 0, 0), Vector3(0, -0.01, -0.01), Vector3(0, 0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_u1b6p"]
_data = {
"RESET": SubResource("Animation_falg4"),
"move": SubResource("Animation_mkk0p"),
"shooting": SubResource("Animation_ah507")
}
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_7vlrn"]
properties/0/path = NodePath("ServerControlledNode:position")
properties/0/spawn = true
@ -34,9 +100,96 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.786919, 0)
shape = SubResource("CapsuleShape3D_taqso")
[node name="CameraMount" type="Node3D" parent="PlayerControlledNode"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.29568, -0.240438)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.29568, -0.128668)
[node name="Camera3D" type="Camera3D" parent="PlayerControlledNode/CameraMount"]
cull_mask = 524287
[node name="HUD" type="Control" parent="PlayerControlledNode/CameraMount/Camera3D"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = 8.0
offset_right = 8.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="TextureRect" type="TextureRect" parent="PlayerControlledNode/CameraMount/Camera3D/HUD"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -36.0
offset_top = -36.0
offset_right = 36.0
offset_bottom = 36.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("3_8ulsx")
[node name="HealthIndicator" type="Label" parent="PlayerControlledNode/CameraMount/Camera3D/HUD"]
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -23.0
offset_right = 40.0
grow_vertical = 0
text = "100"
label_settings = SubResource("LabelSettings_3bk8i")
[node name="FPS" type="Label" parent="PlayerControlledNode/CameraMount/Camera3D/HUD" groups=["player_placeholder"]]
layout_mode = 1
offset_right = 40.0
offset_bottom = 23.0
text = "0"
label_settings = SubResource("LabelSettings_adbcb")
[node name="SubViewportContainer" type="SubViewportContainer" parent="PlayerControlledNode/CameraMount/Camera3D/HUD"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
stretch = true
[node name="SubViewport" type="SubViewport" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer"]
transparent_bg = true
handle_input_locally = false
msaa_2d = 1
msaa_3d = 1
canvas_cull_mask = 4294443008
size = Vector2i(1920, 1964)
render_target_update_mode = 4
[node name="Camera3D" type="Camera3D" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport"]
cull_mask = 524288
fov = 40.0
[node name="WithHands" parent="PlayerControlledNode/CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D" instance=ExtResource("3_xxv4y")]
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0.423577, -0.565285, -1.76074)
visible = false
[node name="BulletStartingPoint" type="Node3D" parent="PlayerControlledNode/CameraMount"]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, -0.42185)
[node name="AimRay" type="RayCast3D" parent="PlayerControlledNode/CameraMount/BulletStartingPoint"]
target_position = Vector3(0, 0, 1000)
hit_from_inside = true
collide_with_areas = true
[node name="GunMount" type="Node3D" parent="PlayerControlledNode/CameraMount"]
visible = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="PlayerControlledNode/CameraMount/GunMount"]
libraries = {
"": SubResource("AnimationLibrary_u1b6p")
}
[node name="Node3D" type="Node3D" parent="PlayerControlledNode"]
@ -48,9 +201,6 @@ script = ExtResource("3_f1bhn")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.786919, 0)
shape = SubResource("CapsuleShape3D_taqso")
[node name="CSGBox3D" type="CSGBox3D" parent="ServerControlledNode"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.91303, 0)
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
replication_config = SubResource("SceneReplicationConfig_7vlrn")

View File

@ -13,14 +13,41 @@ extends CharacterBody3D
@onready var camera = $CameraMount/Camera3D
@onready var placeholder: Node3D = $'..'
var paused := false
const JUMP_VELOCITY = 4.5
#func _ready() -> void:
var current_gun: String = "ak"
@onready var gun_mount: Node3D = $CameraMount/GunMount
@onready var gun_mount_anim: AnimationPlayer = $CameraMount/GunMount/AnimationPlayer
var gun_with_hands: Node3D = null
@onready var bullet_starting_point: Node3D = $CameraMount/BulletStartingPoint
@onready var aim_ray: RayCast3D = $CameraMount/BulletStartingPoint/AimRay
@onready var gun_camera: Camera3D = $CameraMount/Camera3D/HUD/SubViewportContainer/SubViewport/Camera3D
var current_weapon_damage: int
var current_weapon_bullet_speed: int
var current_weapon_cooldown_interwal: float
var look_dir: Vector2
func _ready() -> void:
global_position = $"..".initial_position
# -- TODO: It should not be hardcoded
# Define a format string with placeholder '%s'
var path_tmpl := "res://scenes/weapon/guns/%s/with_hands.tscn"
var path := path_tmpl % current_gun
var scene: PackedScene = ResourceLoader.load(path)
var node: Node3D = scene.instantiate()
node.scale = Vector3(0.5,0.5,0.5)
node.position = Vector3(0.5, -0.5, -1.5)
current_weapon_bullet_speed = node.bullet_speed
current_weapon_cooldown_interwal = node.cooldown
current_weapon_damage = node.damage
gun_with_hands = node
gun_camera.add_child(node)
func _input(event):
if multiplayer.get_unique_id() == get_multiplayer_authority():
if Input.is_action_just_pressed("jump"): jumping = true
if event is InputEventMouseMotion and Input.mouse_mode == Input.MOUSE_MODE_CAPTURED:
look_dir = event.relative * 1
rotation.y -= look_dir.x * camera_sens * 1.0
@ -37,12 +64,23 @@ func _process(delta: float) -> void:
server_node.set_input_direction.rpc_id(1, input_direction)
input_direction = Input.get_vector("move_left", "move_right", "move_forward", "move_backwards")
if Input.is_action_just_pressed("jump"):
server_node.jump.rpc_id(1)
jump.rpc_id(1)
if Input.is_action_pressed("shot"): _shoot()
var cant_shoot: bool = false
func _shoot():
if not cant_shoot:
gun_with_hands.shoot()
cant_shoot = true
await get_tree().create_timer(current_weapon_cooldown_interwal).timeout
cant_shoot = false
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
if is_on_floor() && jumping:
velocity.y = JUMP_VELOCITY
jumping = false
if multiplayer.get_unique_id() == get_multiplayer_authority():
var direction := (transform.basis * Vector3(input_direction.x, 0, input_direction.y)).normalized()
if is_on_floor():

View File

@ -1,5 +1,6 @@
class_name ServerControlledPlayer
extends CharacterBody3D
const JUMP_VELOCITY = 4.5
func _ready() -> void:
global_position = $"..".initial_position
@ -20,11 +21,17 @@ func set_rotation_y(new_rotation_y: float):
@rpc("call_local", "any_peer", "unreliable_ordered")
func set_rotation_x(new_rotation_x: float):
$"..".rotation.x = new_rotation_x
@rpc("call_local", "any_peer", "unreliable_ordered")
func jump():
jumping = true
var jumping := false
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
if is_on_floor() && jumping:
velocity.y = JUMP_VELOCITY
jumping = false
var direction := (transform.basis * Vector3(input_direction.x, 0, input_direction.y)).normalized()
#if is_on_floor():

View File

@ -376,6 +376,7 @@ transform = Transform3D(1, 0, 0, 0, 2.22045e-16, -1, 0, 1, 2.22045e-16, 0, 0, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.357561, -0.95657, 0)
[node name="Object_8" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/7_62x39 ak47 mag empty 30rnd (steel)_1"]
layers = 524288
mesh = SubResource("ArrayMesh_profl")
skeleton = NodePath("")
@ -383,6 +384,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.29818, 0.183817, 0)
[node name="Object_12" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 muzzle brake_3"]
layers = 524288
mesh = SubResource("ArrayMesh_ipt8e")
skeleton = NodePath("")
@ -390,10 +392,12 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.172215, 0.322283, 0)
[node name="Object_14" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 bolt carrier_4"]
layers = 524288
mesh = SubResource("ArrayMesh_8jual")
skeleton = NodePath("")
[node name="Object_15" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 bolt carrier_4"]
layers = 524288
mesh = SubResource("ArrayMesh_i82ui")
skeleton = NodePath("")
@ -401,16 +405,19 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.41883, 0.422283, 0)
[node name="Object_17" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 back spring_5"]
layers = 524288
mesh = SubResource("ArrayMesh_mrb8o")
skeleton = NodePath("")
[node name="ak-47_6" type="Node3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode"]
[node name="Object_19" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak-47_6"]
layers = 524288
mesh = SubResource("ArrayMesh_lmas3")
skeleton = NodePath("")
[node name="Object_20" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak-47_6"]
layers = 524288
mesh = SubResource("ArrayMesh_pm8es")
skeleton = NodePath("")
@ -418,6 +425,7 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.924381, -0.0946205, 0)
[node name="Object_22" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 trigga_7"]
layers = 524288
mesh = SubResource("ArrayMesh_f3au2")
skeleton = NodePath("")
@ -425,6 +433,7 @@ skeleton = NodePath("")
transform = Transform3D(0.960364, 0.278749, 0, -0.278749, 0.960364, 0, 0, 0, 1, -1.14961, 0.0940101, 0)
[node name="Object_24" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 selector_8"]
layers = 524288
mesh = SubResource("ArrayMesh_d4npm")
skeleton = NodePath("")
@ -432,5 +441,6 @@ skeleton = NodePath("")
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.424757, -0.317383, 0)
[node name="Object_26" type="MeshInstance3D" parent="AK/Sketchfab_model/root/GLTF_SceneRootNode/ak47 mag release_9"]
layers = 524288
mesh = SubResource("ArrayMesh_2fjfa")
skeleton = NodePath("")

View File

@ -567,86 +567,103 @@ transform = Transform3D(-0.0937107, -0.388868, 0, 0.388868, -0.0937107, 0, 0, 0,
[node name="hand" type="MeshInstance3D" parent="HandsMount/RightHand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.121467, -1.86265e-09, 0.916718)
layers = 524288
mesh = SubResource("ArrayMesh_10vpp")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="HandsMount/RightHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.118854, 0.00119257)
layers = 524288
mesh = SubResource("ArrayMesh_6kcxh")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"]
transform = Transform3D(1, 0, 0, 0, 0.861576, -0.507629, 0, 0.507629, 0.861576, 0.635515, 0, -1.8433)
layers = 524288
mesh = SubResource("ArrayMesh_3xdyo")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/index_0"]
transform = Transform3D(1, 0, 0, 0, 0.906566, -0.422065, 0, 0.422065, 0.906566, 0, 0, -0.520542)
layers = 524288
mesh = SubResource("ArrayMesh_jwmbr")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/index_0/index_1"]
transform = Transform3D(1, 0, 0, 0, 0.750019, -0.661417, 0, 0.661417, 0.750019, 0.052901, 8.73137e-11, -0.496836)
layers = 524288
mesh = SubResource("ArrayMesh_nx17n")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.219422, 0, -1.96367)
layers = 524288
mesh = SubResource("ArrayMesh_j4m22")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/middle_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.595449)
layers = 524288
mesh = SubResource("ArrayMesh_p7r5c")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/middle_0/middle_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.576577)
layers = 524288
mesh = SubResource("ArrayMesh_nyf20")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.636916, 0, -1.87594)
layers = 524288
mesh = SubResource("ArrayMesh_hv0ce")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/pinky_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.508631)
layers = 524288
mesh = SubResource("ArrayMesh_c5ym1")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/pinky_0/pinky_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157)
layers = 524288
mesh = SubResource("ArrayMesh_nbpkv")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22161, 0, -1.94957)
layers = 524288
mesh = SubResource("ArrayMesh_1xp3n")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/ring_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.578411)
layers = 524288
mesh = SubResource("ArrayMesh_pb3jm")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/ring_0/ring_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439)
layers = 524288
mesh = SubResource("ArrayMesh_a0fke")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="HandsMount/RightHand/hand"]
transform = Transform3D(-0.555855, -0.801665, -0.69654, 0.994684, -0.11756, -0.658478, 0.372074, -0.883359, 0.719756, 0.490087, 0.180478, -0.34376)
layers = 524288
mesh = SubResource("ArrayMesh_f34xf")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="HandsMount/RightHand/hand/thumb_0"]
transform = Transform3D(0.944646, 0, 0.328092, 0, 1, 0, -0.328092, 0, 0.944646, 0.418848, 0, -0.541475)
layers = 524288
mesh = SubResource("ArrayMesh_nwsdf")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="HandsMount/RightHand/hand/thumb_0/thumb_1"]
transform = Transform3D(0.566325, -0.514515, 0.643855, 0.815653, 0.461981, -0.348259, -0.118264, 0.72239, 0.681297, 0.286444, 0, -0.397435)
layers = 524288
mesh = SubResource("ArrayMesh_kj4i3")
skeleton = NodePath("")
@ -655,86 +672,103 @@ transform = Transform3D(-0.293062, -0.141858, -0.232359, 0.152991, -0.368212, 0.
[node name="hand" type="MeshInstance3D" parent="HandsMount/LeftHand"]
transform = Transform3D(0.937392, -0.347, -0.0298069, 0.343986, 0.909048, 0.235173, -0.0545093, -0.230702, 0.971497, 0, 0, 0.916718)
layers = 524288
mesh = SubResource("ArrayMesh_10vpp")
skeleton = NodePath("")
[node name="arm_lower" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"]
transform = Transform3D(0.961026, 0.0494308, -0.272003, -0.077176, 0.992739, -0.0922641, 0.265467, 0.10966, 0.957863, -2.38419e-07, -0.118854, 0.00119257)
layers = 524288
mesh = SubResource("ArrayMesh_6kcxh")
skeleton = NodePath("")
[node name="index_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.635515, 0, -1.8433)
layers = 524288
mesh = SubResource("ArrayMesh_3xdyo")
skeleton = NodePath("")
[node name="index_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/index_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.520542)
layers = 524288
mesh = SubResource("ArrayMesh_jwmbr")
skeleton = NodePath("")
[node name="index_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/index_0/index_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.496836)
layers = 524288
mesh = SubResource("ArrayMesh_nx17n")
skeleton = NodePath("")
[node name="middle_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.219422, 0, -1.96367)
layers = 524288
mesh = SubResource("ArrayMesh_j4m22")
skeleton = NodePath("")
[node name="middle_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/middle_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.595449)
layers = 524288
mesh = SubResource("ArrayMesh_p7r5c")
skeleton = NodePath("")
[node name="middle_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/middle_0/middle_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.576577)
layers = 524288
mesh = SubResource("ArrayMesh_nyf20")
skeleton = NodePath("")
[node name="pinky_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.636916, 0, -1.87594)
layers = 524288
mesh = SubResource("ArrayMesh_hv0ce")
skeleton = NodePath("")
[node name="pinky_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/pinky_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.508631)
layers = 524288
mesh = SubResource("ArrayMesh_c5ym1")
skeleton = NodePath("")
[node name="pinky_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/pinky_0/pinky_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.484157)
layers = 524288
mesh = SubResource("ArrayMesh_nbpkv")
skeleton = NodePath("")
[node name="ring_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.22161, 0, -1.94957)
layers = 524288
mesh = SubResource("ArrayMesh_1xp3n")
skeleton = NodePath("")
[node name="ring_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/ring_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.578411)
layers = 524288
mesh = SubResource("ArrayMesh_pb3jm")
skeleton = NodePath("")
[node name="ring_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/ring_0/ring_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.558439)
layers = 524288
mesh = SubResource("ArrayMesh_a0fke")
skeleton = NodePath("")
[node name="thumb_0" type="MeshInstance3D" parent="HandsMount/LeftHand/hand"]
transform = Transform3D(0.456952, 1.05435, -0.341133, -1.08959, 0.360202, -0.346234, -0.202034, 0.442078, 1.09571, 0.624359, -0.289327, -0.480306)
layers = 524288
mesh = SubResource("ArrayMesh_f34xf")
skeleton = NodePath("")
[node name="thumb_1" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/thumb_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.418848, 0, -0.541475)
layers = 524288
mesh = SubResource("ArrayMesh_nwsdf")
skeleton = NodePath("")
[node name="thumb_2" type="MeshInstance3D" parent="HandsMount/LeftHand/hand/thumb_0/thumb_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.286444, 0, -0.397435)
layers = 524288
mesh = SubResource("ArrayMesh_kj4i3")
skeleton = NodePath("")

View File

@ -11,6 +11,7 @@ emission_energy_multiplier = 16.0
distance_fade_min_distance = 2.0
[node name="BulletTrailGeneric" type="MeshInstance3D"]
layers = 524288
material_override = SubResource("StandardMaterial3D_ybqvs")
visibility_range_end = 1891.27
script = ExtResource("1_k8eg1")