mirror of
https://github.com/RHeavenStudio/HeavenStudio.git
synced 2025-06-12 15:27:38 +02:00
Editor: Music volume!
This commit is contained in:
@ -335,6 +335,7 @@ namespace HeavenStudio.Editor
|
||||
GameManager.instance.LoadRemix(json);
|
||||
Timeline.instance.LoadRemix();
|
||||
Timeline.instance.TempoInfo.UpdateStartingBPMText();
|
||||
Timeline.instance.VolumeInfo.UpdateStartingVolumeText();
|
||||
Timeline.instance.TempoInfo.UpdateOffsetText();
|
||||
}
|
||||
|
||||
|
@ -71,6 +71,7 @@ namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
GameManager.instance.Beatmap.bpm += increase;
|
||||
UpdateStartingBPMText();
|
||||
UpdateStartingBPMFromText(); // In case the scrolled-to value is invalid.
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -97,8 +98,8 @@ namespace HeavenStudio.Editor.Track
|
||||
// Failsafe against negative BPM.
|
||||
if (newBPM < 1f)
|
||||
{
|
||||
StartingBPM.text = "120";
|
||||
newBPM = 100;
|
||||
StartingBPM.text = "1";
|
||||
newBPM = 1;
|
||||
}
|
||||
|
||||
// Limit decimal places to 4.
|
||||
|
@ -69,6 +69,7 @@ namespace HeavenStudio.Editor.Track
|
||||
[SerializeField] private RectTransform TimelineEventObjRef;
|
||||
[SerializeField] private RectTransform LayersRect;
|
||||
public TempoTimeline TempoInfo;
|
||||
public VolumeTimeline VolumeInfo;
|
||||
private RectTransform TimelineSongPosLine;
|
||||
|
||||
[Header("Timeline Playbar")]
|
||||
|
87
Assets/Scripts/LevelEditor/Timeline/VolumeTimeline.cs
Normal file
87
Assets/Scripts/LevelEditor/Timeline/VolumeTimeline.cs
Normal file
@ -0,0 +1,87 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System;
|
||||
|
||||
using TMPro;
|
||||
using Starpelly;
|
||||
|
||||
namespace HeavenStudio.Editor.Track
|
||||
{
|
||||
public class VolumeTimeline : MonoBehaviour
|
||||
{
|
||||
[Header("Components")]
|
||||
private RectTransform rectTransform;
|
||||
public TMP_InputField StartingVolume;
|
||||
private RectTransform StartingVolumeRect;
|
||||
|
||||
private bool firstUpdate;
|
||||
|
||||
void Start()
|
||||
{
|
||||
rectTransform = this.GetComponent<RectTransform>();
|
||||
StartingVolumeRect = StartingVolume.GetComponent<RectTransform>();
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (!firstUpdate)
|
||||
{
|
||||
UpdateStartingVolumeText();
|
||||
firstUpdate = true;
|
||||
}
|
||||
|
||||
if (Timeline.instance.userIsEditingInputField)
|
||||
return;
|
||||
|
||||
if (Timeline.instance.timelineState.musicVolume && !Conductor.instance.NotStopped())
|
||||
{
|
||||
if (RectTransformUtility.RectangleContainsScreenPoint(StartingVolumeRect, Input.mousePosition, Editor.instance.EditorCamera))
|
||||
{
|
||||
int increase = Mathf.RoundToInt(Input.mouseScrollDelta.y);
|
||||
if (Input.GetKey(KeyCode.LeftShift))
|
||||
increase *= 5;
|
||||
|
||||
if (increase != 0)
|
||||
{
|
||||
GameManager.instance.Beatmap.musicVolume += increase;
|
||||
UpdateStartingVolumeText();
|
||||
UpdateStartingVolumeFromText(); // In case the scrolled-to value is invalid.
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateStartingVolumeText()
|
||||
{
|
||||
StartingVolume.text = GameManager.instance.Beatmap.musicVolume.ToString();
|
||||
}
|
||||
|
||||
public void UpdateStartingVolumeFromText()
|
||||
{
|
||||
// Failsafe against empty string.
|
||||
if (String.IsNullOrEmpty(StartingVolume.text))
|
||||
StartingVolume.text = "100";
|
||||
|
||||
var newVol = Convert.ToInt32(StartingVolume.text);
|
||||
|
||||
// Failsafe against invalid volume.
|
||||
if (newVol > 100)
|
||||
{
|
||||
StartingVolume.text = "100";
|
||||
newVol = 100;
|
||||
}
|
||||
else if (newVol < 0)
|
||||
{
|
||||
StartingVolume.text = "1";
|
||||
newVol = 1;
|
||||
}
|
||||
|
||||
GameManager.instance.Beatmap.musicVolume = newVol;
|
||||
|
||||
// In case the newVol ended up differing from the inputted string.
|
||||
UpdateStartingVolumeText();
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/LevelEditor/Timeline/VolumeTimeline.cs.meta
Normal file
11
Assets/Scripts/LevelEditor/Timeline/VolumeTimeline.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ea7831ec549a9984c8c3e5afd98bac2f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user