using System; using UnityEngine; public class UIAquarium : MonoBehaviour { [SerializeField] private UIAquariumInfo _aquariumInfo; [SerializeField] private UICreateAquarium _createAquarium; [SerializeField] private UIManageAquarium _manageAquarium; [SerializeField] private UIFishInspect _fishInspect; [SerializeField] private UIFishInspect _fishInspectVR; [SerializeField] private UIFader _fader; private AquariumController _aquarium; private UIFishInspect fishInspect { get { return (!VRManager.IsVROn()) ? _fishInspect : _fishInspectVR; } } private void Start() { _manageAquarium.Initialize(); } public void ShowInfo(AquariumController aquarium) { _aquariumInfo.Show(aquarium); } public void HideInfo() { _aquariumInfo.Hide(); } public void Show(AquariumController aquarium) { _aquarium = aquarium; if (aquarium.Settings.HasAnyFish()) { _manageAquarium.Show(aquarium); } else { _createAquarium.Show(aquarium); } } public void SetAquarium(AquariumController aquarium) { _aquarium = aquarium; _manageAquarium.SetAquarium(aquarium); } public void ShowFaded(AquariumController aquarium, Action onFadeOut) { _aquarium = aquarium; _fader.FadeOut(delegate { if (onFadeOut != null) { onFadeOut(); } if (aquarium.Settings.HasAnyFish()) { _manageAquarium.Show(aquarium); } else { _createAquarium.Show(aquarium); } _fader.FadeIn(); }); } public void InspectFish(FishManager.FishKept fish) { _manageAquarium.Hide(); fishInspect.Show(_manageAquarium.GetFish(fish), _aquarium); } public void CloseInspectFish() { _manageAquarium.Show(_aquarium); fishInspect.Hide(); } public void InspectFishFaded(FishManager.FishKept fish, Action onFadeOut) { _fader.FadeOut(delegate { if (onFadeOut != null) { onFadeOut(); } _manageAquarium.Hide(); fishInspect.Show(_manageAquarium.GetFish(fish), _aquarium); _fader.FadeIn(); }); } public void CloseInspectFishFaded(Action onFadeOut) { _fader.FadeOut(delegate { if (onFadeOut != null) { onFadeOut(); } _manageAquarium.Show(_aquarium); fishInspect.Hide(); _fader.FadeIn(); }); } public void OnCreateAquarium() { _createAquarium.Hide(); _manageAquarium.Show(_aquarium); } public void OnRemakeAquarium() { _manageAquarium.Hide(); _createAquarium.Show(_aquarium); } public void Hide() { _createAquarium.Hide(); _manageAquarium.Hide(); } public void HideFaded(Action onFadeOut) { _fader.FadeOut(delegate { if (onFadeOut != null) { onFadeOut(); } _createAquarium.Hide(); _manageAquarium.Hide(); _fader.FadeIn(); }); } public bool TryClose() { if (_createAquarium.isActiveAndEnabled) { _createAquarium.OnCancel(); return true; } if (_manageAquarium.isActiveAndEnabled) { _manageAquarium.OnClose(); return true; } if (fishInspect.isActiveAndEnabled) { fishInspect.OnClose(); return true; } return false; } }