summaryrefslogtreecommitdiff
path: root/ROUNDS/SoundImplementation/SoundPlayerStatic.cs
blob: 5c0625125443ca79b18b18eb56d9694f937ffc7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
using Sonigon;
using UnityEngine;

namespace SoundImplementation;

public class SoundPlayerStatic : MonoBehaviour
{
	[SerializeField]
	private SoundEvent soundButtonHover;

	[SerializeField]
	private SoundEvent soundButtonClick;

	[SerializeField]
	private SoundEvent soundMatchFound;

	[SerializeField]
	private SoundEvent soundPlayerAdded;

	[SerializeField]
	private SoundEvent soundPlayerBallAppear;

	[SerializeField]
	private SoundEvent soundPlayerBallDisappear;

	[SerializeField]
	private SoundEvent soundLevelTransitionIn;

	[SerializeField]
	private SoundEvent soundLevelTransitionOut;

	private bool isGoingToDelete;

	private bool useDontDestroyOnLoad = true;

	private bool debugInstanceDestroyed = true;

	public static SoundPlayerStatic Instance { get; private set; }

	public void PlayButtonHover()
	{
		SoundManager.Instance.Play(soundButtonHover, base.transform);
	}

	public void PlayButtonClick()
	{
		SoundManager.Instance.Play(soundButtonClick, base.transform);
	}

	public void PlayMatchFound()
	{
		SoundManager.Instance.Play(soundMatchFound, base.transform);
	}

	public void PlayPlayerAdded()
	{
		SoundManager.Instance.Play(soundPlayerAdded, base.transform);
	}

	public void PlayPlayerBallAppear()
	{
		SoundManager.Instance.Play(soundPlayerBallAppear, base.transform);
	}

	public void PlayPlayerBallDisappear()
	{
		SoundManager.Instance.Play(soundPlayerBallDisappear, base.transform);
	}

	public void PlayLevelTransitionIn()
	{
		SoundManager.Instance.Play(soundLevelTransitionIn, base.transform);
	}

	public void PlayLevelTransitionOut()
	{
		SoundManager.Instance.Play(soundLevelTransitionOut, base.transform);
	}

	private void Awake()
	{
		InstanceCheck();
		if (useDontDestroyOnLoad && !isGoingToDelete)
		{
			Object.DontDestroyOnLoad(base.gameObject);
		}
	}

	private void InstanceCheck()
	{
		if (Instance == null)
		{
			Instance = this;
		}
		else if (Instance != this)
		{
			isGoingToDelete = true;
			if (Application.isPlaying)
			{
				Object.Destroy(base.gameObject);
			}
		}
	}
}