public static float Capacity(Pawn p) { if (!MassUtility.CanEverCarryAnything(p)) { return(0f); } return((float)(p.BodySize * 35.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); }
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; }