public static float MassUsageLeftAfterTradeableTransfer(List <Thing> allCurrentThings, List <Tradeable> tradeables, IgnorePawnsInventoryMode ignoreInventory, bool includePawnsMass = false, bool ignoreCorpsesGearAndInventory = false) { TransferableUtility.SimulateTradeableTransfer(allCurrentThings, tradeables, CollectionsMassCalculator.tmpThingStackParts); float result = CollectionsMassCalculator.MassUsage(CollectionsMassCalculator.tmpThingStackParts, ignoreInventory, includePawnsMass, ignoreCorpsesGearAndInventory); CollectionsMassCalculator.tmpThingStackParts.Clear(); return(result); }
public static float CapacityLeftAfterTradeableTransfer(List <Thing> allCurrentThings, List <Tradeable> tradeables) { TransferableUtility.SimulateTradeableTransfer(allCurrentThings, tradeables, CollectionsMassCalculator.tmpThingStackParts); float result = CollectionsMassCalculator.Capacity(CollectionsMassCalculator.tmpThingStackParts); CollectionsMassCalculator.tmpThingStackParts.Clear(); return(result); }
public static float CapacityLeftAfterTradeableTransfer(List <Thing> allCurrentThings, List <Tradeable> tradeables, StringBuilder explanation = null) { CollectionsMassCalculator.tmpThingCounts.Clear(); TransferableUtility.SimulateTradeableTransfer(allCurrentThings, tradeables, CollectionsMassCalculator.tmpThingCounts); float result = CollectionsMassCalculator.Capacity(CollectionsMassCalculator.tmpThingCounts, explanation); CollectionsMassCalculator.tmpThingCounts.Clear(); return(result); }
public static float MassUsage <T>(List <T> things, IgnorePawnsInventoryMode ignoreInventory, bool includePawnsMass = false, bool ignoreSpawnedCorpsesGearAndInventory = false) where T : Thing { CollectionsMassCalculator.tmpThingCounts.Clear(); for (int i = 0; i < things.Count; i++) { CollectionsMassCalculator.tmpThingCounts.Add(new ThingCount(things[i], things[i].stackCount)); } float result = CollectionsMassCalculator.MassUsage(CollectionsMassCalculator.tmpThingCounts, ignoreInventory, includePawnsMass, ignoreSpawnedCorpsesGearAndInventory); CollectionsMassCalculator.tmpThingCounts.Clear(); return(result); }
public static float Capacity <T>(List <T> things, StringBuilder explanation = null) where T : Thing { CollectionsMassCalculator.tmpThingCounts.Clear(); for (int i = 0; i < things.Count; i++) { CollectionsMassCalculator.tmpThingCounts.Add(new ThingCount(things[i], things[i].stackCount)); } float result = CollectionsMassCalculator.Capacity(CollectionsMassCalculator.tmpThingCounts, explanation); CollectionsMassCalculator.tmpThingCounts.Clear(); return(result); }
public static float Capacity <T>(List <T> things) where T : Thing { CollectionsMassCalculator.tmpThingStackParts.Clear(); for (int i = 0; i < things.Count; i++) { CollectionsMassCalculator.tmpThingStackParts.Add(new ThingStackPart((Thing)(object)things[i], ((Thing)(object)things[i]).stackCount)); } float result = CollectionsMassCalculator.Capacity(CollectionsMassCalculator.tmpThingStackParts); CollectionsMassCalculator.tmpThingStackParts.Clear(); return(result); }
public static float MassUsageTransferables(List <TransferableOneWay> transferables, IgnorePawnsInventoryMode ignoreInventory, bool includePawnsMass = false, bool ignoreSpawnedCorpsesGearAndInventory = false) { CollectionsMassCalculator.tmpThingCounts.Clear(); for (int i = 0; i < transferables.Count; i++) { TransferableUtility.TransferNoSplit(transferables[i].things, transferables[i].CountToTransfer, delegate(Thing originalThing, int toTake) { CollectionsMassCalculator.tmpThingCounts.Add(new ThingCount(originalThing, toTake)); }, false, false); } float result = CollectionsMassCalculator.MassUsage(CollectionsMassCalculator.tmpThingCounts, ignoreInventory, includePawnsMass, ignoreSpawnedCorpsesGearAndInventory); CollectionsMassCalculator.tmpThingCounts.Clear(); return(result); }
public static float CapacityTransferables(List <TransferableOneWay> transferables) { CollectionsMassCalculator.tmpThingStackParts.Clear(); for (int i = 0; i < transferables.Count; i++) { if (transferables[i].HasAnyThing && transferables[i].AnyThing is Pawn) { TransferableUtility.TransferNoSplit(transferables[i].things, transferables[i].CountToTransfer, delegate(Thing originalThing, int toTake) { CollectionsMassCalculator.tmpThingStackParts.Add(new ThingStackPart(originalThing, toTake)); }, false, false); } } float result = CollectionsMassCalculator.Capacity(CollectionsMassCalculator.tmpThingStackParts); CollectionsMassCalculator.tmpThingStackParts.Clear(); return(result); }
public static float MassUsageLeftAfterTransfer(List <TransferableOneWay> transferables, IgnorePawnsInventoryMode ignoreInventory, bool includePawnsMass = false, bool ignoreCorpsesGearAndInventory = false) { CollectionsMassCalculator.tmpThingStackParts.Clear(); for (int i = 0; i < transferables.Count; i++) { CollectionsMassCalculator.thingsInReverse.Clear(); CollectionsMassCalculator.thingsInReverse.AddRange(transferables[i].things); CollectionsMassCalculator.thingsInReverse.Reverse(); TransferableUtility.TransferNoSplit(CollectionsMassCalculator.thingsInReverse, transferables[i].MaxCount - transferables[i].CountToTransfer, delegate(Thing originalThing, int toTake) { CollectionsMassCalculator.tmpThingStackParts.Add(new ThingStackPart(originalThing, toTake)); }, false, false); } float result = CollectionsMassCalculator.MassUsage(CollectionsMassCalculator.tmpThingStackParts, ignoreInventory, includePawnsMass, ignoreCorpsesGearAndInventory); CollectionsMassCalculator.tmpThingStackParts.Clear(); return(result); }