akanyan
4ad595f6c3
* AttractVideoPlayer,LoadBoost: allow setting a cache directory * AttractVideoPlayer: color leds * BetterGiveUp: prevent multiple restarts in a row * use GetTriggerOn in general where applicable
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using MU3.Battle;
|
|
using MU3.Game;
|
|
using MU3.Notes;
|
|
using MU3.Util;
|
|
|
|
namespace MU3.Sequence;
|
|
|
|
class patch_PlayMusic: PlayMusic {
|
|
private static readonly float PAUSE_CD = 5f;
|
|
private static readonly float UNPAUSE_CD = 0.5f;
|
|
private GameEngine _gameEngine;
|
|
private NotesManager ntMgr => _gameEngine?.notesManager;
|
|
private patch_GameBGM pgm => (patch_GameBGM)Singleton<GameSound>.instance.gameBGM;
|
|
public static bool Paused = false;
|
|
private float pauseTimer = 0f;
|
|
public extern bool orig_updateState(float deltaTime = -1f);
|
|
public extern void orig_destroy();
|
|
private extern void orig_Enter_SetupScene();
|
|
private void Enter_SetupScene() {
|
|
orig_Enter_SetupScene();
|
|
Paused = false;
|
|
}
|
|
public override bool updateState(float deltaTime = -1f) {
|
|
pauseTimer += deltaTime;
|
|
if(Singleton<UIInput>.instance.getTriggerOn(UIInput.Key.Service) && !Singleton<UIInput>.instance.getStateOn(UIInput.Key.Test)) {
|
|
if((!Paused && pauseTimer >= PAUSE_CD) || (Paused && pauseTimer >= UNPAUSE_CD)) {
|
|
Paused = !Paused;
|
|
pgm.pause(Paused);
|
|
ntMgr.setPause(Paused);
|
|
pauseTimer = 0f;
|
|
}
|
|
}
|
|
return orig_updateState(deltaTime);
|
|
}
|
|
} |