internal static void Configure(Panel_FeedFire panel) { panel.m_MaxMeltSnowLiters = MaxLiters; FieldInfo meltSnowLitersField = AccessTools.Field(panel.GetType(), "m_MeltSnowLiters"); meltSnowLitersField.SetValue(panel, Mathf.Clamp((float)meltSnowLitersField.GetValue(panel), 0, MaxLiters)); FieldInfo boilWaterLitersField = AccessTools.Field(panel.GetType(), "m_BoilWaterLiters"); boilWaterLitersField.SetValue(panel, Mathf.Clamp((float)boilWaterLitersField.GetValue(panel), 0, MaxLiters)); if (Cookware == null) { labelCookingWarning.text = Localization.Get("GAMEPLAY_RequiresCookware"); labelCookingWarning.gameObject.SetActive(true); } else { labelCookingWarning.gameObject.SetActive(false); } }
internal static void ClampBoilWaterAmount(Panel_FeedFire panel) { float totalCapacity = Water.GetRemainingCapacity(LiquidQuality.Potable) + Water.GetRemainingCapacityEmpty(); labelCookingWarning.gameObject.SetActive(Cookware == null); FieldInfo boilWaterLitersField = AccessTools.Field(panel.GetType(), "m_BoilWaterLiters"); float value = Mathf.Clamp((float)boilWaterLitersField.GetValue(panel), 0, MaxLiters); boilWaterLitersField.SetValue(panel, value); panel.m_ButtonIncreaseWater.SetActive(panel.m_ButtonIncreaseWater.activeSelf && value < MaxLiters); panel.m_WaterAmountLabel.text = Utils.GetLiquidQuantityStringWithUnitsNoOunces(InterfaceManager.m_Panel_OptionsMenu.m_State.m_Units, value); }
internal static void ClampMeltSnowAmount(Panel_FeedFire panel) { float totalCapacity = Water.GetRemainingCapacity(LiquidQuality.NonPotable) + Water.GetRemainingCapacityEmpty(); float limit = MaxLiters; if (limit > 0 && totalCapacity == 0) { labelCookingWarning.text = Localization.Get("GAMEPLAY_NoCapacityAvailable"); limit = 0; } labelCookingWarning.gameObject.SetActive(limit == 0); FieldInfo meltSnowLitersField = AccessTools.Field(panel.GetType(), "m_MeltSnowLiters"); float value = Mathf.Clamp((float)meltSnowLitersField.GetValue(panel), 0, limit); meltSnowLitersField.SetValue(panel, value); panel.m_ButtonIncreaseWater.SetActive(panel.m_ButtonIncreaseWater.activeSelf && value < limit); panel.m_WaterAmountLabel.text = Utils.GetLiquidQuantityStringWithUnitsNoOunces(InterfaceManager.m_Panel_OptionsMenu.m_State.m_Units, value); }