public double GetBuildTime(WorkshopUtils.ProductivityType type, double productivity, double ConversionRate = 1) { var totalAmount = this.Sum(r => r.Units); var totalProcessed = this.Sum(r => r.Processed); Log.Info("GetBuildtime, totalAmount: " + totalAmount + ", totalProcessed: " + totalProcessed + ", type: " + type); if (type == WorkshopUtils.ProductivityType.printer) { return((totalAmount - totalProcessed) / (productivity / Complexity)); } else { return((totalAmount * ConversionRate - totalProcessed) / (productivity)); } }
public string Print(WorkshopUtils.ProductivityType type, double productivity) { var sb = new StringBuilder(); foreach (var res in this) { sb.AppendLine(res.Name + " : " + res.Units.ToString("N1")); } if (HighLogic.CurrentGame.Mode == Game.Modes.CAREER && WorkshopOptions.PrintingCostsFunds) { sb.AppendLine("Resource costs: " + ResourceCosts().ToString("N1")); sb.AppendLine("Funds: " + Funds); } if (HighLogic.CurrentGame.Parameters.CustomParams <Workshop_Settings>().useComplexity&& type == WorkshopUtils.ProductivityType.printer) { sb.AppendLine("Complexity: " + Complexity); } var duration = this.Sum(r => r.Units) / (productivity); sb.AppendLine("Base duration: " + KSPUtil.PrintTime(duration, 5, false)); if (type == WorkshopUtils.ProductivityType.printer) { duration = this.Sum(r => r.Units) / (productivity / Complexity); } else { duration = this.Sum(r => r.Units) / (productivity); } if (HighLogic.CurrentGame.Parameters.CustomParams <Workshop_Settings>().useComplexity&& type == WorkshopUtils.ProductivityType.printer) { sb.Append("Complexity duration: " + KSPUtil.PrintTime(duration, 5, false)); } return(sb.ToString()); }