internal static void Prefix(GearItem gi, ref bool __result) { if (gi == null) { return; } LiquidItem liquidItem = gi.m_LiquidItem; if (liquidItem == null || liquidItem.m_LiquidType != GearLiquidTypeEnum.Water) { return; } WaterSupply waterSupply = liquidItem.GetComponent <WaterSupply>(); if (waterSupply == null) { waterSupply = liquidItem.gameObject.AddComponent <WaterSupply>(); gi.m_WaterSupply = waterSupply; } waterSupply.m_VolumeInLiters = liquidItem.m_LiquidLiters; waterSupply.m_WaterQuality = liquidItem.m_LiquidQuality; waterSupply.m_TimeToDrinkSeconds = liquidItem.m_TimeToDrinkSeconds; waterSupply.m_DrinkingAudio = liquidItem.m_DrinkingAudio; }
internal static void Prefix(ref GearItem gi, float volumeAvailable, ref bool __result) { //Added for replacing transpiler patch: //ref to gi //float volumeAvailable //this if clause if (UpdateInspectGearTracker.isExecuting && volumeAvailable > 0f) { gi = GameManager.GetPlayerManagerComponent().m_Gear; } if (!WaterUtils.IsWaterItem(gi)) { return; } LiquidItem liquidItem = gi.m_LiquidItem; WaterSupply waterSupply = liquidItem.GetComponent <WaterSupply>(); if (waterSupply == null) { waterSupply = liquidItem.gameObject.AddComponent <WaterSupply>(); gi.m_WaterSupply = waterSupply; } waterSupply.m_VolumeInLiters = liquidItem.m_LiquidLiters; waterSupply.m_WaterQuality = liquidItem.m_LiquidQuality; waterSupply.m_TimeToDrinkSeconds = liquidItem.m_TimeToDrinkSeconds; waterSupply.m_DrinkingAudio = liquidItem.m_DrinkingAudio; }
internal static void Postfix(WaterSupply ws, bool __result) { if (GameManager.GetThirstComponent().IsAddingThirstOverTime()) { return; } LiquidItem liquidItem = ws.GetComponent <LiquidItem>(); if (liquidItem == null) { return; } liquidItem.m_LiquidLiters = ws.m_VolumeInLiters; Object.Destroy(ws); liquidItem.GetComponent <GearItem>().m_WaterSupply = null; }
internal static void Postfix(PlayerManager __instance) { WaterSupply waterSupply = AccessTools.Field(__instance.GetType(), "m_WaterSourceToDrinkFrom").GetValue(__instance) as WaterSupply; if (waterSupply == null) { return; } LiquidItem liquidItem = waterSupply.GetComponent <LiquidItem>(); if (liquidItem == null) { return; } liquidItem.m_LiquidLiters = waterSupply.m_VolumeInLiters; UnityEngine.Object.Destroy(waterSupply); liquidItem.GetComponent <GearItem>().m_WaterSupply = null; Water.AdjustWaterSupplyToWater(); }