64 lines
1.3 KiB
C#
64 lines
1.3 KiB
C#
using Godot;
|
|
|
|
namespace PhantomCamera;
|
|
|
|
public enum TransitionType
|
|
{
|
|
Linear,
|
|
Sine,
|
|
Quint,
|
|
Quart,
|
|
Quad,
|
|
Expo,
|
|
Elastic,
|
|
Cubic,
|
|
Circ,
|
|
Bounce,
|
|
Back
|
|
}
|
|
|
|
public enum EaseType
|
|
{
|
|
EaseIn,
|
|
EaseOut,
|
|
EaseInOut,
|
|
EaseOutIn
|
|
}
|
|
|
|
public static class PhantomCameraTweenExtensions
|
|
{
|
|
public static PhantomCameraTween AsPhantomCameraTween(this Resource resource)
|
|
{
|
|
return new PhantomCameraTween(resource);
|
|
}
|
|
}
|
|
|
|
public class PhantomCameraTween(Resource tweenResource)
|
|
{
|
|
public Resource Resource { get; } = tweenResource;
|
|
|
|
public float Duration
|
|
{
|
|
get => (float)Resource.Get(PropertyName.Duration);
|
|
set => Resource.Set(PropertyName.Duration, value);
|
|
}
|
|
|
|
public TransitionType Transition
|
|
{
|
|
get => (TransitionType)(int)Resource.Get(PropertyName.Transition);
|
|
set => Resource.Set(PropertyName.Transition, (int)value);
|
|
}
|
|
|
|
public EaseType Ease
|
|
{
|
|
get => (EaseType)(int)Resource.Get(PropertyName.Ease);
|
|
set => Resource.Set(PropertyName.Ease, (int)value);
|
|
}
|
|
|
|
public static class PropertyName
|
|
{
|
|
public const string Duration = "duration";
|
|
public const string Transition = "transition";
|
|
public const string Ease = "ease";
|
|
}
|
|
}
|