diff options
Diffstat (limited to 'client/player')
-rw-r--r-- | client/player/character/character.gd | 6 | ||||
-rw-r--r-- | client/player/character/character.tscn | 145 |
2 files changed, 150 insertions, 1 deletions
diff --git a/client/player/character/character.gd b/client/player/character/character.gd index 31d5230e..66a3435b 100644 --- a/client/player/character/character.gd +++ b/client/player/character/character.gd @@ -27,6 +27,7 @@ const WALK_ANIM_SPEED:= 15.0 var walking := false var holding := false var boosting := false +var cutting := false var was_boosting := boosting var current_animation := "idle" @@ -39,6 +40,7 @@ var current_animation := "idle" @onready var boosting_particles = $Boosting @onready var username_tag = $Username @onready var tie = $Main/Tie +@onready var knife = $Main/HandRight/Knife @onready var hairstyles := { "Brown": $Main/HeadDefault/Hair, @@ -68,6 +70,8 @@ func _process(delta): var next_animation: String if holding: next_animation = "hold" + elif cutting: + next_animation = "cut" elif walking: next_animation = "walk" else: @@ -122,6 +126,8 @@ func play_animation(name_: String): step_sounds.start_autoplay() else: step_sounds.stop_autoplay() + + knife.visible = name_ == "cut" func _on_hand_animations_animation_finished(_name): hand_animations.play(current_animation) diff --git a/client/player/character/character.tscn b/client/player/character/character.tscn index 0957eb68..a7c09c01 100644 --- a/client/player/character/character.tscn +++ b/client/player/character/character.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=25 format=3 uid="uid://b3hhir2fvnunu"] +[gd_scene load_steps=27 format=3 uid="uid://b3hhir2fvnunu"] [ext_resource type="Script" path="res://player/character/character.gd" id="1_12lbh"] [ext_resource type="ArrayMesh" uid="uid://bnmm01yjwultj" path="res://player/character/default/main.res" id="2_uovyg"] [ext_resource type="ArrayMesh" uid="uid://46sp3fu3n6ls" path="res://player/character/default/hand_right.res" id="3_k28vh"] [ext_resource type="ArrayMesh" uid="uid://r52cylox4imf" path="res://player/character/default/hand_left.res" id="4_tcrm3"] +[ext_resource type="PackedScene" uid="uid://cufype1bex3r3" path="res://map/tiles/knife.tscn" id="4_tjq3a"] [ext_resource type="ArrayMesh" uid="uid://csryncouqhwp1" path="res://player/character/default/head.res" id="5_n1vl0"] [ext_resource type="ArrayMesh" uid="uid://bsxmxq4dfv2vy" path="res://player/character/hairstyles/hair.res" id="6_3uydp"] [ext_resource type="ArrayMesh" uid="uid://dx7jswwaesok4" path="res://player/character/hairstyles/hair_2.res" id="7_1403k"] @@ -152,6 +153,144 @@ tracks/11/keys = { "times": PackedFloat32Array(0) } +[sub_resource type="Animation" id="Animation_557hk"] +resource_name = "cut" +length = 0.25 +loop_mode = 1 +step = 0.01 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Main/HandLeft:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1.302, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Main/HandLeft:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(-0.17, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Main/HandLeft:position:z") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Main/HandRight:position:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(-1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/4/type = "bezier" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Main/HandRight:position:y") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/5/type = "bezier" +tracks/5/imported = false +tracks/5/enabled = true +tracks/5/path = NodePath("Main/HandRight:position:z") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/6/type = "bezier" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Main/HandRight:rotation:x") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(-0.628319, -0.125, 0, 0.125, 0, 0.349066, -0.075, -0.0382189, 0.08, 0.0989729, -0.628319, 0, 0.340511, 0.125, 0), +"times": PackedFloat32Array(0, 0.15, 0.25) +} +tracks/7/type = "bezier" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Main/HandRight:rotation:y") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(-3.14159, -0.125, 0, 0.125, 0, -3.14159, -0.125, 0, 0.125, 0, -3.14159, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.15, 0.25) +} +tracks/8/type = "bezier" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Main/HandRight:rotation:z") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(2.0944, -0.125, 0, 0.125, 0, 2.0944, -0.125, 0, 0.125, 0, 2.0944, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.15, 0.25) +} +tracks/9/type = "bezier" +tracks/9/imported = false +tracks/9/enabled = true +tracks/9/path = NodePath("Main/HandLeft:rotation:x") +tracks/9/interp = 1 +tracks/9/loop_wrap = true +tracks/9/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(4.14408e-16, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/10/type = "bezier" +tracks/10/imported = false +tracks/10/enabled = true +tracks/10/path = NodePath("Main/HandLeft:rotation:y") +tracks/10/interp = 1 +tracks/10/loop_wrap = true +tracks/10/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(3.14159, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/11/type = "bezier" +tracks/11/imported = false +tracks/11/enabled = true +tracks/11/path = NodePath("Main/HandLeft:rotation:z") +tracks/11/interp = 1 +tracks/11/loop_wrap = true +tracks/11/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(-2.0944, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} + [sub_resource type="Animation" id="Animation_cvcpd"] resource_name = "hold" loop_mode = 1 @@ -567,6 +706,7 @@ tracks/11/keys = { [sub_resource type="AnimationLibrary" id="AnimationLibrary_xtrfe"] _data = { "RESET": SubResource("Animation_tdhvg"), +"cut": SubResource("Animation_557hk"), "hold": SubResource("Animation_cvcpd"), "idle": SubResource("Animation_r1hej"), "walk": SubResource("Animation_7kiho") @@ -595,6 +735,9 @@ transform = Transform3D(0.287144, 0.2864, -1.17785e-06, 0.402357, -0.133775, 0.3 mesh = ExtResource("3_k28vh") skeleton = NodePath("") +[node name="Knife" parent="Main/HandRight" instance=ExtResource("4_tjq3a")] +transform = Transform3D(3.69699, 2.68602, 2.63837, -3.70658, -2.69301, 7.93544, 3.10156, -4.26893, -1.08623e-05, -0.157983, 0.472216, -0.19819) + [node name="HandLeft" type="MeshInstance3D" parent="Main"] transform = Transform3D(0.287143, -0.2864, 1.45591e-06, -0.497341, -0.165355, -2.37987e-16, 7.2796e-07, -7.26076e-07, -0.574281, 1.302, -0.17, 0) mesh = ExtResource("4_tcrm3") |