[A16.1393] Null reference on feed prisoner from paste dispenser

Started by mostevil, January 01, 2017, 01:04:13 PM

Previous topic - Next topic

mostevil

I have a prison with a nutrient paste dispenser collection point inside the cell.  Generally, this works very well.  Very cool, love it.

The stock of food in the vats fell to something like 3, not enough to squidge out a serving of nasty gloop.
[edit] Quantity in the hoppers may be a red herring.  I've seen this happen again with full hoppers.
Perhaps it's due to the incapacitated prisoner.[/edit]
[edit2] I think its non-incapacitated prisoners with gets meal turned on that seems to do it.  When you turn it off they happily go get goop.[/edit]

I'd expect them to feed themselves or the warden to go get them a regular meal, but instead of this, it throws error messages.

This is a bit of a weird one but there should be enough here to fix it.

It's a big map so it won't compress for an attachment, here's an ftp link to it.

ftp://ftp.enodatio.co.uk/pub/Craterton%20%28Permadeath%29.zip

Irina threw exception in WorkGiver DeliverFoodToPrisoner: System.NullReferenceException: Object reference not set to an instance of an object
  at RimWorld.WorkGiver_Warden_DeliverFood.FoodAvailableInRoomTo (Verse.Pawn prisoner) [0x0007f] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Warden\WorkGiver_Warden_DeliverFood.cs:79
  at RimWorld.WorkGiver_Warden_DeliverFood.JobOnThing (Verse.Pawn pawn, Verse.Thing t) [0x0009e] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Warden\WorkGiver_Warden_DeliverFood.cs:45
  at RimWorld.WorkGiver_Scanner.HasJobOnThing (Verse.Pawn pawn, Verse.Thing t) [0x00000] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGiver.cs:82
  at RimWorld.JobGiver_Work+<TryGiveJob>c__AnonStorey277.<>m__141 (Verse.Thing t) [0x00000] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:100
  at Verse.GenClosest+<ClosestThingReachable>c__AnonStorey532.<>m__9FC (Verse.Thing t) [0x0002f] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:104
  at Verse.GenClosest.ClosestThing_Global (IntVec3 center, IEnumerable searchSet, Single maxDistance, System.Predicate`1 validator) [0x00069] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:274
  at Verse.GenClosest.ClosestThingReachable (IntVec3 root, Verse.Map map, ThingRequest thingReq, PathEndMode peMode, TraverseParms traverseParams, Single maxDistance, System.Predicate`1 validator, IEnumerable`1 customGlobalSearchSet, Int32 searchRegionsMax, Boolean forceGlobalSearch) [0x00110] in C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:112
  at RimWorld.JobGiver_Work.TryGiveJob (Verse.Pawn pawn) [0x00291] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:121
UnityEngine.DebugLogHandler:Internal_Log(LogType, String, Object)
UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:Log(LogType, Object)
UnityEngine.Debug:LogError(Object)
Verse.Log:Error(String) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:46)
RimWorld.JobGiver_Work:TryGiveJob(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:180)
Verse.AI.ThinkNode_JobGiver:TryIssueJobPackage(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ThinkNode_JobGiver.cs:16)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:169)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Subtree.cs:36)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:20)
RimWorld.ThinkNode_Conditional:TryIssueJobPackage(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\ThinkNodes\ThinkNodes_Conditionals.cs:27)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:20)
Verse.AI.Pawn_JobTracker:DetermineNextJob(ThinkTreeDef&) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:397)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:339)
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:240)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:89)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:403)
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:130)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:273)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:243)
Verse.Game:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:465)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:73)




[attachment deleted by admin due to age]

mostevil

After playing a bit longer it seems to be conscious prisoners with gets meal that throws the error.  But they starve if they're unconscious without gets food.   So currently you have to keep flipping the gets food switch as they wake up/get injured to keep them from starving to death.