bring back tempo and volume change scrolling

This commit is contained in:
minenice55 2023-12-17 20:38:19 -05:00
parent b703892ad6
commit dc5c52331f
7 changed files with 943 additions and 35 deletions

File diff suppressed because it is too large Load diff

View file

@ -20,6 +20,7 @@ namespace HeavenStudio.Editor
[SerializeField] Sprite saveIcon;
[SerializeField] Color saveColor;
[SerializeField] Image returnButtonImage;
[SerializeField] GameObject onSaveButton;
[Header("Containers")]
[SerializeField] ChartInfoProperties[] containers;
@ -59,11 +60,6 @@ namespace HeavenStudio.Editor
tabsManager.CleanTabs();
tabContents = null;
if (saveAfterClose)
{
Editor.instance.SaveRemix(saveAs);
}
}
else
{
@ -85,12 +81,21 @@ namespace HeavenStudio.Editor
}
}
public void CloseAndSave()
{
if (saveAfterClose)
{
Editor.instance.SaveRemix(saveAs);
}
SwitchPropertiesDialog();
}
public void SetSaveOnClose(bool saveAfterClose, bool saveAs = false)
{
this.saveAfterClose = saveAfterClose;
this.saveAs = saveAs;
returnButtonImage.sprite = saveAfterClose ? saveIcon : returnIcon;
returnButtonImage.color = saveAfterClose ? saveColor : returnColor;
onSaveButton.SetActive(saveAfterClose);
}
public void SetupDialog(PropertyTag[] tags, ChartInfoProperties container)

View file

@ -172,6 +172,8 @@ namespace HeavenStudio.Editor.Track
specialTimelineObjs.Add(tempoTimelineObj.chartEntity.guid, tempoTimelineObj);
Timeline.instance.FitToSong();
if (create)
tempoTimelineObj.OnRightClick();
}
public void AddVolumeChange(bool create, RiqEntity volumeChange_ = null, bool first = false)
@ -210,6 +212,8 @@ namespace HeavenStudio.Editor.Track
volumeTimelineObj.SetVisibility(Timeline.instance.timelineState.currentState);
specialTimelineObjs.Add(volumeTimelineObj.chartEntity.guid, volumeTimelineObj);
if (create)
volumeTimelineObj.OnRightClick();
}
public void AddChartSection(bool create, RiqEntity chartSection_ = null)

View file

@ -31,10 +31,18 @@ public class TempoDialog : Dialog
}
}
void Update()
{
if (tempoObj != null && tempoObj.first)
{
tempoInput.text = tempoObj.chartEntity["tempo"].ToString("F");
}
}
public void SetTempoObj(TempoTimelineObj tempoObj)
{
this.tempoObj = tempoObj;
deleteButton.interactable = !tempoObj.first;
deleteButton.gameObject.SetActive(!tempoObj.first);
tempoInput.text = tempoObj.chartEntity["tempo"].ToString("F");
}

View file

@ -23,6 +23,18 @@ namespace HeavenStudio.Editor.Track
if (hovering)
{
SpecialTimeline.hoveringTypes |= SpecialTimeline.HoveringTypes.TempoChange;
if (Timeline.instance.timelineState.currentState == Timeline.CurrentTimelineState.State.TempoChange)
{
float newTempo = Input.mouseScrollDelta.y;
if (Input.GetKey(KeyCode.LeftShift))
newTempo *= 5f;
if (Input.GetKey(KeyCode.LeftControl))
newTempo *= 0.01f;
SetTempo(chartEntity["tempo"] + newTempo);
}
}
UpdateTempo();
}
@ -34,6 +46,7 @@ namespace HeavenStudio.Editor.Track
{
Timeline.instance.UpdateStartingBPMText();
}
Timeline.instance.FitToSong();
UpdateTempo();
}

View file

@ -23,6 +23,18 @@ namespace HeavenStudio.Editor.Track
if (hovering)
{
SpecialTimeline.hoveringTypes |= SpecialTimeline.HoveringTypes.VolumeChange;
if (Timeline.instance.timelineState.currentState == Timeline.CurrentTimelineState.State.MusicVolume)
{
float newVolume = Input.mouseScrollDelta.y;
if (Input.GetKey(KeyCode.LeftShift))
newVolume *= 5f;
if (Input.GetKey(KeyCode.LeftControl))
newVolume *= 0.01f;
SetVolume(chartEntity["volume"] + newVolume);
}
}
UpdateVolume();
}

View file

@ -35,10 +35,19 @@ public class VolumeDialog : Dialog
}
}
void Update()
{
if (volumeObj != null && volumeObj.first)
{
volumeInput.text = volumeObj.chartEntity["volume"].ToString("F");
}
}
public void SetVolumeObj(VolumeTimelineObj volumeObj)
{
this.volumeObj = volumeObj;
deleteButton.interactable = !volumeObj.first;
deleteButton.gameObject.SetActive(!volumeObj.first);
volumeSlider.value = volumeObj.chartEntity["volume"];
volumeInput.text = volumeObj.chartEntity["volume"].ToString("F");
}