コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
        }