public SetResourceDrains ( LogMsg log, List |
||
log | LogMsg | |
allParts | List |
|
allFuelLines | List |
|
drainingParts | HashSet |
|
return | bool |
// This function does all the hard work of working out which engines are burning, which tanks are being drained // and setting the drain rates private void UpdateResourceDrains() { // Update the active engines UpdateActiveEngines(); // Empty the draining resources set drainingResources.Clear(); // Reset the resource drains of all draining parts foreach (PartSim partSim in drainingParts) { partSim.resourceDrains.Reset(); } // Empty the draining parts set drainingParts.Clear(); // Loop through all the active engine modules for (int i = 0; i < activeEngines.Count; ++i) { EngineSim engine = activeEngines[i]; // Set the resource drains for this engine if (engine.SetResourceDrains(log, allParts, allFuelLines, drainingParts)) { // If it is active then add the consumed resource types to the set for (int j = 0; j < engine.ResourceConsumptionsForMass.Types.Count; ++j) { drainingResources.Add(engine.ResourceConsumptionsForMass.Types[j]); } } } //foreach (RCSSim r in allRCS) { // r.SetResourceDrains(log, allParts); //} // Update the active engines again to remove any engines that have no fuel supply UpdateActiveEngines(); if (log != null) { log.AppendLine("Active engines = ", activeEngines.Count); int i = 0; for (int j = 0; j < activeEngines.Count; j++) { EngineSim engine = activeEngines[j]; log.Append("Engine " + (i++) + ":"); engine.DumpEngineToLog(log); } log.Flush(); } }
// This function does all the hard work of working out which engines are burning, which tanks are being drained // and setting the drain rates private void UpdateResourceDrains() { // Update the active engines this.UpdateActiveEngines(); // Empty the draining resources set this.drainingResources.Clear(); // Reset the resource drains of all draining parts foreach (PartSim partSim in this.drainingParts) { partSim.ResourceDrains.Reset(); } // Empty the draining parts set this.drainingParts.Clear(); // Loop through all the active engine modules for (int i = 0; i < activeEngines.Count; ++i) { EngineSim engine = activeEngines[i]; // Set the resource drains for this engine if (engine.SetResourceDrains(this.allParts, this.allFuelLines, this.drainingParts)) { // If it is active then add the consumed resource types to the set for (int j = 0; j < engine.ResourceConsumptions.Types.Count; ++j) { drainingResources.Add(engine.ResourceConsumptions.Types[j]); } } } // Update the active engines again to remove any engines that have no fuel supply this.UpdateActiveEngines(); if (SimManager.logOutput) { StringBuilder buffer = new StringBuilder(1024); buffer.AppendFormat("Active engines = {0:d}\n", this.activeEngines.Count); int i = 0; for (int j = 0; j < this.activeEngines.Count; j++) { EngineSim engine = this.activeEngines[j]; engine.DumpEngineToBuffer(buffer, "Engine " + (i++) + ":"); } MonoBehaviour.print(buffer); } }