Ejemplo n.º 1
0
 public static float Capacity(Pawn p)
 {
     if (!MassUtility.CanEverCarryAnything(p))
     {
         return(0f);
     }
     return((float)(p.BodySize * 35.0));
 }
Ejemplo n.º 2
0
        public static float Capacity(Pawn p, StringBuilder explanation = null)
        {
            if (!MassUtility.CanEverCarryAnything(p))
            {
                return(0f);
            }
            float num = p.BodySize * 35f;

            if (explanation != null)
            {
                if (explanation.Length > 0)
                {
                    explanation.AppendLine();
                }
                explanation.Append("  - " + p.LabelShortCap + ": " + num.ToStringMassOffset());
            }
            return(num);
        }
Ejemplo n.º 3
0
        private void DrawMass(Rect rect, TransferableOneWay trad, float availableMass)
        {
            if (!trad.HasAnyThing)
            {
                return;
            }
            Thing anyThing = trad.AnyThing;
            Pawn  pawn     = anyThing as Pawn;

            if (pawn != null && !this.includePawnsMassInMassUsage && !MassUtility.CanEverCarryAnything(pawn))
            {
                return;
            }
            Widgets.DrawHighlightIfMouseover(rect);
            if (pawn == null || this.includePawnsMassInMassUsage)
            {
                float mass = this.GetMass(anyThing);
                if (pawn != null)
                {
                    float gearMass = 0f;
                    float invMass  = 0f;
                    gearMass = MassUtility.GearMass(pawn);
                    if (!InventoryCalculatorsUtility.ShouldIgnoreInventoryOf(pawn, this.ignorePawnInventoryMass))
                    {
                        invMass = MassUtility.InventoryMass(pawn);
                    }
                    TooltipHandler.TipRegion(rect, () => this.GetPawnMassTip(trad, 0f, mass - gearMass - invMass, gearMass, invMass), trad.GetHashCode() * 59);
                }
                else
                {
                    TooltipHandler.TipRegion(rect, "ItemWeightTip".Translate());
                }
                if (mass > availableMass)
                {
                    GUI.color = Color.red;
                }
                else
                {
                    GUI.color = TransferableOneWayWidget.ItemMassColor;
                }
                Widgets.Label(rect, mass.ToStringMass());
            }
            else
            {
                float cap      = MassUtility.Capacity(pawn, null);
                float gearMass = MassUtility.GearMass(pawn);
                float invMass  = (!InventoryCalculatorsUtility.ShouldIgnoreInventoryOf(pawn, this.ignorePawnInventoryMass)) ? MassUtility.InventoryMass(pawn) : 0f;
                float num      = cap - gearMass - invMass;
                if (num > 0f)
                {
                    GUI.color = Color.green;
                }
                else if (num < 0f)
                {
                    GUI.color = Color.red;
                }
                else
                {
                    GUI.color = Color.gray;
                }
                Widgets.Label(rect, num.ToStringMassOffset());
                TooltipHandler.TipRegion(rect, () => this.GetPawnMassTip(trad, cap, 0f, gearMass, invMass), trad.GetHashCode() * 59);
            }
            GUI.color = Color.white;
        }