From 3019bbb88ebcb644676707bebebe879fcfd03a9d Mon Sep 17 00:00:00 2001 From: Marco Date: Wed, 5 Mar 2025 15:38:52 +0100 Subject: [PATCH] Fix tween movement --- Resources/Styles/Hud_Text_Style.tres | 1 + Scenes/Actors/FairyGuard_New.tscn | 2 +- Scenes/Maps/PlayerFSMTest.tscn | 38 ++++++++++++++++++--- Scenes/test.tscn | 5 +-- Scripts/Activables/PlayerMover.cs | 36 ++++++++++++++----- Scripts/Resources/Events/MovePlayerEvent.cs | 32 ++++++++++++----- 6 files changed, 90 insertions(+), 24 deletions(-) diff --git a/Resources/Styles/Hud_Text_Style.tres b/Resources/Styles/Hud_Text_Style.tres index e90adcc1..6bf9e5c0 100644 --- a/Resources/Styles/Hud_Text_Style.tres +++ b/Resources/Styles/Hud_Text_Style.tres @@ -3,6 +3,7 @@ [ext_resource type="FontFile" uid="uid://coek1e2q257pq" path="res://fonts/at01.ttf" id="1_foybo"] [resource] +line_spacing = 1.0 font = ExtResource("1_foybo") font_size = 12 outline_size = 3 diff --git a/Scenes/Actors/FairyGuard_New.tscn b/Scenes/Actors/FairyGuard_New.tscn index fcef0d97..80bcd18c 100644 --- a/Scenes/Actors/FairyGuard_New.tscn +++ b/Scenes/Actors/FairyGuard_New.tscn @@ -135,7 +135,7 @@ script = ExtResource("15_17yce") [node name="LootDrops" type="Node2D" parent="."] script = ExtResource("16_76vwd") -LootDrops = Array[ExtResource("17_gsthm")]([SubResource("Resource_lh4qp"), SubResource("Resource_fmqd5"), SubResource("Resource_gry1a"), SubResource("Resource_6b6qx")]) +LootDrops = [SubResource("Resource_lh4qp"), SubResource("Resource_fmqd5"), SubResource("Resource_gry1a"), SubResource("Resource_6b6qx")] [connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"] [connection signal="area_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"] diff --git a/Scenes/Maps/PlayerFSMTest.tscn b/Scenes/Maps/PlayerFSMTest.tscn index bf519c38..5a9d918b 100644 --- a/Scenes/Maps/PlayerFSMTest.tscn +++ b/Scenes/Maps/PlayerFSMTest.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=42 format=4 uid="uid://dqyfnby0t7gu1"] +[gd_scene load_steps=43 format=4 uid="uid://dqyfnby0t7gu1"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_c3v4x"] [ext_resource type="Resource" uid="uid://cs3ihltcn2166" path="res://Resources/Items/IcicleGun.tres" id="3_6314l"] @@ -32,6 +32,7 @@ [ext_resource type="Resource" uid="uid://dau0s8ob7qnpc" path="res://Resources/Items/IceShotgun.tres" id="22_4gtx8"] [ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="23_1ajuh"] [ext_resource type="PackedScene" uid="uid://bjskkeb3ppcs8" path="res://Scenes/Actors/Turret360.tscn" id="24_rff8l"] +[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="27_4rfvg"] [ext_resource type="Script" uid="uid://bgertv72tq1dt" path="res://Scripts/Components/FSM/NewPlayerStateMachine.cs" id="34_2vu2h"] [ext_resource type="Script" uid="uid://btwuahxvreivs" path="res://Scripts/Components/FSM/Player/NewInit.cs" id="35_mpb62"] [ext_resource type="Script" uid="uid://dl50bcl8dx3k8" path="res://Scripts/Components/FSM/TestModule.cs" id="36_4rfvg"] @@ -39,7 +40,7 @@ [sub_resource type="Resource" id="Resource_6wo78"] script = ExtResource("4_u1i8n") EggIndex = 0 -StartingEquipment = Array[ExtResource("5_u1i8n")]([]) +StartingEquipment = [] [sub_resource type="RectangleShape2D" id="RectangleShape2D_rff8l"] size = Vector2(30, 52.5) @@ -62,7 +63,7 @@ PlayerTemplate = ExtResource("8_c3v4x") SpawnMarkers = Dictionary[int, NodePath]({ 0: NodePath("PlayerStartPosition") }) -StartingEquipment = Array[ExtResource("5_u1i8n")]([ExtResource("3_6314l"), ExtResource("4_yyg8m")]) +StartingEquipment = [ExtResource("3_6314l"), ExtResource("4_yyg8m")] MapStartData = SubResource("Resource_6wo78") [node name="Tilemaps" type="Node2D" parent="."] @@ -148,10 +149,20 @@ Targets = [NodePath("../../AcidHitboxes/LightBridge2")] position = Vector2(154, 339) [node name="Teleporter2" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("16_qmakk")] -position = Vector2(119, 391) +position = Vector2(144, 392) IsEnabled = true Target = NodePath("../Teleporter4") +[node name="Teleporter3" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("16_qmakk")] +position = Vector2(87, 392) +IsEnabled = true +Target = NodePath("../Teleporter5") + +[node name="Teleporter5" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("16_qmakk")] +position = Vector2(418, 196) +IsEnabled = true +Target = NodePath("../Teleporter3") + [node name="Teleporter4" parent="Tilemaps/Actors" node_paths=PackedStringArray("Target") instance=ExtResource("16_qmakk")] position = Vector2(183, 391) IsEnabled = true @@ -167,6 +178,25 @@ LootTable = Array[ExtResource("5_u1i8n")]([ExtResource("19_1ajuh"), ExtResource( [node name="Turret360" parent="Tilemaps/Actors" instance=ExtResource("24_rff8l")] position = Vector2(374, 503) +[node name="Label" type="Label" parent="Tilemaps/Actors"] +z_index = 1 +offset_left = 142.0 +offset_top = 400.0 +offset_right = 189.0 +offset_bottom = 423.0 +text = "Teleportation +Test" +label_settings = ExtResource("27_4rfvg") + +[node name="Label2" type="Label" parent="Tilemaps/Actors"] +z_index = 1 +offset_left = 79.0 +offset_top = 402.0 +offset_right = 126.0 +offset_bottom = 425.0 +text = "Pools" +label_settings = ExtResource("27_4rfvg") + [node name="CameraController" type="Camera2D" parent="."] process_mode = 1 script = ExtResource("9_dj0ui") diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 65577d8c..928a5db2 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -177,6 +177,7 @@ RelativeTargetPosition = Vector2(0, -64) MovementTime = 1.0 EaseType = 2 TransitionType = 0 +GTweenEasing = 0 WaitForCompletion = true [sub_resource type="Resource" id="Resource_s2o7m"] @@ -214,7 +215,7 @@ SpawnMarkers = Dictionary[int, NodePath]({ 2: NodePath("Factory Tilemaps/LevelProps/BossDebugTeleporterDestination"), 255: NodePath("Factory Tilemaps/Debug Room/DebugRoomStartPosition") }) -StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("4_swym2"), ExtResource("5_nqier")]) +StartingEquipment = [ExtResource("4_swym2"), ExtResource("5_nqier")] MapStartData = SubResource("Resource_6sau4") metadata/_edit_lock_ = true @@ -984,7 +985,7 @@ position = Vector2(-2000, -736) [node name="ControlPad8" parent="Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")] position = Vector2(-2027, -735) Targets = [NodePath("../HorizontalForceField")] -Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")]) +Requirements = [ExtResource("84_ma1ta")] [node name="IcicleRepeater2" parent="Factory Tilemaps/LevelProps" instance=ExtResource("32_xof4a")] position = Vector2(-923, 69) diff --git a/Scripts/Activables/PlayerMover.cs b/Scripts/Activables/PlayerMover.cs index c8639671..b0415a00 100644 --- a/Scripts/Activables/PlayerMover.cs +++ b/Scripts/Activables/PlayerMover.cs @@ -1,5 +1,10 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using Godot; +using GTweens.Builders; +using GTweens.Easings; +using GTweens.Tweens; +using GTweensGodot.Extensions; namespace Cirno.Scripts.Activables; @@ -18,7 +23,9 @@ public partial class PlayerMover : ChainActivable public Tween.EaseType EaseType = Tween.EaseType.InOut; [Export] - public Tween.TransitionType TransitionType = Tween.TransitionType.Linear; + public Tween.TransitionType TransitionType { get; private set; } = Tween.TransitionType.Linear; + + [Export] public GTweens.Easings.Easing GTweenEasing { get; private set; } = Easing.Linear; public override void _Ready() { @@ -38,14 +45,25 @@ public partial class PlayerMover : ChainActivable { //_gameManager.Player.RequestMovementDisable(true); _gameManager.Player.SetState(PlayerState.Cutscene); - - Tween tween = GetTree().CreateTween(); - tween.SetEase(EaseType); - tween.SetTrans(TransitionType); - tween.TweenProperty(_gameManager.Player, "global_position", _gameManager.Player.GlobalPosition + RelativeTargetPosition, MovementTime); - // Wait for the tween to finish - await ToSignal(tween, "finished"); + var gtween = GTweenSequenceBuilder.New() + .Append(_gameManager.Player.MainObject.TweenGlobalPosition( + _gameManager.Player.MainObject.GlobalPosition + RelativeTargetPosition, MovementTime) + .SetEasing(GTweenEasing) + //. + ) + .Build(); + + await gtween.PlayAsync(CancellationToken.None); + + + // Tween tween = GetTree().CreateTween(); + // tween.SetEase(EaseType); + // tween.SetTrans(TransitionType); + // tween.TweenProperty(_gameManager.Player, "global_position", _gameManager.Player.GlobalPosition + RelativeTargetPosition, MovementTime); + // + // // Wait for the tween to finish + // await ToSignal(tween, "finished"); //_gameManager.Player.RequestMovementDisable(false); _gameManager.Player.SetState(PlayerState.Cutscene); diff --git a/Scripts/Resources/Events/MovePlayerEvent.cs b/Scripts/Resources/Events/MovePlayerEvent.cs index 68e1b4f7..e5ec62b6 100644 --- a/Scripts/Resources/Events/MovePlayerEvent.cs +++ b/Scripts/Resources/Events/MovePlayerEvent.cs @@ -1,5 +1,9 @@ -using System.Threading.Tasks; +using System.Threading; +using System.Threading.Tasks; using Godot; +using GTweens.Builders; +using GTweens.Easings; +using GTweensGodot.Extensions; namespace Cirno.Scripts.Resources.Events; @@ -18,6 +22,8 @@ public partial class MovePlayerEvent : EventResource [Export] public Tween.TransitionType TransitionType = Tween.TransitionType.Linear; + [Export] public GTweens.Easings.Easing GTweenEasing { get; private set; } = Easing.Linear; + private bool _isComplete = false; private GameManager _gameManager; @@ -38,13 +44,23 @@ public partial class MovePlayerEvent : EventResource GameManager.Instance.Player.SetState(PlayerState.Cutscene); //_gameManager.Player.RequestMovementDisable(true); - Tween tween = _gameManager.GetTree().CreateTween(); - tween.SetEase(EaseType); - tween.SetTrans(TransitionType); - tween.TweenProperty(_gameManager.Player, "global_position", _gameManager.Player.GlobalPosition + RelativeTargetPosition, MovementTime); - - // Wait for the tween to finish - await ToSignal(tween, "finished"); + var gtween = GTweenSequenceBuilder.New() + .Append(_gameManager.Player.MainObject.TweenGlobalPosition( + _gameManager.Player.MainObject.GlobalPosition + RelativeTargetPosition, MovementTime) + .SetEasing(GTweenEasing) + //. + ) + .Build(); + + await gtween.PlayAsync(CancellationToken.None); + + // Tween tween = _gameManager.GetTree().CreateTween(); + // tween.SetEase(EaseType); + // tween.SetTrans(TransitionType); + // tween.TweenProperty(_gameManager.Player, "global_position", _gameManager.Player.GlobalPosition + RelativeTargetPosition, MovementTime); + // + // // Wait for the tween to finish + // await ToSignal(tween, "finished"); GameManager.Instance.Player.SetState(PlayerState.Active); //_gameManager.Player.RequestMovementDisable(false);