This repository has been archived on 2026-04-30. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Last-Ember/Scripts/Managers/PauseManager.cs
T
2019-03-08 09:54:14 +11:00

66 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PauseManager {
//singleton members
private static PauseManager singletonObject = null;
public static PauseManager Instance {
get {
if (singletonObject != null) {
return singletonObject;
} else {
return singletonObject = new PauseManager();
}
}
set {
singletonObject = value;
}
}
//paused controller
bool paused = false;
public bool Paused {
get {
return paused;
}
set {
paused = value;
TriggerLists();
}
}
public delegate void CallbackHandler();
List<CallbackHandler> onPausedList = new List<CallbackHandler>();
List<CallbackHandler> onResumeList = new List<CallbackHandler>();
private PauseManager() {}
public void PushOnPaused(CallbackHandler callback) {
onPausedList.Add(callback);
}
public void PushOnResume(CallbackHandler callback) {
onResumeList.Add(callback);
}
public void PurgeLists() {
onPausedList.Clear();
onResumeList.Clear();
}
void TriggerLists() {
if (Paused) {
foreach(CallbackHandler callback in onPausedList) {
callback();
}
}
else {
foreach(CallbackHandler callback in onResumeList) {
callback();
}
}
}
}