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.alpha = (obj ? 1f : 0f); } }