internal static void Postfix(Panel_Cooking __instance)
        {
            Il2CppSystem.Collections.Generic.List <GearItem> foodList = __instance.m_FoodList;
            if (foodList == null)
            {
                return;
            }

            foreach (GearItem eachGearItem in foodList)
            {
                CookingModifier cookingModifier = ComponentUtils.GetComponent <CookingModifier>(eachGearItem);
                cookingModifier?.Revert();
                //if(cookingModifier) Implementation.Log("{0} reverted from Melt and Cook", eachGearItem.name);
            }
        }
        internal static void Postfix(Panel_Cooking __instance)
        {
            List <GearItem> foodList = Traverse.Create(__instance).Field("m_FoodList").GetValue <List <GearItem> >();

            if (foodList == null)
            {
                return;
            }

            foreach (GearItem eachGearItem in foodList)
            {
                CookingModifier cookingModifier = ModUtils.GetComponent <CookingModifier>(eachGearItem);
                cookingModifier?.Revert();
            }
        }
        public static void Execute()
        {
            Panel_Cooking  panel_Cooking  = InterfaceManager.m_Panel_Cooking;
            GearItem       cookedItem     = panel_Cooking.GetSelectedFood();
            CookingPotItem cookingPotItem = panel_Cooking.m_CookingPotInteractedWith;

            GearItem result = cookedItem.Drop(1, false, true);

            CookingModifier cookingModifier = ComponentUtils.GetOrCreateComponent <CookingModifier>(result);

            cookingModifier.additionalMinutes = result.m_Cookable.m_PotableWaterRequiredLiters * panel_Cooking.m_MinutesToMeltSnowPerLiter;
            cookingModifier.Apply();

            GameAudioManager.Play3DSound(result.m_Cookable.m_PutInPotAudio, cookingPotItem.gameObject);
            cookingPotItem.StartCooking(result);
            panel_Cooking.ExitCookingInterface();
        }