[1.3] [KV] Infinite Storage [ModSync RW]

Started by Kiame, December 16, 2017, 07:45:52 PM

Previous topic - Next topic

Kiame

nope no further projects at this point.

The only thing i'd like to do is make another go with Change Dresser to allow assigning of specific apparel along with the current outfit system. 

Tenshi~Akari

Decided to try this after a long debate with myself whether or not I wanted to space save or go with the huge cavernous storage spaces I liked to design...

It seems to do the job, however, as of adding this mod to my list, it also seems to be causing 10 ticks work bugs and job driver/haul to cell exception errors when it comes to pawns carrying/hauling anything, even if it's to cook/craft.

JobDriver exception example:

JobDriver threw exception in initAction. Pawn=Dre, Job=HaulToCell (Job_1602051) A=Thing_VividOrangeCloth1515774 B=(176, 0, 272), Exception: System.NullReferenceException: Object reference not set to an instance of an object
at Verse.GridsUtility.Roofed (Verse.IntVec3,Verse.Map) <0x00009>
at Five_Second_Rule.ThingSpawn_Patch.Postfix (Verse.Thing) <0x0004e>
at (wrapper dynamic-method) Verse.Thing.SpawnSetup_Patch1 (object,Verse.Map,bool) <0x00731>
at Verse.ThingWithComps.SpawnSetup (Verse.Map,bool) <0x00018>
at Verse.GenSpawn.Spawn (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.Rot4,bool) <0x0023c>
at Verse.GenSpawn.Spawn (Verse.Thing,Verse.IntVec3,Verse.Map) <0x0003e>
at Verse.GenPlace.TryPlaceDirect (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x0019e>
at Verse.GenPlace.TryPlaceThing (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x0009f>
at Verse.GenDrop.TryDropSpawn (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x00278>
at Verse.ThingOwner.TryDrop (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x000aa>
at Verse.ThingOwner`1<Verse.Thing>.TryDrop (Verse.Thing,Verse.IntVec3,Verse.Map,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x000ce>
at Verse.Pawn_CarryTracker.TryDropCarriedThing (Verse.IntVec3,Verse.ThingPlaceMode,Verse.Thing&,System.Action`2<Verse.Thing, int>) <0x00066>
at Verse.AI.Toils_Haul/<PlaceHauledThingInCell>c__AnonStorey6.<>m__0 () <0x00246>
at Verse.AI.JobDriver.TryActuallyStartNextToil () <0x002e9>
lastJobGiver=RimWorld.JobGiver_Work, curJob.def=HaulToCell, curDriver=Verse.AI.JobDriver_HaulToCell
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:TryEnterNextPathCell()
Verse.AI.Pawn_PathFollower:PatherTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


And a 10 ticks bug that started happening with one of my personal modded objects after enabling Infinite Storage:


Wade started 10 jobs in one tick. newJob=DoBill (Job_1602750) A=Thing_ChoppingBlock683647 jobGiver=RimWorld.JobGiver_Work jobList=(DoBill (Job_1602710) A=Thing_ChoppingBlock683647) (DoBill (Job_1602714) A=Thing_ChoppingBlock683647) (DoBill (Job_1602718) A=Thing_ChoppingBlock683647) (DoBill (Job_1602722) A=Thing_ChoppingBlock683647) (DoBill (Job_1602726) A=Thing_ChoppingBlock683647) (DoBill (Job_1602730) A=Thing_ChoppingBlock683647) (DoBill (Job_1602734) A=Thing_ChoppingBlock683647) (DoBill (Job_1602738) A=Thing_ChoppingBlock683647) (DoBill (Job_1602742) A=Thing_ChoppingBlock683647) (DoBill (Job_1602746) A=Thing_ChoppingBlock683647) (DoBill (Job_1602750) A=Thing_ChoppingBlock683647)  lastJobGiver=RimWorld.JobGiver_Work
Verse.Log:Error(String)
Verse.AI.Pawn_JobTracker:StartErrorRecoverJob(String)
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:StartPath_Patch1(Object, LocalTargetInfo, PathEndMode)
Verse.AI.<GotoThing>c__AnonStorey0:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.JobDriver:EndJobWith(JobCondition)
Verse.AI.JobDriver:CheckCurrentToilEndOrFail()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:JumpToToil(Toil)
Verse.AI.<JumpToCollectNextIntoHandsForBill>c__AnonStorey2:<>m__0()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.JobDriver:Notify_PatherArrived()
Verse.AI.Pawn_PathFollower:PatherArrived()
Verse.AI.Pawn_PathFollower:TryEnterNextPathCell()
Verse.AI.Pawn_PathFollower:PatherTick()
Verse.Pawn:Tick_Patch1(Object)
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


As soon as I emptied and deconstructed the textile & medicine storages, pawns were able to go back to work as normal. Not sure what to make of this, considering the mod mentioned is just a simple XML butcher table clone, but just thought I'd put this out there.  :)

Now that I think of it... I do also have the researchable stats mod & researched stacking... I wonder if that also had anything to do with it? But it hasn't affected anything else in my current playthrough thus far in terms of errors or anything, either.  ???

Canute

QuoteJob=HaulToCell
Does you use the mod "Haul to Stack" maybe ?

Kiame

#108
The "[Pawn] started 10 jobs in one tick" error happens when a storage has multiple items directly next to it and a pawn tries to put the stuff back

Example:

  • The storage was emptied, spilling everything out around it
  • A pawn then goes to put the stuff back, in one 'tick' the pawn picks up an item and places it instantly into storage so takes another item and puts it into storage so ... (8 more times) ... error thrown
This doesn't hurt anything and code wise should probably just be a warning but it's base game code which I'm not touching  :)

As for the "Object reference not set to an instance of an object" i'm not sure.

Tenshi~Akari

OK. I was wondering about that.  :)

I guess that second one means it affected how pawns picked up any and all the other items in the area surrounding it then... I had the storage in my workroom/kitchen, and the particular pawn that was trying to do the job at my object just kept spazzing out and dropping what he was carrying, never making it to the chopping block... is it possible it was a how the mod checks for items in the area of the textile/medicine storage causing that to happen, even though food storage is not enabled with the two storage pieces this mod offers?

Quote from: Canute on March 10, 2018, 10:03:36 AM
QuoteJob=HaulToCell
Does you use the mod "Haul to Stack" maybe ?


Nope, but I do have Fluffy's Stack Merger, now that you mention it... that's another possibility as to why this happened, isn't it?  :-[

Kiame

It could be items are getting auto-collected as the pawn is trying to do the bill.

How it works w/ this mod:
When a pawn wants to do a job and some/all mats are in storage, the needed items will be dropped and assigned to the pawn.
The storage will periodically pick up items around it, if any items are reserved by a pawn that item/s will not be collected.
There could be a mod/bill that's not working with this mod properly and the items that should be reserved by the pawn doing the bill are not staying reserved and getting collected.

One way to test this theory is to disable auto-collect from the mod settings or increase the time for auto-collect so it happens less frequently.

zuaresoft

#111
I have this bugg today:

"Every time I built the Textile Storage item, or Body part storage item, the cooks would cook without materials. Every time I destroyed the items, the cooks would act normally again.."

this is a bug report in December 2017 with the same problem:

https://ludeon.com/forums/index.php?topic=37747.msg388021#msg388021

could you make a fix or update it to solve this?

Kiame

Quote from: zuaresoft on April 23, 2018, 03:44:53 PM
I have this bugg today:

"Every time I built the Textile Storage item, or Body part storage item, the cooks would cook without materials. Every time I destroyed the items, the cooks would act normally again.."

this is a bug report in December 2017 with the same problem:

https://ludeon.com/forums/index.php?topic=37747.msg388021#msg388021

could you make a fix or update it to solve this?

I hadnt run into the infinite food production in my play-throughs (though i know others have) and i just figured out why. I never use the base game's meals - i use bulk / 4x meal production only which are not broken by this mod.

The easiest fix i can put in there is to reject any job by a cook. So no supplies for food prep could be stored in IS. I don't think this will be an issue though. I am going to have this version as an alternate download

Kiame

#113
Update:
-'Do Until X' will not take into account quality and hit point filters when counting
Note: Any mod that adds its own filters will not be supported
-Cooks will no longer look into any storages added by Infinite Storage for ingredients. This will fix a bug allowing cooks to make an infinite number of meals using the game's base meals.
-Added Silver Storage

Canute

Quote from: Kiame on May 05, 2018, 09:36:41 PM
Update:
-Cooks will no longer look into any storages added by Infinite Storage for ingredients. This will fix a bug allowing cooks to make an infinite number of meals using the game's base meals.
You should expand this for crafting, special refining too.
Got a similar behavior for someone who craft chemfuel out of meat.


webjogi

great great mod idea, but having issues

Problems i have facing with B18:
1. items in vault (silver/bodyparts/textile/meat)are not being shown in trade
2. Two doctors operating at same time complain about no body parts
3. whenever cook takes meat from vault, he drops all remaining meat on floor

rawrfisher

Getting these errors since the latest update.

Exception in BreadthFirstTraverse: System.NullReferenceException: Object reference not set to an instance of an object
at System.Collections.Generic.GenericComparer`1<string>.Compare (string,string) <0x00081>
at System.Collections.Generic.SortedDictionary`2/NodeHelper<string, System.Collections.Generic.LinkedList`1<Verse.Thing>>.Compare (string,System.Collections.Generic.RBTree/Node) <0x00099>
at System.Collections.Generic.RBTree.Lookup<string> (string) <0x00092>
at System.Collections.Generic.SortedDictionary`2<string, System.Collections.Generic.LinkedList`1<Verse.Thing>>.TryGetValue (string,System.Collections.Generic.LinkedList`1<Verse.Thing>&) <0x0005c>
at InfiniteStorage.Building_InfiniteStorage.TryGetValue (Verse.ThingDef,Verse.Thing&) <IL 0x0000e, 0x0004c>
at InfiniteStorage.Patch_ItemAvailability_ThingsAvailableAnywhere.Postfix (bool&,RimWorld.ItemAvailability,Verse.ThingCountClass,Verse.Pawn) <IL 0x0006f, 0x001be>
at (wrapper dynamic-method) RimWorld.ItemAvailability.ThingsAvailableAnywhere_Patch1 (object,Verse.ThingDefCountClass,Verse.Pawn) <IL 0x000d0, 0x001dc>
at RimWorld.WorkGiver_ConstructDeliverResources.ResourceDeliverJobFor (Verse.Pawn,RimWorld.IConstructible,bool) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResources.cs:67
at RimWorld.WorkGiver_ConstructDeliverResourcesToBlueprints.JobOnThing (Verse.Pawn,Verse.Thing,bool) [0x000a2] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResourcesToBlueprints.cs:48
at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn,Verse.Thing,bool) [0x00005] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGiver.cs:93
at RimWorld.JobGiver_Work/<TryIssueJobPackage>c__AnonStorey1.<>m__0 (Verse.Thing) [0x00029] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:103
at Verse.GenClosest/<RegionwiseBFSWorker>c__AnonStorey1.<>m__1 (Verse.Region) [0x00125] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:287
at Verse.RegionTraverser/BFSWorker.BreadthFirstTraverseWork (Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType) [0x00066] in C:\Dev\RimWorld\Assets\Scripts\Verse\Map\RegionsAndRooms\RegionTraverser.cs:246
at Verse.RegionTraverser.BreadthFirstTraverse (Verse.Region,Verse.RegionEntryPredicate,Verse.RegionProcessor,int,Verse.RegionType) [0x0005f] in C:\Dev\RimWorld\Assets\Scripts\Verse\Map\RegionsAndRooms\RegionTraverser.cs:166

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.RegionTraverser:BreadthFirstTraverse(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Map\RegionsAndRooms\RegionTraverser.cs:170)
Verse.GenClosest:RegionwiseBFSWorker(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Predicate`1, Func`2, Int32, Int32, Single, Int32&, RegionType, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:300)
Verse.GenClosest:ClosestThingReachable(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Single, Predicate`1, IEnumerable`1, Int32, Int32, Boolean, RegionType, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:107)
RimWorld.JobGiver_Work:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:145)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:176)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:245)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Subtree.cs:36)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Conditionals.cs:25)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch1(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:515)
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:393)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:120)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:556)
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:125)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:297)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:261)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:512)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)


