This commit is contained in:
fu-majime 2024-04-16 15:57:51 +09:00
parent 22d5d72113
commit 4affbb6796

View file

@ -62,6 +62,8 @@ namespace HeavenStudio.Editor.Track
private double initMoveX = 0;
private float initMoveY = 0;
private double selectedMinInitMoveX, selectedMaxInitMoveX;
private float selectedMinInitMoveY, selectedMaxInitMoveY;
private bool movedEntity = false;
private double lastBeat = 0;
@ -236,15 +238,13 @@ namespace HeavenStudio.Editor.Track
if (moving)
{
// double minBeat = Selections.instance.eventsSelected.Min(marker => marker.entity.beat);
// double maxBeat = Selections.instance.eventsSelected.Max(marker => marker.entity.beat);
// double minTrack = Selections.instance.eventsSelected.Min(marker => marker.entity["track"]);
// double maxTrack = Selections.instance.eventsSelected.Max(marker => marker.entity["track"]);
// Debug.Log($"{minBeat} {maxBeat} {minTrack} {maxTrack} {Timeline.instance.MousePos2BeatSnap}");
foreach (var marker in Selections.instance.eventsSelected)
{
marker.entity.beat = System.Math.Max(Timeline.instance.MousePos2BeatSnap - marker.initMoveX, 0);
marker.entity["track"] = Mathf.Clamp(Timeline.instance.MousePos2Layer - marker.initMoveY, 0, Timeline.instance.LayerCount - 1);
var nextBeat = System.Math.Max(Timeline.instance.MousePos2BeatSnap, 0 + selectedMaxInitMoveX) - marker.initMoveX;
var nextTrack = Mathf.Clamp(Timeline.instance.MousePos2Layer, 0 + selectedMaxInitMoveY, Timeline.instance.LayerCount - 1 + selectedMinInitMoveY) - marker.initMoveY;
marker.entity.beat = System.Math.Max(nextBeat, 0);
marker.entity["track"] = Mathf.Clamp(nextTrack, 0, Timeline.instance.LayerCount - 1);
marker.SetColor((int)entity["track"]);
marker.SetWidthHeight();
}
@ -298,6 +298,10 @@ namespace HeavenStudio.Editor.Track
marker.initMoveX = Timeline.instance.MousePos2BeatSnap - marker.entity.beat;
marker.initMoveY = Timeline.instance.MousePos2Layer - (int)marker.entity["track"];
}
selectedMinInitMoveX = Selections.instance.eventsSelected.Min(marker => marker.initMoveX);
selectedMaxInitMoveX = Selections.instance.eventsSelected.Max(marker => marker.initMoveX);
selectedMinInitMoveY = Selections.instance.eventsSelected.Min(marker => marker.initMoveY);
selectedMaxInitMoveY = Selections.instance.eventsSelected.Max(marker => marker.initMoveY);
}
#region ClickEvents