public override void FinishBill(RuneBill bill, Pawn pawn) { SocketComp socket = bill.itemToBeManipulated.TryGetComp <SocketComp>(); if (socket != null) { Thing rune = socket.RemoveRune(bill.runeToManipulate); if (rune != null) { //Try to spawn it nearby. GenPlace.TryPlaceThing(rune, pawn.Position, pawn.Map, ThingPlaceMode.Near); } } }
public override IEnumerable <Toil> MakeWorkToils(Toil endToil) { yield return(Toils_General.Wait(100).WithProgressBarToilDelay(TargetIndex.A, false)); Toil workToil = new Toil(); workToil.initAction = delegate() { SocketComp socket = Item.TryGetComp <SocketComp>(); if (socket != null) { socket.RemoveRune(RuneThing); } }; yield return(workToil); }