From 44e9be412404643e980000f8f59161810b34d593 Mon Sep 17 00:00:00 2001 From: HumanoidSandvichDispenser Date: Thu, 17 Aug 2023 01:14:12 -0700 Subject: [PATCH] more consistent scene transitions --- UI/SceneTransition.cs | 4 +++- UI/SceneTransition.tscn | 2 +- Utils/World.cs | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/UI/SceneTransition.cs b/UI/SceneTransition.cs index 1d5a89f..55ea62e 100644 --- a/UI/SceneTransition.cs +++ b/UI/SceneTransition.cs @@ -25,6 +25,8 @@ public partial class SceneTransition : Control public void Exit() { - _animPlayer.Play("exit"); + // call deferred to wait for new map to process + // this avoids a jumpy transition when a new map loads + _animPlayer.CallDeferred("play", "exit"); } } diff --git a/UI/SceneTransition.tscn b/UI/SceneTransition.tscn index b7b3c97..69b520a 100644 --- a/UI/SceneTransition.tscn +++ b/UI/SceneTransition.tscn @@ -10,7 +10,7 @@ shader_parameter/b = 0.0 [sub_resource type="Animation" id="Animation_4e8tt"] resource_name = "enter" -length = 0.5 +length = 0.75 step = 0.05 tracks/0/type = "value" tracks/0/imported = false diff --git a/Utils/World.cs b/Utils/World.cs index 1eb9a50..6446b00 100644 --- a/Utils/World.cs +++ b/Utils/World.cs @@ -260,8 +260,8 @@ public partial class World : Node LoadScene(path); } - EventBus.EmitSignal(EventBus.SignalName.ExitTransition); GetTree().Paused = false; + EventBus.EmitSignal(EventBus.SignalName.ExitTransition); // after finished loading, move our player to the connector MovePlayerToConnector(connector);