181 lines
3.0 KiB
C#
181 lines
3.0 KiB
C#
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;
|
|
}
|
|
}
|