Example #1
0
        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);
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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;
            }
        }