边缘世界 RimWorld

边缘世界 RimWorld

就近工作
Winter 2022 年 5 月 3 日 上午 2:02
Bug : BurnItForFuel
Receive the following error when only wood and coal fuel types are toggled on the fuel list.
No error this thrown when WYAN is disabled.

Cannot do ClosestThingReachable searching everything without restriction.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) Verse.Log:Verse.Log.Error_Patch4 (string)
Verse.GenClosest:EarlyOutSearch (Verse.IntVec3,Verse.Map,Verse.ThingRequest,System.Collections.Generic.IEnumerable`1<Verse.Thing>,System.Predicate`1<Verse.Thing>)
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)
(wrapper dynamic-method) BurnItForFuel.HarmonyPatches:BurnItForFuel.HarmonyPatches.FindBestFuel_Patch0 (Verse.Pawn,Verse.Thing)
(wrapper dynamic-method) BurnItForFuel.HarmonyPatches:BurnItForFuel.HarmonyPatches.FindBestFuel_Postfix_Patch0 (Verse.Pawn,Verse.Thing,Verse.Thing&)
(wrapper dynamic-method) RimWorld.RefuelWorkGiverUtility:RimWorld.RefuelWorkGiverUtility.FindBestFuel_Patch1 (Verse.Pawn,Verse.Thing)
(wrapper dynamic-method) RimWorld.RefuelWorkGiverUtility:RimWorld.RefuelWorkGiverUtility.CanRefuel_Patch1 (Verse.Pawn,Verse.Thing,bool)
RimWorld.WorkGiver_Refuel:HasJobOnThing (Verse.Pawn,Verse.Thing,bool)
RimWorld.JobGiver_Work/<>c__DisplayClass3_1:<TryIssueJobPackage>b__0 (Verse.Thing)
Verse.GenClosest/<>c__DisplayClass2_0:<ClosestThingReachable>b__0 (Verse.Thing)
Verse.GenClosest:<ClosestThing_Global>g__Process|5_0 (Verse.Thing,Verse.GenClosest/<>c__DisplayClass5_0&)
Verse.GenClosest:ClosestThing_Global (Verse.IntVec3,System.Collections.IEnumerable,single,System.Predicate`1<Verse.Thing>,System.Func`2<Verse.Thing, single>)
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)
(wrapper dynamic-method) RimWorld.JobGiver_Work:RimWorld.JobGiver_Work.TryIssueJobPackage_Patch2 (RimWorld.JobGiver_Work,Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams)
(wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.DetermineNextJob_Patch3 (Verse.AI.Pawn_JobTracker,Verse.ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob ()
(wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch6 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool)
(wrapper dynamic-method) Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch1 (Verse.AI.Pawn_JobTracker)
(wrapper dynamic-method) Verse.Pawn:Verse.Pawn.Tick_Patch5 (Verse.Pawn)
(wrapper dynamic-method) Verse.TickList:Verse.TickList.Tick_Patch2 (Verse.TickList)
(wrapper dynamic-method) Verse.TickManager:Verse.TickManager.DoSingleTick_Patch4 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) Verse.Game:Verse.Game.UpdatePlay_Patch1 (Verse.Game)
(wrapper dynamic-method) Verse.Root_Play:Verse.Root_Play.Update_Patch1 (Verse.Root_Play)


(Will post this on BurnItForFuel page aswell)
最后由 Winter 编辑于; 2022 年 5 月 3 日 上午 2:19
< >
正在显示第 1 - 1 条,共 1 条留言
pureMJ  [开发者] 2022 年 5 月 4 日 下午 8:53 
@WinterWolf
Based on the stacktrace, BurnItForFuel mod needs to prevent that from happening.

Specifically at this line:
https://github.com/jptrrs/BurnItForFuel/blob/248143f3ea32fc246044f42ead8a9982e2f9504c/Source/HarmonyPatch.cs#L99
that mods should make sure the "thing request" passed in is never "everything".

This is error is benign (basically it logs the error and abort the operation). It should do damage except the job will be cancel (so BurnItForFuel wouldn't work)

The reason you happens to find this mod trigger this error is probably just luck. In a different game set up you might find vanilla game trigger that error too.
< >
正在显示第 1 - 1 条,共 1 条留言
每页显示数: 1530 50