diff --git a/assets/Characters/Pirate.glb b/assets/Characters/Pirate.glb index 070d14b..c76cd0e 100644 Binary files a/assets/Characters/Pirate.glb and b/assets/Characters/Pirate.glb differ diff --git a/assets/Characters/Pirate.tscn b/assets/Characters/Pirate.tscn index 6d3a512..aadaa34 100644 --- a/assets/Characters/Pirate.tscn +++ b/assets/Characters/Pirate.tscn @@ -19,10 +19,11 @@ switch_mode = 2 xfade_time = 0.2 [sub_resource type="AnimationNodeStateMachineTransition" id=6] +xfade_time = 0.1 [sub_resource type="AnimationNodeStateMachineTransition" id=7] switch_mode = 2 -xfade_time = 0.2 +xfade_time = 0.3 [sub_resource type="AnimationNodeStateMachine" id=8] states/Hit/node = SubResource( 1 ) @@ -43,7 +44,7 @@ transform = Transform( 0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0 ) bones/4/bound_children = [ NodePath("ToolAttachement") ] [node name="ToolAttachement" type="BoneAttachment" parent="Armature/Skeleton" index="5"] -transform = Transform( 1, 8.68458e-08, -1.04308e-07, 1.74623e-07, -1, -1.30385e-07, 1.41561e-07, 1.50874e-07, -1, -0.72, 0.45, 3.28113e-08 ) +transform = Transform( 0.93925, -0.342233, -0.0261794, -0.337317, -0.906276, -0.254719, 0.0634476, 0.248076, -0.966661, -0.933935, 0.609497, 0.0353355 ) visible = false bone_name = "HandTip.R" diff --git a/assets/CreatusPiratePack/Modified/Pirate1_Rigged.blend b/assets/CreatusPiratePack/Modified/Pirate1_Rigged.blend index 4320251..b566f8b 100644 Binary files a/assets/CreatusPiratePack/Modified/Pirate1_Rigged.blend and b/assets/CreatusPiratePack/Modified/Pirate1_Rigged.blend differ diff --git a/entities/Chest.tscn b/entities/Chest.tscn index 45f0254..457a519 100644 --- a/entities/Chest.tscn +++ b/entities/Chest.tscn @@ -43,21 +43,20 @@ bind/1/pose = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.693102, -1.13623, -1.5266 [sub_resource type="Animation" id=3] resource_name = "ChestOpen" -length = 0.333333 tracks/0/type = "transform" tracks/0/path = NodePath("Geometry/Skeleton:Lid") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true -tracks/0/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.0666667, 1, 0, 0, 0, 0, 0, -0.079364, 0.996846, 1, 1, 1, 0.133333, 1, 0, 0, 0, 0, 0, -0.489957, 0.871747, 1, 1, 1, 0.2, 1, 0, 0, 0, 0, 0, -0.855809, 0.517292, 1, 1, 1, 0.266667, 1, 2.37487e-08, 0, 0, 4.03449e-08, -3.99897e-08, 0.919654, -0.39273, 1, 1, 1, 0.333333, 1, 0, 0, 0, -1.45046e-08, 1.43769e-08, -0.808978, 0.587839, 1, 1, 1 ) +tracks/0/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0, 0, 0, 0, 0, -0.489957, 0.871747, 1, 1, 1, 0.9, 1, 0, 0, 0, 0, 0, -0.855809, 0.517292, 1, 1, 1, 1, 1, 0, 0, 0, -1.45046e-08, 1.43769e-08, -0.808978, 0.587839, 1, 1, 1 ) tracks/1/type = "transform" tracks/1/path = NodePath("Geometry/Skeleton:Body") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/imported = false tracks/1/enabled = true -tracks/1/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.133333, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.266667, 1, 0, 0, 0, -5.57256e-17, 1.47956e-08, -0.0876532, 0.996151, 1, 1, 1, 0.333333, 1, 0, 0, 0, -1.11023e-16, -2.8211e-10, 0.00209969, 0.999998, 1, 1, 1 ) +tracks/1/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.7, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.8, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0.9, 1, 0, 0, 0, -5.57256e-17, 1.47956e-08, -0.0876532, 0.996151, 1, 1, 1, 1, 1, 0, 0, 0, -1.11023e-16, -2.8211e-10, 0.00209969, 0.999998, 1, 1, 1 ) tracks/2/type = "method" tracks/2/path = NodePath(".") tracks/2/interp = 1 @@ -65,7 +64,7 @@ tracks/2/loop_wrap = true tracks/2/imported = false tracks/2/enabled = true tracks/2/keys = { -"times": PoolRealArray( 0.3, 1 ), +"times": PoolRealArray( 1, 1.6 ), "transitions": PoolRealArray( 1, 1 ), "values": [ { "args": [ ], diff --git a/entities/Tree.cs b/entities/Tree.cs index 98767ed..1a8d9d3 100644 --- a/entities/Tree.cs +++ b/entities/Tree.cs @@ -31,7 +31,9 @@ public class Tree : Entity, IInteractionInterface Debug.Assert(_geometry != null); _animationPlayer = GetNode("AnimationPlayer"); Debug.Assert(_animationPlayer != null); - + _animationPlayer.CurrentAnimation = "Idle"; + _animationPlayer.Play(); + Connect("input_event", this, nameof(OnAreaInputEvent)); Connect("mouse_entered", this, nameof(OnAreaMouseEntered)); Connect("mouse_exited", this, nameof(OnAreaMouseExited)); @@ -87,12 +89,16 @@ public class Tree : Entity, IInteractionInterface { GD.Print("Starting tree animationplayer"); _animationPlayer.CurrentAnimation = "TreeShake"; + _animationPlayer.Seek(0); _animationPlayer.Play(); _isBeingChopped = true; } public void OnInteractionEnd() { + _animationPlayer.CurrentAnimation = "Idle"; + _animationPlayer.Seek(0); _animationPlayer.Stop(); + _isBeingChopped = false; } } diff --git a/entities/Tree.tscn b/entities/Tree.tscn index ac5cb92..b526f2e 100644 --- a/entities/Tree.tscn +++ b/entities/Tree.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=11 format=2] [ext_resource path="res://assets/KenneySurvivalKit/Models/foliage.material" type="Material" id=1] [ext_resource path="res://assets/KenneySurvivalKit/Models/wood.material" type="Material" id=2] @@ -39,8 +39,8 @@ height = 0.936801 [sub_resource type="PrismMesh" id=4] -[sub_resource type="Animation" id=5] -resource_name = "TreeShake" +[sub_resource type="Animation" id=7] +resource_name = "Idle" loop = true tracks/0/type = "transform" tracks/0/path = NodePath("Geometry") @@ -48,13 +48,69 @@ tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false tracks/0/enabled = true -tracks/0/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1, 1.5, 0.5, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 0.6, 1.5, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1, 1.5 ) +tracks/0/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1.00063, 1.49958 ) + +[sub_resource type="Animation" id=6] +length = 0.001 +tracks/0/type = "bezier" +tracks/0/path = NodePath("Geometry:rotation_degrees:x") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"points": PoolRealArray( -10.23, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/1/type = "bezier" +tracks/1/path = NodePath("Geometry:rotation_degrees:y") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 0, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} +tracks/2/type = "bezier" +tracks/2/path = NodePath("Geometry:rotation_degrees:z") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"points": PoolRealArray( 0, -0.25, 0, 0.25, 0 ), +"times": PoolRealArray( 0 ) +} + +[sub_resource type="Animation" id=5] +resource_name = "TreeShake" +length = 0.8 +loop = true +step = 0.05 +tracks/0/type = "transform" +tracks/0/path = NodePath("Geometry") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = PoolRealArray( 0, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1, 1.5, 0.3, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1, 1.5, 0.301, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 0.671551, 1.46936, 0.302, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 0.647776, 1.48, 0.303, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1, 1.5, 0.304, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1.00045, 1.4997, 0.6, 1, 0, 0, 0, 0, 0, 0, 1, 1.5, 1, 1.5 ) +tracks/1/type = "bezier" +tracks/1/path = NodePath("Geometry:rotation_degrees:x") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"points": PoolRealArray( 7.4006, -0.05, -6.00801, 0.05, 6.00801, 16.7033, -0.05, -0.232568, 0.05, 0.232568, -11.011, -0.05, -0.833332, 0.05, 0.833332, 7.7294, -0.05, 0.833333, 0.05, -0.833333, -5.77825, -0.05, 0.232568, 0.05, -0.232568, 4.10589, -0.05, 0.465136, 0.05, -0.465136, -0.157859, -0.1, 0, 0.1, 0 ), +"times": PoolRealArray( 0, 0.05, 0.15, 0.3, 0.4, 0.5, 0.6 ) +} [node name="Tree" type="KinematicBody"] script = ExtResource( 3 ) [node name="Geometry" type="MeshInstance" parent="."] -transform = Transform( 1.5, 0, 0, 0, 1, 0, 0, 0, 1.5, 0, 0, 0 ) +transform = Transform( 1.5, 0, 0, 0, 0.984722, 0.266325, 0, -0.177712, 1.47574, 0, 0, 0 ) mesh = SubResource( 1 ) [node name="CollisionShape" type="CollisionShape" parent="."] @@ -78,4 +134,6 @@ mesh = SubResource( 4 ) skeleton = NodePath("../..") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/Idle = SubResource( 7 ) +anims/RESET = SubResource( 6 ) anims/TreeShake = SubResource( 5 ) diff --git a/scenes/Game.cs b/scenes/Game.cs index e07e217..fdc242a 100644 --- a/scenes/Game.cs +++ b/scenes/Game.cs @@ -252,6 +252,11 @@ public class Game : Spatial return; } + if (_player.InteractionComponent != null) + { + _player.InteractionComponent.EmitSignal("InteractionEnd"); + } + _player.TaskQueueComponent.Reset(); _player.TaskQueueComponent.Queue.Enqueue(new TaskQueueComponent.NavigationTask( new NavigationComponent.NavigationPoint(tile.GlobalTranslation)));