40 lines
931 B
C#
40 lines
931 B
C#
using System;
|
|
|
|
public class KeyframeToggleContext : IDisposable
|
|
{
|
|
private IKeyframeSetter _keyframmable;
|
|
private bool _enableKeyframes;
|
|
|
|
public KeyframeToggleContext(IKeyframeSetter keyframmable, bool enableKeyframes = false)
|
|
{
|
|
_keyframmable = keyframmable;
|
|
_enableKeyframes = enableKeyframes;
|
|
Toggle(true);
|
|
}
|
|
|
|
public void ForceSetKeyframe(int frameNum = -1)
|
|
{
|
|
Toggle(false);
|
|
_keyframmable.SetKeyframe(frameNum);
|
|
Toggle(true);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Toggle(false);
|
|
}
|
|
|
|
private void Toggle(bool on)
|
|
{
|
|
if (on)
|
|
{
|
|
if (_enableKeyframes) _keyframmable.EnableKeyframeSet();
|
|
else _keyframmable.DisableKeyframeSet();
|
|
}
|
|
else
|
|
{
|
|
if (_enableKeyframes) _keyframmable.DisableKeyframeSet();
|
|
else _keyframmable.EnableKeyframeSet();
|
|
}
|
|
}
|
|
} |