Files
2026-03-04 10:03:45 +08:00

391 lines
8.4 KiB
C#

using DarkTonic.MasterAudio;
using UnityEngine;
using UnityEngine.UI;
public class BottomBar : MonoBehaviour
{
public GameObject backToMainmenuButton;
private int sceneType;
public GameObject LoadingStuffPanel;
private Residence isResidence;
[SerializeField]
private Image speakerImage;
[SerializeField]
private Sprite[] speakerSprites;
[SerializeField]
private bool musicPlaying = true;
[SerializeField]
private AudioSource audioSource;
private MainGameScene mainGameScene;
private void Start()
{
GetSceneType();
if ((bool)FScriptsHandler.Instance)
{
backToMainmenuButton.SetActive(value: true);
}
else if (sceneType == 6 || sceneType == 7)
{
backToMainmenuButton.SetActive(value: true);
}
else
{
backToMainmenuButton.SetActive(value: false);
}
mainGameScene = Object.FindObjectOfType<MainGameScene>();
isResidence = Object.FindObjectOfType<Residence>();
LoadingStuffPanel.SetActive(value: false);
if (!FScriptsHandler.Instance)
{
speakerImage.gameObject.SetActive(value: true);
}
else
{
speakerImage.gameObject.SetActive(value: false);
}
musicPlaying = Singleton<SaveDataManager>.Instance.SettingsData.IsBackgroundMusicEnabled;
if (!FScriptsHandler.Instance)
{
if (musicPlaying)
{
MasterAudio.UnmuteGroup("kornev_music_-_lounge_piano_background_ambient_(full_version)");
speakerImage.sprite = speakerSprites[0];
}
else
{
MasterAudio.MuteGroup("kornev_music_-_lounge_piano_background_ambient_(full_version)");
speakerImage.sprite = speakerSprites[1];
}
speakerImage.gameObject.SetActive(value: true);
}
if (musicPlaying)
{
speakerImage.sprite = speakerSprites[0];
}
else
{
speakerImage.sprite = speakerSprites[1];
}
}
private void GetSceneType()
{
if (Object.FindObjectOfType<EquipmentManager>() != null)
{
sceneType = 1;
}
else if (Object.FindObjectOfType<ShopManager>() != null)
{
sceneType = 2;
}
else if (Object.FindObjectOfType<LocationMap>() != null)
{
sceneType = 3;
}
else if (Object.FindObjectOfType<SettingsManager>() != null)
{
sceneType = 4;
}
else if (Object.FindObjectOfType<HelpManager>() != null)
{
sceneType = 5;
}
else if (Object.FindObjectOfType<EscapeMenu>() != null)
{
sceneType = 6;
}
else if (Object.FindObjectOfType<Residence>() != null)
{
sceneType = 7;
}
else if (Object.FindObjectOfType<QuestManager>() != null)
{
sceneType = 8;
}
else if (Object.FindObjectOfType<SkillManager>() != null)
{
sceneType = 9;
}
else if (Object.FindObjectOfType<FishPediaManager>() != null)
{
sceneType = 10;
}
else if (Object.FindObjectOfType<FishPersonalRecord>() != null)
{
sceneType = 11;
}
else if (Object.FindObjectOfType<RankingManager>() != null)
{
sceneType = 12;
}
else if (Object.FindObjectOfType<TournamentScene>() != null)
{
sceneType = 13;
}
else if (Object.FindObjectOfType<MultiplayerAddectiveScene>() != null)
{
sceneType = 14;
}
}
private void Update()
{
if (GameManager.Instance.messageBoxStack.Count == 0 && (GameManager.Instance.player.GetButtonDown("exitKey") || GameManager.Instance.player.GetButtonDown("B")))
{
BackButton();
}
if (isResidence != null)
{
backToMainmenuButton.SetActive(value: true);
}
if (GameManager.Instance._playerData.currentPlayerProfileIndex == -1)
{
speakerImage.gameObject.SetActive(value: false);
}
}
public void BackButton()
{
GetSceneType();
EquipmentManager equipmentManager = Object.FindObjectOfType<EquipmentManager>();
ItemsViewer itemsViewer = Object.FindObjectOfType<ItemsViewer>();
Home home = Object.FindObjectOfType<Home>();
Debug.Log("BackButton: " + sceneType);
if (sceneType != 10 && (bool)itemsViewer)
{
itemsViewer.Exit();
return;
}
switch (sceneType)
{
case 0:
if ((bool)mainGameScene && mainGameScene.homeController.lastDisplayedContent == 0)
{
if (GameObject.Find("FreeFishing") == null)
{
mainGameScene.ExitButton();
}
else
{
mainGameScene.ShowContent(MainGameScene.Content.Home);
}
}
break;
case 1:
if (equipmentManager != null)
{
if (equipmentManager.viewMode == EquipmentManager.ViewMode.Popup)
{
equipmentManager.HidePopupByBtn();
}
else if ((bool)mainGameScene)
{
mainGameScene.BackToLastContent();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
}
break;
case 2:
if ((bool)mainGameScene)
{
mainGameScene.BackToLastContent();
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 3:
GameManager.Instance.UnloadAddectiveScene();
break;
case 4:
if ((bool)mainGameScene)
{
mainGameScene.BackToLastContent();
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 5:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Home);
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 6:
if (home.lastDisplayedContent == 0)
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 7:
GameManager.Instance.UnloadAddectiveScene();
break;
case 8:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Home);
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 9:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Home);
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 10:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Records);
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 11:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Home);
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 12:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Records);
}
else if (FScriptsHandler.Instance != null)
{
GameManager.Instance.UnloadAddectiveScene();
}
else
{
GameManager.Instance.UnloadAddectiveScene();
}
break;
case 13:
if ((bool)mainGameScene)
{
mainGameScene.BackToLastContent();
}
break;
case 14:
if ((bool)mainGameScene)
{
mainGameScene.ShowContent(MainGameScene.Content.Home);
}
break;
}
}
public void BackToMainMenu()
{
GameManager.Instance.UnloadAddectiveScene();
GameManager.Instance.LoadScene("Startowa", goToMenu: true);
}
public void CloseFirstHelp()
{
GameManager.Instance.PlayOnClickSound();
GameManager.Instance.UnloadAddectiveScene();
}
public void RunLinkTest()
{
Application.OpenURL("https://linktr.ee/ufs2");
}
public void MuteMusicButton()
{
_ = mainGameScene.gameObject;
musicPlaying = !musicPlaying;
Singleton<SaveDataManager>.Instance.SettingsData.IsBackgroundMusicEnabled = musicPlaying;
if (musicPlaying)
{
MasterAudio.UnmuteGroup("kornev_music_-_lounge_piano_background_ambient_(full_version)");
speakerImage.sprite = speakerSprites[0];
}
else
{
MasterAudio.MuteGroup("kornev_music_-_lounge_piano_background_ambient_(full_version)");
speakerImage.sprite = speakerSprites[1];
}
speakerImage.gameObject.SetActive(value: true);
}
public void InitializeBackgroundMusic()
{
speakerImage.gameObject.SetActive(value: true);
GameObject gameObject = mainGameScene.gameObject;
audioSource = gameObject.GetComponent<AudioSource>();
musicPlaying = Singleton<SaveDataManager>.Instance.SettingsData.IsBackgroundMusicEnabled;
audioSource.mute = !musicPlaying;
if (musicPlaying)
{
speakerImage.sprite = speakerSprites[0];
}
else
{
speakerImage.sprite = speakerSprites[1];
}
}
}