protected override void pluginSpecificImpl() { if (resource_name == FNRESOURCE_CHARGED_PARTICLES) { flow_type = FNRESOURCE_FLOWTYPE_EVEN; } if (String.Equals(this.resource_name, FNResourceManager.FNRESOURCE_WASTEHEAT)) // passive dissip of waste heat - a little bit of this { double vessel_mass = my_vessel.GetTotalMass(); double passive_dissip = passive_temp_p4 * GameConstants.stefan_const * vessel_mass * 2.0; internl_power_extract += passive_dissip * TimeWarp.fixedDeltaTime; if (my_vessel.altitude <= PluginHelper.getMaxAtmosphericAltitude(my_vessel.mainBody)) // passive convection - a lot of this { double pressure = FlightGlobals.getStaticPressure(my_vessel.transform.position); double delta_temp = 20; double conv_power_dissip = pressure * delta_temp * vessel_mass * 2.0 * GameConstants.rad_const_h / 1e6 * TimeWarp.fixedDeltaTime; internl_power_extract += conv_power_dissip; } if (internl_power_extract < 0 && PluginHelper.isThermalDissipationDisabled()) // set buildup/dissip of waste heat to 0 if waste heat is disabled { internl_power_extract = 0; } } }