internal static void Prefix(CookingPotItem __instance, ref CookingPotItem.CookingState cookingState)
 {
     if (cookingState == CookingPotItem.CookingState.Cooking && !__instance.AttachedFireIsBurning() && WaterUtils.GetWaterAmount(__instance) > 0)
     {
         cookingState = __instance.GetCookingState();
     }
 }
 internal static void Prefix(CookingPotItem __instance, ref CookingPotItem.CookingState cookingState)         // circumvent the transformation to "ruined" after a long time period.
 {
     if (cookingState == CookingPotItem.CookingState.Cooking && !__instance.AttachedFireIsBurning() && WaterUtils.GetWaterAmount(__instance) > 0)
     {
         cookingState = __instance.GetCookingState();
     }
 }
 internal static void Postfix(CookingPotItem __instance)
 {
     if (!__instance.AttachedFireIsBurning() && WaterUtils.IsCookingItem(__instance))
     {
         __instance.PickUpCookedItem();
     }
 }
 internal static void Postfix(CookingPotItem __instance)
 {
     TrackExitPlaceMesh.isExecuting = false;
     // This is used to instantly pick up food from pot/ cans, when using right-click (It is bugged otherwise).
     // It is not allowed for meat -> !__instance.IsDummyPot().
     if (!__instance.AttachedFireIsBurning() && WaterUtils.IsCookingItem(__instance) && !__instance.IsDummyPot())
     {
         __instance.PickUpCookedItem();
     }
 }
        internal static void Postfix(CookingPotItem __instance)
        {
            if (__instance.AttachedFireIsBurning())
            {
                return;
            }

            if (__instance.m_ParticlesSnowMelting.activeInHierarchy && WaterUtils.IsCooledDown(__instance))
            {
                Utils.SetActive(__instance.m_ParticlesSnowMelting, false);
            }
        }
 internal static void Postfix(CookingPotItem __instance)
 {
     //Implementation.Log("CookingPotItem -- UpdateMeltingSnow");
     if (__instance.AttachedFireIsBurning())
     {
         return;
     }
     else if (__instance.m_LitersSnowBeingMelted > 0)
     {
         if (__instance.m_ParticlesSnowMelting.activeInHierarchy && WaterUtils.IsCooledDown(__instance))
         {
             Utils.SetActive(__instance.m_ParticlesSnowMelting, false);
         }
     }
 }
        internal static void Postfix(CookingPotItem __instance)
        {
            if (__instance.AttachedFireIsBurning())
            {
                return;
            }

            if ((__instance.m_ParticlesWaterBoiling.activeInHierarchy || __instance.m_ParticlesWaterReady.activeInHierarchy) && WaterUtils.IsCooledDown(__instance))
            {
                Utils.SetActive(__instance.m_ParticlesWaterReady, false);
                Utils.SetActive(__instance.m_ParticlesWaterBoiling, false);

                if (__instance.GetCookingState() == CookingPotItem.CookingState.Ready)
                {
                    ModUtils.GetOrCreateComponent <OverrideCookingState>(__instance).ForceReady = true;
                    WaterUtils.SetElapsedCookingTimeForWater(__instance, WaterUtils.GetWaterAmount(__instance));
                }
            }
        }
Esempio n. 8
0
        internal static bool Prefix(CookingPotItem __instance)
        {
            float waterAmount = __instance.m_LitersWaterBeingBoiled;

            if (Water.IsNone(waterAmount))             //only applies with water
            {
                return(true);
            }
            float waterVolumeToDrink = GameManager.GetPlayerManagerComponent().CalculateWaterVolumeToDrink(waterAmount);

            if (Water.IsNone(waterVolumeToDrink))             // Not thirsty.
            {
                HUDMessage.AddMessage(Localization.Get("GAMEPLAY_Youarenotthirsty"));
                GameAudioManager.PlayGUIError();
                return(false);
            }
            bool is_ready = __instance.GetCookingState() == CookingPotItem.CookingState.Ready;
            bool is_not_ready_and_no_fire = __instance.GetCookingState() == CookingPotItem.CookingState.Cooking && !__instance.AttachedFireIsBurning();

            if (is_ready || is_not_ready_and_no_fire)             //patch applies if ready or if still cooking but no fire.
            {
                DrinkFromPot.cookingPot = __instance;

                DrinkFromPot.OnDrink();

                if (Water.IsNone(__instance.m_LitersWaterBeingBoiled))
                {
                    return(true);
                }
                else
                {
                    GameManager.GetPlayerManagerComponent().ExitInspectGearMode(false);
                    return(false);
                }
            }
            return(true);
        }