Exemple #1
0
        // Utility
        static private void SwapBasicAndHoldInteractions(InteractionActivator activator, ref IInteraction vanillaBasic, ref IInteraction vanillaHold)
        {
            InteractionBase basic = vanillaBasic as InteractionBase;
            InteractionBase hold  = vanillaHold as InteractionBase;

            if (_swapWaterInteractions && basic.Is <GatherWaterInteraction>() && hold.Is <DrinkWaterInteraction>() ||
                _singleHoldsToPresses && activator.CanDoHold && !activator.CanDoBasic && hold.IsNot <InteractionDisassemble>())
            {
                if (basic != null)
                {
                    basic.SetOverrideHoldLocKey(basic.DefaultPressLocKey);
                }
                if (hold != null)
                {
                    hold.SetOverridePressLocKey(hold.DefaultHoldLocKey);
                }
                Utility.Swap(ref vanillaBasic, ref vanillaHold);

                InteractionTriggerBase triggerBase = activator.GetComponent <InteractionTriggerBase>();
                if (triggerBase != null)
                {
                    Utility.Swap(ref triggerBase.m_basicConditions, ref triggerBase.m_holdConditions);
                }
            }
        }