Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pathfinding error #219

Open
crazykid080 opened this issue Feb 4, 2021 · 3 comments
Open

Pathfinding error #219

crazykid080 opened this issue Feb 4, 2021 · 3 comments
Labels

Comments

@crazykid080
Copy link

Hi, I've been having a consistent error that's been flooding my logs that seems to be related to pathfinding, as it seems to be related to Prison Labor I've started here
Error:

Exception in BreadthFirstTraverse: System.ArgumentNullException: Value cannot be null.
Parameter name: key
  at System.Collections.Generic.Dictionary`2[TKey,TValue].FindEntry (TKey key) [0x00008] in <567df3e0919241ba98db88bec4c6696f>:0 
  at System.Collections.Generic.Dictionary`2[TKey,TValue].TryGetValue (TKey key, TValue& value) [0x00000] in <567df3e0919241ba98db88bec4c6696f>:0 
  at RimWorld.ListerBuildingsRepairable.HashSetFor (RimWorld.Faction fac) [0x00000] in <d72310b4d8f64d25aee502792b58549f>:0 
  at RimWorld.ListerBuildingsRepairable.Contains (RimWorld.Faction fac, Verse.Building b) [0x00000] in <d72310b4d8f64d25aee502792b58549f>:0 
  at PrisonLabor.WorkUtils.ConstructionUtils.HasJobOnThingFixed (Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x00029] in <7f01f69f1ca84410921348a1d376f797>:0 
  at PrisonLabor.HarmonyPatches.Patches_Construction.Patch_WorkGiver_Repair.HasJobOnThingPrefix (System.Boolean& __result, Verse.Pawn pawn, Verse.Thing t, System.Boolean forced) [0x0000c] in <7f01f69f1ca84410921348a1d376f797>:0 
  at (wrapper dynamic-method) RimWorld.WorkGiver_Repair.RimWorld.WorkGiver_Repair.HasJobOnThing_Patch2(RimWorld.WorkGiver_Repair,Verse.Pawn,Verse.Thing,bool)
  at PrisonLabor.Core.AI.JobGivers.JobGiver_Labor+<>c__DisplayClass7_1.<TryIssueJobPackage>b__0 (Verse.Thing t) [0x00013] in <7f01f69f1ca84410921348a1d376f797>:0 
  at Verse.GenClosest+<>c__DisplayClass4_0.<RegionwiseBFSWorker>b__1 (Verse.Region r) [0x000f7] in <d72310b4d8f64d25aee502792b58549f>:0 
  at Verse.RegionTraverser+BFSWorker.BreadthFirstTraverseWork (Verse.Region root, Verse.RegionEntryPredicate entryCondition, Verse.RegionProcessor regionProcessor, System.Int32 maxRegions, Verse.RegionType traversableRegionTypes) [0x00054] in <d72310b4d8f64d25aee502792b58549f>:0 
  at Verse.RegionTraverser.BreadthFirstTraverse (Verse.Region root, Verse.RegionEntryPredicate entryCondition, Verse.RegionProcessor regionProcessor, System.Int32 maxRegions, Verse.RegionType traversableRegionTypes) [0x00046] in <d72310b4d8f64d25aee502792b58549f>:0 
Verse.Log:Error(String, Boolean)
Verse.RegionTraverser:BreadthFirstTraverse(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType)
Verse.GenClosest:RegionwiseBFSWorker(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Predicate`1, Func`2, Int32, Int32, Single, Int32&, RegionType, Boolean)
Verse.GenClosest:ClosestThingReachable(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Single, Predicate`1, IEnumerable`1, Int32, Int32, Boolean, RegionType, Boolean)
PrisonLabor.Core.AI.JobGivers.JobGiver_Labor:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_SubtreesByTag:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:DetermineNextJob(ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch2(Pawn_JobTracker, JobCondition, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Verse.Pawn.Tick_Patch1(Pawn)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch1(TickManager)
Verse.TickManager:TickManagerUpdate()
Verse.Game:Verse.Game.UpdatePlay_Patch2(Game)
Verse.Root_Play:Verse.Root_Play.Update_Patch1(Root_Play)
@Hazzer
Copy link
Collaborator

Hazzer commented Feb 4, 2021

Thanks for reporting.
As a workaround you can disable construction job for prisoner.
Does prisoner have faction?

@crazykid080
Copy link
Author

crazykid080 commented Feb 4, 2021

Thanks for the quick reply, most of them do, however I picked up two wild people.
I decided to relook through the message myself to check if it may be related to the complex jobs mod and it seems to be related to the repair job directly, I tested this my removing the regular construct job from the one prisoner that had it, ran the game for a minute and an error did pop up. After testing this by removing the repair job I can confirm it's the repair job directly. I hope this helps.
I just did another quick test by checking if it's related to the wild people I captured, it looks like that could be related

@Hazzer
Copy link
Collaborator

Hazzer commented Feb 5, 2021

Yeah it looks like wild men doesnt have setted any faction. Thats way null exception is generated. Need to write some patches :)

@Hazzer Hazzer added the bug label Feb 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants