public void SubtractFromToLoadList(Thing t, int count) { //Log.Message("Remaining transferables: " + this.leftToLoad.Count.ToString() + " with Pawns:" + this.leftToLoad.FindAll(x => x.AnyThing is Pawn).Count.ToString()); if (this.leftToLoad == null) { return; } TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatchingDesperate(t, this.leftToLoad); if (transferableOneWay == null) { return; } transferableOneWay.AdjustBy(-count); if (transferableOneWay.CountToTransfer <= 0) { this.leftToLoad.Remove(transferableOneWay); } if (!this.AnythingLeftToLoad) { this.cargoLoadingActive = false; this.TryRemoveLord(this.parent.Map); this.leftToLoad.Clear(); this.leftToLoad = new List <TransferableOneWay>(); Messages.Message("MessageFinishedLoadingShipCargo".Translate(new object[] { this.ship.ShipNick }), this.parent, MessageTypeDefOf.TaskCompletion); } }
private void RemoveCarriedItemFromTransferablesOrDrop(Thing carried, Pawn carrier, List <TransferableOneWay> transferables) { TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatchingDesperate(carried, transferables, TransferAsOneMode.PodsOrCaravanPacking); int num; if (transferableOneWay == null) { num = carried.stackCount; } else if (transferableOneWay.CountToTransfer >= carried.stackCount) { transferableOneWay.AdjustBy(-carried.stackCount); transferableOneWay.things.Remove(carried); num = 0; } else { num = carried.stackCount - transferableOneWay.CountToTransfer; transferableOneWay.AdjustTo(0); } if (num > 0) { Thing thing = carried.SplitOff(num); if (carrier.SpawnedOrAnyParentSpawned) { GenPlace.TryPlaceThing(thing, carrier.PositionHeld, carrier.MapHeld, ThingPlaceMode.Near, null, null); } else { thing.Destroy(DestroyMode.Vanish); } } }
private void SubtractFromToLoadList(Thing t, int count) { if (this.leftToLoad == null) { return; } TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatching <TransferableOneWay>(t, this.leftToLoad, TransferAsOneMode.PodsOrCaravanPacking); if (transferableOneWay == null) { return; } transferableOneWay.AdjustBy(-count); if (transferableOneWay.CountToTransfer <= 0) { this.leftToLoad.Remove(transferableOneWay); } if (!this.AnyInGroupHasAnythingLeftToLoad) { Messages.Message("MessageFinishedLoadingTransporters".Translate(), this.parent, MessageTypeDefOf.PositiveEvent); } }
private void SubtractFromToLoadList(Thing t, int count) { if (this.leftToLoad == null) { return; } TransferableOneWay transferableOneWay = TransferableUtility.TransferableMatchingDesperate(t, this.leftToLoad, TransferAsOneMode.PodsOrCaravanPacking); if (transferableOneWay == null) { return; } transferableOneWay.AdjustBy(-count); if (transferableOneWay.CountToTransfer <= 0) { this.leftToLoad.Remove(transferableOneWay); } if (!this.AnyInGroupHasAnythingLeftToLoad) { Messages.Message("PD_FinishedLoadingPit".Translate(), this.parent, MessageTypeDefOf.TaskCompletion, true); prisonerthrowingdone = false; } }