mirror of
https://gitgud.io/AbstractConcept/rimworld-animation-studio.git
synced 2024-08-15 00:43:27 +00:00
Expanded menus and bug fixes
This commit is contained in:
parent
cc28ac4bd4
commit
721443592f
146 changed files with 5891 additions and 269 deletions
|
@ -44,8 +44,6 @@ namespace RimWorldAnimationStudio
|
|||
maxValue = Workspace.StageWindowSize;
|
||||
value = keyframe.atTick.Value;
|
||||
|
||||
OnValueChanged();
|
||||
|
||||
onValueChanged.AddListener(delegate (float value) { OnValueChanged(); });
|
||||
}
|
||||
|
||||
|
@ -124,18 +122,22 @@ namespace RimWorldAnimationStudio
|
|||
// Link other slected keyframes to the movement of this one
|
||||
if (selectedKeyframes.NotNullOrEmpty())
|
||||
{
|
||||
pivotKeyframe = keyframe.atTick <= selectedKeyframes.Min(x => x.atTick) ?
|
||||
selectedKeyframes.FirstOrDefault(x => x.atTick >= selectedKeyframes.Max(y => y.atTick)) :
|
||||
selectedKeyframes.FirstOrDefault(x => x.atTick <= selectedKeyframes.Min(y => y.atTick));
|
||||
|
||||
foreach (PawnKeyframe selectedKeyframe in selectedKeyframes)
|
||||
{
|
||||
KeyframeSlider unlinkedSlider = selectedKeyframe.GetKeyframeSlider();
|
||||
|
||||
if (unlinkedSlider != null)
|
||||
{
|
||||
if (AnimationController.Instance.stretchKeyframesToggle.isOn && unlinkedSlider.keyframe.atTick == pivotKeyframe.atTick) continue;
|
||||
|
||||
unlinkedSlider.linkedSlider = this;
|
||||
unlinkedSlider.linkedOffset = unlinkedSlider.keyframe.atTick.Value - keyframe.atTick.Value;
|
||||
}
|
||||
}
|
||||
|
||||
pivotKeyframe = keyframe.atTick < selectedKeyframes[0].atTick ? selectedKeyframes.Last() : selectedKeyframes.First();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -168,13 +170,17 @@ namespace RimWorldAnimationStudio
|
|||
if (keyframe.atTick == Constants.minTick)
|
||||
{ value = Constants.minTick; return; }
|
||||
|
||||
foreach (Selectable otherSlider in Selectable.allSelectablesArray)
|
||||
foreach (Selectable linkedSlider in Selectable.allSelectablesArray)
|
||||
{
|
||||
if (otherSlider is KeyframeSlider)
|
||||
{ Debug.Log("unlinked keyframes"); (otherSlider as KeyframeSlider).linkedSlider = null; }
|
||||
if (linkedSlider is KeyframeSlider)
|
||||
{
|
||||
(linkedSlider as KeyframeSlider).linkedSlider = null;
|
||||
(linkedSlider as KeyframeSlider).pivotKeyframe = null;
|
||||
}
|
||||
}
|
||||
|
||||
interactable = false;
|
||||
|
||||
Workspace.Instance.RecordEvent("Keyframe move");
|
||||
}
|
||||
|
||||
|
@ -186,7 +192,7 @@ namespace RimWorldAnimationStudio
|
|||
if (Workspace.keyframeID.NullOrEmpty() || Workspace.keyframeID.Contains(keyframeID) == false)
|
||||
{ linkedSlider = null; }
|
||||
|
||||
else if (AnimationController.Instance.stretchKeyframesToggle.isOn && linkedSlider != null && linkedSlider.IsPivotKeyframe(keyframe) == false)
|
||||
else if (AnimationController.Instance.stretchKeyframesToggle.isOn && linkedSlider != null)
|
||||
{ value = Mathf.CeilToInt(linkedSlider.keyframe.atTick.Value + linkedOffset * linkedSlider.ScaledOffsetFromPivot()); }
|
||||
|
||||
else if (AnimationController.Instance.stretchKeyframesToggle.isOn == false && linkedSlider != null)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue