diff options
author | tpart <tpart120@proton.me> | 2025-09-21 22:19:39 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2025-09-21 22:19:44 +0200 |
commit | 483fba84229b42202157e9e9cc0ae2c394e48060 (patch) | |
tree | 2ccad6b215fdd809a5603c0eff95c650ba17b33c /client/player | |
parent | f8c0f3a15a80bbf01ac5f6586269b3b506d0c21a (diff) | |
download | hurrycurry-483fba84229b42202157e9e9cc0ae2c394e48060.tar hurrycurry-483fba84229b42202157e9e9cc0ae2c394e48060.tar.bz2 hurrycurry-483fba84229b42202157e9e9cc0ae2c394e48060.tar.zst |
Add rolling board model; Add rolling pin model; Add rolling pin animation (#393)
Diffstat (limited to 'client/player')
-rw-r--r-- | client/player/character/character.gd | 7 | ||||
-rw-r--r-- | client/player/character/character.tscn | 220 |
2 files changed, 217 insertions, 10 deletions
diff --git a/client/player/character/character.gd b/client/player/character/character.gd index c6401965..a6af254a 100644 --- a/client/player/character/character.gd +++ b/client/player/character/character.gd @@ -35,6 +35,7 @@ var walking := false var holding := false var boosting := false var cutting := false +var rolling := false var was_boosting := boosting var current_animation := "idle" @@ -57,7 +58,6 @@ var headwears: Array[PackedScene]= [ @onready var hand_animations = $HandAnimations @onready var main = $Main -@onready var tram = $Tram @onready var default_height = main.position.y @onready var main_height_target = default_height @onready var walking_particles = $Walking @@ -65,6 +65,7 @@ var headwears: Array[PackedScene]= [ @onready var username_tag = $Username @onready var tie = $Main/Tie @onready var knife = $Main/HandRight/Knife +@onready var rolling_pin = $Main/RollingPin @onready var head_default: MeshInstance3D = $Main/HeadDefault @onready var head_robot: MeshInstance3D = $Main/HeadRobot @@ -82,6 +83,7 @@ func _process(delta): var next_animation: String if holding: next_animation = "hold" elif cutting: next_animation = "cut" + elif rolling: next_animation = "roll" elif walking: next_animation = "walk" else: next_animation = "idle" @@ -106,8 +108,6 @@ func set_style(style: Dictionary, character_class: String): tie.visible = character_class != "customer" head_robot.visible = character_class == "bot" head_default.visible = is_human - main.visible = character_class != "tram" - tram.visible = character_class == "tram" # Hairstyle hair_mesh.mesh = hairstyles[hairstyle_idx] @@ -131,6 +131,7 @@ func play_animation(name_: String): else: step_sounds.stop_autoplay() knife.visible = name_ == "cut" + rolling_pin.visible = name_ == "roll" 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 ccf987b9..748cdaed 100644 --- a/client/player/character/character.tscn +++ b/client/player/character/character.tscn @@ -1,10 +1,11 @@ -[gd_scene load_steps=26 format=3 uid="uid://b3hhir2fvnunu"] +[gd_scene load_steps=27 format=3 uid="uid://b3hhir2fvnunu"] [ext_resource type="Script" uid="uid://dwk3vd4nv2k65" 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="PackedScene" uid="uid://c8t04dfp45a86" path="res://map/tiles/rolling_pin.tscn" id="5_kl3lh"] [ext_resource type="ArrayMesh" uid="uid://csryncouqhwp1" path="res://player/character/default/head.res" id="5_n1vl0"] [ext_resource type="ArrayMesh" uid="uid://c2qnwt44x8ujl" path="res://player/character/default/tie.res" id="9_kgric"] [ext_resource type="AudioStream" uid="uid://bxiorkb4xb8t1" path="res://player/sounds/step1.ogg" id="10_qpd6x"] @@ -14,7 +15,6 @@ [ext_resource type="Script" uid="uid://n4jwod1jfuiv" path="res://audio/play_random.gd" id="14_3rb6x"] [ext_resource type="AudioStream" uid="uid://1jsqpnk3igj3" path="res://player/sounds/woosh1.ogg" id="14_ikcec"] [ext_resource type="AudioStream" uid="uid://cwme7eatip0jc" path="res://player/sounds/woosh2.ogg" id="15_iv4wu"] -[ext_resource type="PackedScene" uid="uid://xq5claqewtb3" path="res://player/character/tram/tram.tscn" id="18_8h5ka"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_7ojaw"] resource_local_to_scene = true @@ -155,6 +155,39 @@ tracks/11/keys = { "points": PackedFloat32Array(2.0944, -0.25, 0, 0.25, 0), "times": PackedFloat32Array(0) } +tracks/12/type = "bezier" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Main/RollingPin:position:x") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/13/type = "bezier" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Main/RollingPin:position:y") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/14/type = "bezier" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Main/RollingPin:position:z") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} [sub_resource type="Animation" id="Animation_557hk"] resource_name = "cut" @@ -706,12 +739,183 @@ tracks/11/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4) } +[sub_resource type="Animation" id="Animation_01ngc"] +resource_name = "roll" +loop_mode = 1 +step = 0.01 +tracks/0/type = "bezier" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Main/HandRight:position:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(-1, -0.125, 0, 0.125, 0, -1, -0.083333336, 0, 0, 0, -1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/1/type = "bezier" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Main/HandRight:position:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.083333336, 0, 0, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/2/type = "bezier" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Main/HandRight:position:z") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"handle_modes": PackedInt32Array(0, 0, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 2, -0.2, 0, 0.2, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/3/type = "bezier" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Main/HandRight:rotation:x") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(0, -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:rotation:y") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(-2.0943952, -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:rotation:z") +tracks/5/interp = 1 +tracks/5/loop_wrap = true +tracks/5/keys = { +"handle_modes": PackedInt32Array(0), +"points": PackedFloat32Array(-3.1415927, -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/HandLeft:position:x") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"handle_modes": PackedInt32Array(0, 2, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.083333336, 0, 0, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/7/type = "bezier" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Main/HandLeft:position:y") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"handle_modes": PackedInt32Array(0, 2, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.083333336, 0, 0, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/8/type = "bezier" +tracks/8/imported = false +tracks/8/enabled = true +tracks/8/path = NodePath("Main/HandLeft:position:z") +tracks/8/interp = 1 +tracks/8/loop_wrap = true +tracks/8/keys = { +"handle_modes": PackedInt32Array(0, 2, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 2, -0.2, 0, 0.2, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +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(0, -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(1.3962634, -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(-3.1415927, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0) +} +tracks/12/type = "bezier" +tracks/12/imported = false +tracks/12/enabled = true +tracks/12/path = NodePath("Main/RollingPin:position:x") +tracks/12/interp = 1 +tracks/12/loop_wrap = true +tracks/12/keys = { +"handle_modes": PackedInt32Array(0, 2, 0), +"points": PackedFloat32Array(0, -0.125, 0, 0.125, 0, 0, -0.083333336, 0, 0, 0, 0, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/13/type = "bezier" +tracks/13/imported = false +tracks/13/enabled = true +tracks/13/path = NodePath("Main/RollingPin:position:y") +tracks/13/interp = 1 +tracks/13/loop_wrap = true +tracks/13/keys = { +"handle_modes": PackedInt32Array(0, 2, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 1, -0.083333336, 0, 0, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} +tracks/14/type = "bezier" +tracks/14/imported = false +tracks/14/enabled = true +tracks/14/path = NodePath("Main/RollingPin:position:z") +tracks/14/interp = 1 +tracks/14/loop_wrap = true +tracks/14/keys = { +"handle_modes": PackedInt32Array(0, 2, 0), +"points": PackedFloat32Array(1, -0.125, 0, 0.125, 0, 2, -0.2, 0, 0.2, 0, 1, -0.125, 0, 0.125, 0), +"times": PackedFloat32Array(0, 0.5, 1) +} + [sub_resource type="AnimationLibrary" id="AnimationLibrary_xtrfe"] _data = { &"RESET": SubResource("Animation_tdhvg"), &"cut": SubResource("Animation_557hk"), &"hold": SubResource("Animation_cvcpd"), &"idle": SubResource("Animation_r1hej"), +&"roll": SubResource("Animation_01ngc"), &"walk": SubResource("Animation_7kiho") } @@ -734,16 +938,21 @@ mesh = ExtResource("2_uovyg") skeleton = NodePath("") surface_material_override/0 = SubResource("StandardMaterial3D_7ojaw") +[node name="RollingPin" parent="Main" instance=ExtResource("5_kl3lh")] +transform = Transform3D(3.030303, -1.1268961e-05, -1.5955811e-05, 1.7894663e-05, 0.47404197, 2.992996, -8.746808e-06, -2.992996, 0.47404295, 0, 1, 1) +visible = false + [node name="HandRight" type="MeshInstance3D" parent="Main"] -transform = Transform3D(0.287144, 0.2864, -1.17785e-06, 0.402357, -0.133775, 0.337554, 0.292329, -0.0971941, -0.464603, -1.302, -0.17, 0) +transform = Transform3D(0.28714395, 0.28639996, -1.177853e-06, 0.40235722, -0.13377503, 0.33755422, 0.29232922, -0.09719407, -0.46460304, -1.302, -0.17, 0) 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) +visible = false [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) +transform = Transform3D(0.2871431, -0.28640002, 1.4559066e-06, -0.49734095, -0.16535497, -2.3798664e-16, 7.2796e-07, -7.2607605e-07, -0.574281, 1.302, -0.17, 0) mesh = ExtResource("4_tcrm3") skeleton = NodePath("") @@ -833,7 +1042,4 @@ billboard = 1 no_depth_test = true text = "Username" -[node name="Tram" parent="." instance=ExtResource("18_8h5ka")] -visible = false - [connection signal="animation_finished" from="HandAnimations" to="." method="_on_hand_animations_animation_finished"] |