187 lines
6.6 KiB
C#
187 lines
6.6 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class VRQuickMenu : MonoBehaviour
|
|
{
|
|
[HideInInspector]
|
|
public FishingPlayer fishingPlayer;
|
|
|
|
[HideInInspector]
|
|
public GameController gameController;
|
|
|
|
public List<VRQuickMenuButton> vrQuickMenuButtons = new List<VRQuickMenuButton>();
|
|
|
|
private void Start()
|
|
{
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
if (gameController == null)
|
|
{
|
|
gameController = GameController.Instance;
|
|
}
|
|
if (fishingPlayer == null)
|
|
{
|
|
fishingPlayer = gameController.fishingPlayer;
|
|
}
|
|
if ((bool)fishingPlayer)
|
|
{
|
|
GetComponent<Canvas>().worldCamera = fishingPlayer.ufpsCameraCamera;
|
|
base.transform.parent = fishingPlayer.transform;
|
|
base.transform.position = fishingPlayer.ufpsCamera.transform.position;
|
|
base.transform.eulerAngles = new Vector3(base.transform.eulerAngles.x, fishingPlayer.ufpsCamera.transform.eulerAngles.y, base.transform.eulerAngles.z);
|
|
base.transform.localScale = new Vector3(0.0016f, 0.0016f, 0.0015f);
|
|
}
|
|
if (vrQuickMenuButtons.Count == 0)
|
|
{
|
|
vrQuickMenuButtons = GetComponentsInChildren<VRQuickMenuButton>(true).ToDynList();
|
|
}
|
|
for (int i = 0; i < vrQuickMenuButtons.Count; i++)
|
|
{
|
|
vrQuickMenuButtons[i].gameObject.SetActive(IsActionAvailable(vrQuickMenuButtons[i].quickMenuAction));
|
|
}
|
|
}
|
|
|
|
public void ButtonClicked(VRQuickMenuButton.QuickMenuAction quickMenuAction)
|
|
{
|
|
if (fishingPlayer == null)
|
|
{
|
|
fishingPlayer = gameController.fishingPlayer;
|
|
}
|
|
switch (quickMenuAction)
|
|
{
|
|
case VRQuickMenuButton.QuickMenuAction.FLASHLIGHT:
|
|
fishingPlayer.ToggleFlashlight();
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.HUNTER_VISION:
|
|
fishingPlayer.TurnOnHunterVision();
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.RECENTER:
|
|
VRManager.Instance.Recenter();
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.RECENTER_HUD:
|
|
HUDManager.Instance.RecenterHUD();
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.TIME_INC:
|
|
gameController.ChangeHour(true);
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.TIME_DEC:
|
|
gameController.ChangeHour(false);
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.EXIT_BOAT:
|
|
if (fishingPlayer.boatSimulator != null && !gameController.oceanLevel && !fishingPlayer.currentHands.baitWasThrown && !fishingPlayer.IsSomethingOnBait())
|
|
{
|
|
fishingPlayer.ExitBoatCoroutine();
|
|
}
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.BUG_REPORT:
|
|
BugReporter.Instance.OnShowReportWidow(true);
|
|
BugReporter.Instance.ReportBug();
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.CHAT:
|
|
fishingPlayer.EnterChat(true);
|
|
HUDManager.Instance.hudMultiplayer.EnterInputMode(true);
|
|
VRManager.Instance.ShowKeyboard(HUDManager.Instance.hudMultiplayer.chatInputField, Vector3.zero);
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.START_TOURNAMENT:
|
|
MultiplayerManager.Instance.StartTournament();
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.ROD_STAND:
|
|
{
|
|
float num = Vector3.Distance(fishingPlayer.transform.position, FishingHands.rodStand.transform.position);
|
|
if (!FishingHands.rodStand.gameObject.activeSelf)
|
|
{
|
|
FishingHands.rodStand.PutStand();
|
|
gameController.hudManager.UpdateControls();
|
|
}
|
|
else if (FishingHands.rodStand.gameObject.activeSelf && !FishingHands.rodStand.isBoatStand)
|
|
{
|
|
if (num > 3f)
|
|
{
|
|
gameController.hudManager.ShowMessage(Utilities.GetTranslation("HUD_MESSAGE/ROD_POD_FAR"));
|
|
break;
|
|
}
|
|
if (FishingHands.rodStand.rodPlacesOccupied > 0)
|
|
{
|
|
gameController.hudManager.ShowMessage(Utilities.GetTranslation("HUD_MESSAGE/ROD_POD_NOT_EMPTY"));
|
|
break;
|
|
}
|
|
FishingHands.rodStand.TakeStand();
|
|
gameController.hudManager.UpdateControls();
|
|
}
|
|
break;
|
|
}
|
|
case VRQuickMenuButton.QuickMenuAction.MENU:
|
|
HUDManager.Instance.PauseGame(true);
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.STOP_ICE_FISHING:
|
|
fishingPlayer.fishingController.FinishIceFishing();
|
|
gameController.hudManager.ShowHudFishing(false);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public bool IsActionAvailable(VRQuickMenuButton.QuickMenuAction quickMenuAction)
|
|
{
|
|
if (fishingPlayer == null || gameController == null)
|
|
{
|
|
return false;
|
|
}
|
|
switch (quickMenuAction)
|
|
{
|
|
case VRQuickMenuButton.QuickMenuAction.HUNTER_VISION:
|
|
if (!fishingPlayer.isHunterVisionOn && fishingPlayer.currentState != FishingPlayer.PlayerState.WATCH_FISH && fishingPlayer.currentState != FishingPlayer.PlayerState.DEATH && !fishingPlayer.underwaterCamera.isTurnedOn && (!GlobalSettings.Instance || (bool)GlobalSettings.Instance.skillsManager.GetSkill(SkillsManager.SkillType.HUNTER_VISION_1).isUnlocked || (bool)GlobalSettings.Instance.skillsManager.GetSkill(SkillsManager.SkillType.HUNTER_VISION_2).isUnlocked || (bool)GlobalSettings.Instance.skillsManager.GetSkill(SkillsManager.SkillType.HUNTER_VISION_3).isUnlocked))
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
case VRQuickMenuButton.QuickMenuAction.RECENTER:
|
|
return false;
|
|
case VRQuickMenuButton.QuickMenuAction.RECENTER_HUD:
|
|
return true;
|
|
case VRQuickMenuButton.QuickMenuAction.TIME_INC:
|
|
if ((bool)fishingPlayer.fish)
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.TIME_DEC:
|
|
if ((bool)fishingPlayer.fish)
|
|
{
|
|
return false;
|
|
}
|
|
break;
|
|
case VRQuickMenuButton.QuickMenuAction.EXIT_BOAT:
|
|
if (fishingPlayer.boatSimulator != null && !gameController.oceanLevel && !fishingPlayer.currentHands.baitWasThrown && !fishingPlayer.IsSomethingOnBait())
|
|
{
|
|
break;
|
|
}
|
|
return false;
|
|
case VRQuickMenuButton.QuickMenuAction.BUG_REPORT:
|
|
return !GlobalSettings.Instance || GlobalSettings.Instance.currentPlatform != GlobalSettings.Platform.ARCADE;
|
|
case VRQuickMenuButton.QuickMenuAction.CHAT:
|
|
return gameController.isMultiplayer;
|
|
case VRQuickMenuButton.QuickMenuAction.START_TOURNAMENT:
|
|
return gameController.isMultiplayer && gameController.isTournament && PhotonNetwork.isMasterClient && !gameController.tournamentManager.tournamentStarted;
|
|
case VRQuickMenuButton.QuickMenuAction.ROD_STAND:
|
|
return (bool)FishingHands.rodStand && !FishingHands.rodStand.isBoatStand && fishingPlayer.currentState == FishingPlayer.PlayerState.FISHING && !fishingPlayer.underwaterCamera.isTurnedOn;
|
|
case VRQuickMenuButton.QuickMenuAction.MENU:
|
|
return false;
|
|
case VRQuickMenuButton.QuickMenuAction.STOP_ICE_FISHING:
|
|
return fishingPlayer.currentState == FishingPlayer.PlayerState.ICE_FISHING && !fishingPlayer.fish && fishingPlayer.currentHands.bait.gameObject.layer != LayerMask.NameToLayer("TransparentFX");
|
|
case VRQuickMenuButton.QuickMenuAction.STOP_FISHING:
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public void ShowAllButtons()
|
|
{
|
|
for (int i = 0; i < vrQuickMenuButtons.Count; i++)
|
|
{
|
|
vrQuickMenuButtons[i].gameObject.SetActive(true);
|
|
}
|
|
}
|
|
}
|