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