// 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); } } }