Solis threw exception in WorkGiver ConstructDeliverResourcesToBlueprints: System.NullReferenceException: Object reference not set to an instance of an object
at System.Collections.Generic.GenericComparer`1<string>.Compare (string,string) <0x00081>
at System.Collections.Generic.SortedDictionary`2/NodeHelper<string, System.Collections.Generic.LinkedList`1<Verse.Thing>>.Compare (string,System.Collections.Generic.RBTree/Node) <0x00099>
at System.Collections.Generic.RBTree.Lookup<string> (string) <0x00092>
at System.Collections.Generic.SortedDictionary`2<string, System.Collections.Generic.LinkedList`1<Verse.Thing>>.TryGetValue (string,System.Collections.Generic.LinkedList`1<Verse.Thing>&) <0x0005c>
at InfiniteStorage.Building_InfiniteStorage.TryGetValue (Verse.ThingDef,Verse.Thing&) <IL 0x0000e, 0x0004c>
at InfiniteStorage.Patch_ItemAvailability_ThingsAvailableAnywhere.Postfix (bool&,RimWorld.ItemAvailability,Verse.ThingCountClass,Verse.Pawn) <IL 0x0006f, 0x001be>
at (wrapper dynamic-method) RimWorld.ItemAvailability.ThingsAvailableAnywhere_Patch1 (object,Verse.ThingDefCountClass,Verse.Pawn) <IL 0x000d0, 0x001dc>
at RimWorld.WorkGiver_ConstructDeliverResources.ResourceDeliverJobFor (Verse.Pawn,RimWorld.IConstructible,bool) [0x00089] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResources.cs:67
at RimWorld.WorkGiver_ConstructDeliverResourcesToBlueprints.JobOnThing (Verse.Pawn,Verse.Thing,bool) [0x000a2] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResourcesToBlueprints.cs:48
at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn,Verse.Thing,bool) [0x00005] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGiver.cs:93
at RimWorld.JobGiver_Work/<TryIssueJobPackage>c__AnonStorey1.<>m__0 (Verse.Thing) [0x00029] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:103
at Verse.GenClosest/<ClosestThingReachable>c__AnonStorey0.<>m__0 (Verse.Thing) [0x00047] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:144
at Verse.GenClosest.ClosestThing_Global (Verse.IntVec3,System.Collections.IEnumerable,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>) [0x00091] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:352
at Verse.GenClosest.ClosestThingReachable (Verse.IntVec3,Verse.Map,Verse.ThingRequest,Verse.AI.PathEndMode,Verse.TraverseParms,single,System.Predicate`1<Verse.Thing>,System.Collections.Generic.IEnumerable`1<Verse.Thing>,int,int,bool,Verse.RegionType,bool) [0x001a4] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:152
at RimWorld.JobGiver_Work.TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) [0x00443] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:145

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
RimWorld.JobGiver_Work:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:214)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:176)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:245)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Subtree.cs:36)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Conditionals.cs:25)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch1(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:CheckForJobOverride() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:456)
RimWorld.<LayDown>c__AnonStorey0:<>m__1() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobDrivers\SatisfyNeeds\Toils_LayDown.cs:135)
Verse.AI.JobDriver:DriverTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\JobDrivers\JobDriver.cs:345)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:131)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:556)
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:125)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:297)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:261)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:512)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)
Professional jerk
Want something broken let me know

Kiame

Eww...

I'll take a look tonight (hopefully)

Canute

You should wrote a new Novell
The neverending unstable modding story or
How the game break's a mod faster then modder can fix it. :-)