Cirno Loading

This commit is contained in:
Marco 2025-03-06 15:45:22 +01:00
commit 313f773fc9
2 changed files with 31 additions and 7 deletions

View file

@ -15,6 +15,10 @@ public partial class GlobalState : Node
public SessionSettings SessionSettings { get; set; }
private PackedScene _plaqueTemplate;
private Control _loadingPlaque;
public override void _Ready()
{
Instance = this;
@ -26,6 +30,8 @@ public partial class GlobalState : Node
CurrentScene = root.GetChild(-1);
_fader = CreateFader();
//LoadPlaque();
}
public void GotoScene(string path)
@ -47,6 +53,10 @@ public partial class GlobalState : Node
public void GoToScene(string path, MapStartDataResource startData)
{
GTweenSequenceBuilder.New()
.AppendCallback(() =>
{
_loadingPlaque?.Show();
})
//.Append(_fader.TweenModulateAlpha(0, 0f))
.Append(_fader.TweenModulateAlpha(1, 0.5f))
.AppendCallback(() =>
@ -96,12 +106,21 @@ public partial class GlobalState : Node
GameManager.Instance?.ApplyMapStartData(resource);
}
private Control LoadPlaque()
{
_plaqueTemplate = GD.Load<PackedScene>("res://Scenes/HUD/LoadingPlaque.tscn");
return _plaqueTemplate.Instantiate<Control>();
}
private ColorRect CreateFader()
{
var canvas = new CanvasLayer();
canvas.ProcessMode = ProcessModeEnum.Always;
var rect = new ColorRect();
rect.ZIndex = 2;
rect.SetAnchorsPreset(Control.LayoutPreset.FullRect);
rect.Color = new Color(Colors.Black, 1f);
rect.ProcessMode = ProcessModeEnum.Always;
@ -114,16 +133,22 @@ public partial class GlobalState : Node
this.CallDeferred("add_child", canvas);
_loadingPlaque = LoadPlaque();
canvas.CallDeferred("add_child", _loadingPlaque);
_loadingPlaque.Hide();
return rect;
}
public void FadeOut()
{
_fader.TweenModulateAlpha(1, 0.5f).PlayUnpausable();
_loadingPlaque?.Show();
}
public void FadeIn()
{
_loadingPlaque?.Hide();
_fader.TweenModulateAlpha(0, 1f).PlayUnpausable();
}
}