private static float _patchMethod(VolumePump vp, CableNetwork cableNetwork) { if (vp.PowerCable != null && vp.PowerCable.CableNetwork == cableNetwork) { float usedPower = 0; if (vp.OnOff && vp.OutputSetting > 0 && vp.Error != 1) { usedPower = 10; if (vp.InputNetwork != null && vp.OutputNetwork != null) { float p1 = vp.InputNetwork.Atmosphere.PressureGassesAndLiquidsInPa; if (p1 > 0) { float p2 = vp.OutputNetwork.Atmosphere.PressureGassesAndLiquidsInPa; if (p1 < p2) { usedPower += RocketstationAtmospherics.ThermodynamicHelpers.AdiabaticPressureChange( p1, vp.OutputSetting / 1000, p2, out float v2); } } } vp.UsedPower = usedPower; return(usedPower); } } return(-1); }
static void Postfix(VolumePump __instance) { if (__instance.Powered && __instance.OnOff && __instance) { __instance.OutputNetwork.Atmosphere.GasMixture.AddEnergy(__instance.UsedPower); } }