- added presets
- fixed bugs
- should have 100% compatibility
- also documented the weird-ass setup
This commit is contained in:
Zeo 2024-05-05 22:02:44 -05:00
parent 4b87fcc648
commit 1eee91337e
2 changed files with 1238 additions and 141 deletions

File diff suppressed because it is too large Load diff

View file

@ -51,7 +51,7 @@ public class TempoDialog : Dialog
deleteButton.gameObject.SetActive(!tempoObj.first); deleteButton.gameObject.SetActive(!tempoObj.first);
tempoInput.text = tempoObj.chartEntity["tempo"].ToString("F"); tempoInput.text = tempoObj.chartEntity["tempo"].ToString("F");
swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F"); swingInput.text = (tempoObj.chartEntity["swing"] * 100 + 50).ToString("F");
swingSlider.value = tempoObj.chartEntity["swing"]; swingSlider.value = tempoObj.chartEntity["swing"];
swingDivisionToggle.isOn = tempoObj.chartEntity["swingDivision"] != 1f; swingDivisionToggle.isOn = tempoObj.chartEntity["swingDivision"] != 1f;
@ -97,65 +97,83 @@ public class TempoDialog : Dialog
} }
} }
public void RefreshSwingUI()
{
swingInput.text = (tempoObj.chartEntity["swing"] * 100 + 50).ToString("F");
swingSlider.value = tempoObj.chartEntity["swing"];
}
public void SwingSliderUpdate() public void SwingSliderUpdate()
{ {
if (tempoObj != null) if (tempoObj != null)
{ {
tempoObj.SetSwing(System.MathF.Round(swingSlider.value, 4)); tempoObj.SetSwing(System.MathF.Round(swingSlider.value, 4));
swingInput.text = (tempoObj.chartEntity["swing"] * 100 + 50).ToString("F"); RefreshSwingUI();
swingSlider.value = tempoObj.chartEntity["swing"];
} }
} }
public void SetSwing() public void SwingManualUpdate()
{ {
if (tempoObj != null) if (tempoObj != null)
{ {
float swing = float.Parse(swingInput.text); float swing = float.Parse(swingInput.text);
tempoObj.SetSwing(swing * 0.25f / 100f); tempoObj.SetSwing(swing / 100f - 0.5f);
swingInput.text = (tempoObj.chartEntity["swing"] * 100 + 50).ToString("F"); RefreshSwingUI();
swingSlider.value = tempoObj.chartEntity["swing"];
} }
} }
// public void SetStraightSwing() /*
// { a note for future reference:
// if (tempoObj != null)
// {
// tempoObj.SetSwing(whatever makes the swing ratio 50%);
// swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F");
// swingSlider.value = tempoObj.chartEntity["swing"];
// }
// }
// public void SetLightSwing() all stored swing values (like ones in remix.json) are the SWING RATIO - 0.5
// { for example, a swing ratio of 50% would be 0.5 - 0.5 = 0
// if (tempoObj != null) and a ratio of 66.67% would be 0.6667 - 0.5 = 0.1667
// {
// tempoObj.SetSwing(whatever makes the swing ratio 60%);
// swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F");
// swingSlider.value = tempoObj.chartEntity["swing"];
// }
// }
// public void SetNormalSwing() you put that final value into tempoObj.SetSwing() to set it,
// { hence why the above functions use that weird formula and the below functions set it directly
// if (tempoObj != null)
// { in addition, you can get the swing ratio (as a percentage) from this value by
// tempoObj.SetSwing(whatever makes the swing ratio 66.67%); multiplying the value by 100, then adding 50
// swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F");
// swingSlider.value = tempoObj.chartEntity["swing"]; this is really stupid lol
// } minenice why didnt you write any of this down lmao - zeo
// } */
// public void SetStraightSwing()
// { public void SetStraightSwing()
// if (tempoObj != null) {
// { if (tempoObj != null)
// tempoObj.SetSwing(whatever makes the swing ratio 75%); {
// swingInput.text = (tempoObj.chartEntity["swing"] * 400).ToString("F"); tempoObj.SetSwing(0f);
// swingSlider.value = tempoObj.chartEntity["swing"]; RefreshSwingUI();
// } }
// } }
public void SetLightSwing()
{
if (tempoObj != null)
{
tempoObj.SetSwing(0.1f);
RefreshSwingUI();
}
}
public void SetNormalSwing()
{
if (tempoObj != null)
{
tempoObj.SetSwing(0.1667f);
RefreshSwingUI();
}
}
public void SetHeavySwing()
{
if (tempoObj != null)
{
tempoObj.SetSwing(0.25f);
RefreshSwingUI();
}
}
public void SwingDivisionToggle() public void SwingDivisionToggle()
{ {