Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/UI_HUDInventoryDisabler.cs
2026-03-04 09:37:33 +08:00

101 lines
2.7 KiB
C#

using Michsky.UI.Heat;
using Obvious.Soap;
using SoapCustomVariable;
using UnityEngine;
public class UI_HUDInventoryDisabler : MonoBehaviour
{
public ScriptableEventNoParam onOpenInventoryNotAllowed;
public ScriptableEventFishingSetData onFishingSetUnassembled;
public ScriptableEventFishingSetData onFishingSetEquip;
public ScriptableEventNoParam onGearDamaged;
public FloatVariable groundSetting;
public FSMVariable playerState;
[SerializeField]
private BoolVariable enabler;
[SerializeField]
private GameObject fishingSetUnassembledNotifyPanel;
[SerializeField]
private SliderManager groundSettingSlider;
[SerializeField]
private GameObject menuNotAllowedPromtPanel;
[SerializeField]
private GameObject yourGearIsDamaged;
private CanvasGroup _canvasGroup;
private bool _isSetGroundControlled;
private void OnEnable()
{
Enabler_OnValueChanged(enabler.Value);
PlayerStateOnOnValueChanged(playerState.Value);
enabler.OnValueChanged += Enabler_OnValueChanged;
onFishingSetUnassembled.OnRaised += OnFishingSetUnassembledOnOnRaised;
playerState.OnValueChanged += PlayerStateOnOnValueChanged;
onFishingSetEquip.OnRaised += OnFishingSetEquipOnOnRaised;
onOpenInventoryNotAllowed.OnRaised += OnOpenInventoryNotAllowedOnOnRaised;
onGearDamaged.OnRaised += OnGearDamagedOnOnRaised;
}
private void OnDisable()
{
enabler.OnValueChanged -= Enabler_OnValueChanged;
onFishingSetUnassembled.OnRaised -= OnFishingSetUnassembledOnOnRaised;
playerState.OnValueChanged -= PlayerStateOnOnValueChanged;
onFishingSetEquip.OnRaised -= OnFishingSetEquipOnOnRaised;
onOpenInventoryNotAllowed.OnRaised -= OnOpenInventoryNotAllowedOnOnRaised;
onGearDamaged.OnRaised -= OnGearDamagedOnOnRaised;
}
private void OnGearDamagedOnOnRaised()
{
yourGearIsDamaged.SetActive(value: true);
}
private void OnOpenInventoryNotAllowedOnOnRaised()
{
menuNotAllowedPromtPanel.SetActive(value: true);
}
private void OnFishingSetEquipOnOnRaised(FishingSetData obj)
{
_isSetGroundControlled = obj.SetType == FishingMethodType.Float;
groundSettingSlider.mainSlider.value = groundSetting.Value;
PlayerStateOnOnValueChanged(playerState.Value);
}
private void PlayerStateOnOnValueChanged(State state)
{
if ((uint)state <= 1u || state == State.vehicleFishing)
{
groundSettingSlider.gameObject.SetActive(_isSetGroundControlled);
}
else
{
groundSettingSlider.gameObject.SetActive(value: false);
}
}
private void OnFishingSetUnassembledOnOnRaised(FishingSetData obj)
{
fishingSetUnassembledNotifyPanel.SetActive(value: true);
}
private void Enabler_OnValueChanged(bool obj)
{
_canvasGroup = (_canvasGroup ? _canvasGroup : GetComponent<CanvasGroup>());
_canvasGroup.alpha = (obj ? 1f : 0f);
}
}