@@ -710,6 +710,7 @@ public float TenderCoalMassKG // Decreased by firing and increased
710710 bool CylinderCock42On = false ;
711711 public bool Cylinder2SteamEffects = false ;
712712 public bool CylinderAdvancedSteamEffects = false ;
713+ public bool CylinderAdvancedSteamExhaustEffects = false ;
713714 public bool GeneratorSteamEffects = false ;
714715 public float CompressorParticleDurationS = 3.0f ;
715716 public float Cylinder1ParticleDurationS = 3.0f ;
@@ -2468,8 +2469,28 @@ private void UpdateFX(float elapsedClockSeconds)
24682469 float SmokeColorFireMass = ( FireMassKG / IdealFireMassKG ) ; // As firemass exceeds the ideal mass the fire becomes 'blocked', when firemass is < ideal then fire burns more freely.
24692470 SmokeColorFireMass = ( 1.0f / SmokeColorFireMass ) * ( 1.0f / SmokeColorFireMass ) * ( 1.0f / SmokeColorFireMass ) ; // Inverse the firemass value, then cube it to make it a bit more significant
24702471
2471- StackSteamVelocityMpS . Update ( elapsedClockSeconds , ( float ) Math . Sqrt ( KPa . FromPSI ( Pressure_c_AtmPSI ) * 1000 * 2 / WaterDensityAt100DegC1BarKGpM3 ) ) ;
2472- StackSteamVolumeM3pS = Kg . FromLb ( CylinderSteamUsageLBpS + BlowerSteamUsageLBpS + RadiationSteamLossLBpS + CompSteamUsageLBpS + GeneratorSteamUsageLBpS ) * SteamVaporSpecVolumeAt100DegC1BarM3pKG ;
2472+ if ( CylinderAdvancedSteamExhaustEffects )
2473+ {
2474+
2475+ if ( CylinderSteamExhaust1On || CylinderSteamExhaust2On || CylinderSteamExhaust3On || CylinderSteamExhaust4On )
2476+ {
2477+ StackSteamVelocityMpS . Update ( elapsedClockSeconds , ( float ) Math . Sqrt ( KPa . FromPSI ( Pressure_c_AtmPSI ) * 1000 * 50 / WaterDensityAt100DegC1BarKGpM3 ) ) ;
2478+ StackSteamVolumeM3pS = Kg . FromLb ( CylinderSteamUsageLBpS + BlowerSteamUsageLBpS + RadiationSteamLossLBpS + CompSteamUsageLBpS + GeneratorSteamUsageLBpS ) * 20 * SteamVaporSpecVolumeAt100DegC1BarM3pKG ;
2479+ }
2480+ else
2481+ {
2482+ StackSteamVelocityMpS . Update ( elapsedClockSeconds , ( float ) Math . Sqrt ( KPa . FromPSI ( Pressure_c_AtmPSI ) * 0.5f * 1000 / WaterDensityAt100DegC1BarKGpM3 ) ) ;
2483+ StackSteamVolumeM3pS = Kg . FromLb ( CylinderSteamUsageLBpS + BlowerSteamUsageLBpS + RadiationSteamLossLBpS + CompSteamUsageLBpS + GeneratorSteamUsageLBpS ) * 0.25f * SteamVaporSpecVolumeAt100DegC1BarM3pKG ;
2484+
2485+ }
2486+ }
2487+ else
2488+ {
2489+ StackSteamVelocityMpS . Update ( elapsedClockSeconds , ( float ) Math . Sqrt ( KPa . FromPSI ( Pressure_c_AtmPSI ) * 1000 * 2 / WaterDensityAt100DegC1BarKGpM3 ) ) ;
2490+ StackSteamVolumeM3pS = Kg . FromLb ( CylinderSteamUsageLBpS + BlowerSteamUsageLBpS + RadiationSteamLossLBpS + CompSteamUsageLBpS + GeneratorSteamUsageLBpS ) * SteamVaporSpecVolumeAt100DegC1BarM3pKG ;
2491+ }
2492+
2493+
24732494 float SmokeColorUnits = ( RadiationSteamLossLBpS + CalculatedCarHeaterSteamUsageLBpS + BlowerBurnEffect + ( SmokeColorDamper * SmokeColorFireMass ) ) / PreviousTotalSteamUsageLBpS - 0.2f ;
24742495 SmokeColor . Update ( elapsedClockSeconds , MathHelper . Clamp ( SmokeColorUnits , 0.25f , 1 ) ) ;
24752496
0 commit comments