コード例 #1
0
        internal static bool Prefix(PlayerManager __instance, GearItem gi)
        {
            if (ComponentUtils.GetComponent <FirstPersonItem>(gi) != null)
            {
                return(true);
            }

            if (ComponentUtils.GetEquippableModComponent(gi) is null)
            {
                return(true);
            }

            var currentGi = __instance.m_ItemInHands;

            if (currentGi != null)
            {
                __instance.UnequipItemInHands();
            }

            if (gi != currentGi)
            {
                __instance.EquipItem(gi, false);
            }

            return(false);
        }
コード例 #2
0
 public static void Prefix(bool enable)
 {
     if (enable)
     {
         PlayerManager playerManager = GameManager.GetPlayerManagerComponent();
         GearEquipper.Unequip(ComponentUtils.GetEquippableModComponent(playerManager.m_ItemInHands));
     }
 }
コード例 #3
0
        internal static void Prefix(PlayerManager __instance, GearItem gi)
        {
            EquippableModComponent equippable = ComponentUtils.GetEquippableModComponent(__instance.m_ItemInHands);

            if (equippable != null)
            {
                __instance.UnequipItemInHands();
            }
        }
コード例 #4
0
        internal static void Postfix(PlayerManager __instance, PlayerControlMode mode)
        {
            if (mode == lastMode)
            {
                return;
            }

            lastMode = mode;

            EquippableModComponent equippable = ComponentUtils.GetEquippableModComponent(__instance.m_ItemInHands);

            equippable?.OnControlModeChangedWhileEquipped?.Invoke();
        }
コード例 #5
0
        private static void Postfix(GearItem gi, ref bool __result)
        {
            if (__result || gi is null)
            {
                return;
            }
            EquippableModComponent equippable = ComponentUtils.GetEquippableModComponent(gi);

            if (equippable != null)
            {
                __result = true;
            }
        }
コード例 #6
0
        public static bool Prefix(MonoBehaviour context)
        {
            PlayerManager playerManager = GameManager.GetPlayerManagerComponent();

            if (playerManager is null || GameManager.ControlsLocked() || InterfaceManager.IsOverlayActiveImmediate() || !InputManager.GetFirePressed(context) || InputManager.GetFireReleased(context))
            {
                return(true);
            }

            EquippableModComponent equippable = ComponentUtils.GetEquippableModComponent(playerManager.m_ItemInHands);

            if (equippable?.Implementation is null)
            {
                return(true);
            }

            equippable.OnPrimaryAction?.Invoke();
            return(false);
        }
コード例 #7
0
        public static bool Prefix()
        {
            PlayerManager playerManager = GameManager.GetPlayerManagerComponent();

            if (playerManager is null || InterfaceManager.IsOverlayActiveImmediate() || playerManager.IsInPlacementMode() || playerManager.ItemInHandsPlaceable())
            {
                return(true);
            }

            EquippableModComponent equippable = ComponentUtils.GetEquippableModComponent(playerManager.m_ItemInHands);

            if (equippable is null)
            {
                return(true);
            }

            equippable.OnSecondaryAction?.Invoke();
            return(false);
        }
コード例 #8
0
 internal static void Postfix(PlayerManager __instance)
 {
     GearEquipper.Equip(ComponentUtils.GetEquippableModComponent(__instance.m_ItemInHands));
 }