Integration of Jukebox Library (#451)

* add Jukebox library

todo:
- saving / loading of new format
- inferrence of unknown data like past versions
- move the temporary float casts to proper use of double
- make sound related functions take double for timing
- inform people that the Jukebox sound player was renamed to SoundByte lol

* make sound, input scheduling, and super curve use double precision

* successfully load charts

* editor works again

v1 riqs can be saved and loaded

* first tempo and volume markers are unmovable

fix loading of charts' easing values

* use gsync / freesync

* update Jukebox refs to SoundByte

* game events use double part 1

Air Rally - Glee Club converted

* don't load song if chart load fails

* finish conversion of all minigames

* remove editor waveform toggle

* timeline now respects added song offset length

clear cache files on app close
prepped notes for dsp sync

* update timeline length when offset changed

* update to latest Jukebox

* make error panel object in global game manager

* improve conductor music scheduling

* added error message box

fix first game events sometimes not playing
This commit is contained in:
minenice55
2023-06-10 15:13:29 -04:00
committed by GitHub
parent b7afd697ce
commit bb2ae74339
176 changed files with 4868 additions and 3013 deletions

View File

@ -16,8 +16,8 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
public bool isSqueezed;
public bool isPreparing;
public bool queuePrepare;
public float lastReportedBeat = 0f;
float lastSqueezeBeat;
public double lastReportedBeat = 0f;
double lastSqueezeBeat;
bool isActive = true;
private OctopusMachine game;
@ -42,13 +42,13 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
{
if (PlayerInput.Pressed() && !game.IsExpectingInputNow(InputType.STANDARD_DOWN)) {
OctoAction("Squeeze");
Jukebox.PlayOneShotGame("nearMiss");
SoundByte.PlayOneShotGame("nearMiss");
game.hasMissed = true;
}
if (PlayerInput.PressedUp() && !game.IsExpectingInputNow(InputType.STANDARD_UP)) {
OctoAction(PlayerInput.Pressing(true) ? "Pop" : "Release");
Jukebox.PlayOneShotGame("nearMiss");
SoundByte.PlayOneShotGame("nearMiss");
game.hasMissed = true;
}
}
@ -79,6 +79,7 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
1 => "Happy",
2 => "Angry",
3 => "Oops",
_ => "Bop"
}, 0.5f);
isPreparing =
isSqueezed = false;
@ -99,8 +100,8 @@ namespace HeavenStudio.Games.Scripts_OctopusMachine
public void OctoAction(string action)
{
if (action != "Release" || (Conductor.instance.songPositionInBeats - lastSqueezeBeat) > 0.15f) Jukebox.PlayOneShotGame($"octopusMachine/{action.ToLower()}");
if (action == "Squeeze") lastSqueezeBeat = Conductor.instance.songPositionInBeats;
if (action != "Release" || (Conductor.instance.songPositionInBeatsAsDouble - lastSqueezeBeat) > 0.15f) SoundByte.PlayOneShotGame($"octopusMachine/{action.ToLower()}");
if (action == "Squeeze") lastSqueezeBeat = Conductor.instance.songPositionInBeatsAsDouble;
anim.DoScaledAnimationAsync(action, 0.5f);
isSqueezed = (action == "Squeeze");