コード例 #1
0
 public override void TransformValue(StatRequest req, ref float value)
 {
     if (req.HasThing)
     {
         float libraryPower = 0f;
         int   libraryCount = 0;
         CompAffectedByFacilities compBooks = req.Thing.TryGetComp <CompAffectedByFacilities>();
         if (compBooks != null && !compBooks.LinkedFacilitiesListForReading.NullOrEmpty())
         {
             libraryCount += LibraryCount(compBooks.LinkedFacilitiesListForReading, out libraryPower);
         }
         else
         {
             CompNetworkAccess compCloud = req.Thing.TryGetComp <CompNetworkAccess>();
             if (compCloud != null)
             {
                 libraryCount += DatabaseCount(out libraryPower);
             }
         }
         if (libraryCount > 0)
         {
             value += libraryPower;
         }
     }
 }
コード例 #2
0
 public override string ExplanationPart(StatRequest req)
 {
     if (req.HasThing)
     {
         StringBuilder            stringBuilder = new StringBuilder();
         float                    libraryContribution;
         CompAffectedByFacilities comp = req.Thing.TryGetComp <CompAffectedByFacilities>();
         if (comp != null && comp.LinkedFacilitiesListForReading.Any(x => x is Building_BookStore))
         {
             stringBuilder.AppendLine("AvailableBooksReport".Translate(LibraryCount(comp.LinkedFacilitiesListForReading, out libraryContribution), comp.LinkedFacilitiesListForReading.Where(x => x is Building_BookStore).Count()) + ": +" + libraryContribution.ToStringPercent());
         }
         else
         {
             CompNetworkAccess compCloud = req.Thing.TryGetComp <CompNetworkAccess>();
             if (compCloud != null)
             {
                 stringBuilder.AppendLine("AvailableOnNetwork".Translate(DatabaseCount(out libraryContribution)) + ": +" + libraryContribution.ToStringPercent());
             }
         }
         return(stringBuilder.ToString().TrimEndNewlines());
     }
     return(null);
 }