mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-11 02:45:53 +00:00
Door Animation Module
This commit is contained in:
parent
f7334c056b
commit
af44d96c33
24 changed files with 438 additions and 50 deletions
62
Scripts/Actors/3D/OpenCloseActorAnimationManager3D.cs
Normal file
62
Scripts/Actors/3D/OpenCloseActorAnimationManager3D.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using Godot;
|
||||
|
||||
namespace Cirno.Scripts.Actors._3D;
|
||||
|
||||
public partial class OpenCloseActorAnimationManager3D : Node
|
||||
{
|
||||
[Export] public AnimationPlayer AnimationPlayer { get; set; }
|
||||
[Export] public StringName OpeningAnimationName { get; set; } = "Opening";
|
||||
|
||||
[Export] public StringName ClosingAnimationName { get; set; } = "Closing";
|
||||
|
||||
[Export] public StringName OpenAnimationName { get; set; } = "Open";
|
||||
|
||||
[Export] public StringName ClosedAnimationName { get; set; } = "Closed";
|
||||
|
||||
private bool _isAnimating = false;
|
||||
|
||||
[Signal]
|
||||
public delegate void ClosedAnimationCompletedEventHandler();
|
||||
|
||||
[Signal]
|
||||
public delegate void OpenAnimationCompletedEventHandler();
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
AnimationPlayer.AnimationFinished += AnimationPlayerOnAnimationFinished;
|
||||
}
|
||||
|
||||
private void AnimationPlayerOnAnimationFinished(StringName animName)
|
||||
{
|
||||
if (animName == OpenAnimationName || animName == OpeningAnimationName)
|
||||
{
|
||||
EmitSignalOpenAnimationCompleted();
|
||||
}
|
||||
else if (animName == ClosedAnimationName || animName == ClosingAnimationName)
|
||||
{
|
||||
EmitSignalClosedAnimationCompleted();
|
||||
}
|
||||
}
|
||||
|
||||
public void PlayOpening()
|
||||
{
|
||||
AnimationPlayer.Play(OpeningAnimationName);
|
||||
AnimationPlayer.SetSpeedScale(1);
|
||||
}
|
||||
|
||||
public void PlayClosing()
|
||||
{
|
||||
AnimationPlayer.Play(ClosingAnimationName);
|
||||
AnimationPlayer.SetSpeedScale(1);
|
||||
}
|
||||
|
||||
public void SkipToOpen()
|
||||
{
|
||||
AnimationPlayer.Play(OpenAnimationName);
|
||||
}
|
||||
|
||||
public void SkipToClose()
|
||||
{
|
||||
AnimationPlayer.Play(ClosedAnimationName);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue