/// <inheritdoc/> protected override void DrawWeightBar(Rect rect, Pawn selPawn) { base.DrawWeightBar(rect.ReplaceHeight(GenUI.SmallIconSize), selPawn); List <Thing> things = new List <Thing>(); if (selPawn.equipment?.AllEquipmentListForReading != null) { things.AddRange(selPawn.equipment.AllEquipmentListForReading); } if (selPawn.inventory?.innerContainer != null) { things.AddRange(selPawn.inventory.innerContainer); } // Draw bulk bar. float currentBulk = things.Sum(thing => thing.GetStatValue(CE_StatDefOf.Bulk) * thing.stackCount) + selPawn.apparel?.WornApparel.Sum(apparel => apparel.GetStatValue(CE_StatDefOf.WornBulk)) ?? 0; float carryBulk = selPawn.GetStatValue(CE_StatDefOf.CarryBulk); float fillPercent = Mathf.Clamp01(currentBulk / carryBulk); GenBar.BarWithOverlay( rect.ReplaceY(rect.yMax + GenUI.GapSmall) , fillPercent , SolidColorMaterials.NewSolidColorTexture(Color.Lerp(AwesomeInventoryTex.RWPrimaryColor, AwesomeInventoryTex.Valvet, fillPercent)) , UIText.Bulk.TranslateSimple() , currentBulk.ToString("0.#") + "/" + carryBulk.ToString() , (this.DrawHelper as DrawHelperCE).BulkTextFor(selPawn)); }
/// <summary> /// Draw weight bar and bulk bar. /// </summary> /// <param name="canvas"> Rect for drawing weight bar and bulk bar. </param> protected override void DrawWeightBar(Rect canvas) { base.DrawWeightBar(canvas.ReplaceHeight(GenUI.SmallIconSize)); float currentBulk = _currentLoadout.GroupBy( groupSelector => groupSelector.AllowedThing , groupSelector => groupSelector.AllowedStackCount) .Sum( group => group.Key.IsApparel ? BulkUtility.BulkFor(group.Key, null, true) + BulkUtility.BulkFor(group.Key, null, false) * (group.Sum() - 1) : BulkUtility.BulkFor(group.Key, null, false) * group.Sum()); float capaticyBulk = MassBulkUtility.BaseCarryBulk(_pawn) + _currentLoadout.Select(selector => selector.AllowedThing).Distinct().Sum( thingDef => thingDef.equippedStatOffsets.GetStatOffsetFromList(CE_StatDefOf.CarryBulk)); float fillPercent = Mathf.Clamp01(currentBulk / capaticyBulk); canvas.Set(canvas.x, canvas.y + GenUI.ListSpacing + GenUI.GapTiny, canvas.width, GenUI.SmallIconSize); GenBar.BarWithOverlay( canvas , fillPercent , SolidColorMaterials.NewSolidColorTexture(Color.Lerp(AwesomeInventoryTex.RWPrimaryColor, AwesomeInventoryTex.Valvet, fillPercent)) , UIText.Bulk.TranslateSimple() , currentBulk.ToString("0.#") + "/" + capaticyBulk.ToString("0.#") , string.Empty); }