internal static void Prefix(Panel_Cooking __instance)
        {
            GearItem cookedItem    = __instance.GetSelectedFood();
            bool     requiresWater = (cookedItem?.m_Cookable?.m_PotableWaterRequiredLiters ?? 0) > 0;

            if (Utils.IsMouseActive())
            {
                MeltAndCookButton.SetActive(requiresWater);
            }
            else
            {
                __instance.m_ButtonLegendContainer.BeginUpdate();
                __instance.m_ButtonLegendContainer.UpdateButton("Inventory_Drop", MeltAndCookButton.text, requiresWater, 2, false);
            }
        }
        internal static bool Prefix(Panel_Cooking __instance)
        {
            if (!InputManager.GetInventoryDropPressed(GameManager.Instance()))
            {
                return(true);
            }

            GearItem cookedItem    = __instance.GetSelectedFood();
            bool     requiresWater = (cookedItem?.m_Cookable?.m_PotableWaterRequiredLiters ?? 0) > 0;

            if (!requiresWater)
            {
                return(true);
            }

            MeltAndCookButton.Execute();
            return(false);
        }
        internal static bool Prefix(Panel_Cooking __instance)
        {
            if (!InputManager.GetInventoryDropPressed(__instance))
            {
                return(true);
            }

            GearItem cookedItem    = Traverse.Create(__instance).Method("GetSelectedFood").GetValue <GearItem>();
            bool     requiresWater = (cookedItem?.m_Cookable?.m_PotableWaterRequiredLiters ?? 0) > 0;

            if (!requiresWater)
            {
                return(true);
            }

            MeltAndCookButton.Execute();
            return(false);
        }
 internal static void Postfix(Panel_Cooking __instance)
 {
     MeltAndCookButton.Initialize(__instance);
 }