RimWorld

RimWorld

Repairable Gear
 Toto téma bylo přilepeno, takže je nejspíš důležité
SteveZero  [vývojář] 23. kvě. 2021 v 16.20
Report Here: Bugs & Balance Concerns
If there are error logs please share link if you can, otherwise paste the text here. Please add some context on what you were doing if possible. How to recreate the issue.

* Don't forget to subscribe to discussion, at least until your bug is fixed. I might need to ask some follow up questions to be able to fix. Thanks!
Naposledy upravil SteveZero; 25. kvě. 2021 v 20.51
< >
Zobrazuje se 115 z 65 komentářů
hey, cool mod! But i have a bug. Some items (both modded and vanilla) cant be repaired via right click .When i right click the item, nothing happens, so i cant even haul the item. But my ALL work priorities for ALL colonists become set to "1" after that. Idk what causes the bug, but i beg u just to make checkbox in mod's settings, disabling the ability to repair the item with right click. Thanks. Sorry for my "goodest" english. I'll try to get the error log
Naposledy upravil Reedwhisker; 24. kvě. 2021 v 6.26
Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch7(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch3(UnityEngine.Vector3,Verse.Pawn)
at RimWorld.FloatMenuMakerMap.TryMakeFloatMenu (Verse.Pawn pawn) [0x00056] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) RimWorld.Selector.RimWorld.Selector.HandleMapClicks_Patch1(RimWorld.Selector)
at RimWorld.Selector.SelectorOnGUI () [0x00000] in <c36f9493c9844ddaa7fb5c788416098f>:0
at RimWorld.MapInterface.HandleLowPriorityInput () [0x0000f] in <c36f9493c9844ddaa7fb5c788416098f>:0
at RimWorld.UIRoot_Play.UIRootOnGUI () [0x000d3] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
Verse.Log:Error(String, Boolean)
Verse.Root:Verse.Root.OnGUI_Patch1(Root)
Koris 24. kvě. 2021 v 10.15 
Hey there! Loving the mod, but some items can't be right-clicked. I'm using "Achtung" and it tells me it caught and prevented some mod exception. It then offers me to copy it to the clipboard, the result is this:

System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <c36f9493c9844ddaa7fb5c788416098f>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch6(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch5(UnityEngine.Vector3,Verse.Pawn)

Any idea what might be causing this?
SteveZero  [vývojář] 24. kvě. 2021 v 12.09 
@Koris, @ReedWhisker, Can you give an example of what were you trying to right-click? The error seems to be complaining about not knowing where the repair bench is. I'll fix this soon. I thought I had in the last update.

Is it breaking your game or is it just spamming your log console?
Naposledy upravil SteveZero; 24. kvě. 2021 v 12.10
Koris 24. kvě. 2021 v 15.18 
For me it's not breaking my game, it just doesn't allow me to do this context menu action. I noticed that it reacts differently depending on how damaged the apparel is. I've did some testing. It does not break my game, just "disables" a context menu option for some apparel.

Uninstalled repair bench:

Apparel undamaged/only lightly damaged -> I get a greyed-out option showing me the item can't be repaired as there's no workbench available.

Apparel a bit damaged --> I get the error message mentioned above.

Apparel heavily damaged -> I get the error message mentioned above.

Installed and powered repair bench:

Apparel undamaged/only lightly damaged -> I get the option showing me that I can repair the item for maintenance only.

Apparel a bit damaged -> it shows me the cost and repair chance.

Apparel heavily damaged -> It shows me the greyed-out box telling me the item is irreparably damaged.

If you'd like a mod list or some other testing, feel free to ask for more specifics.


SteveZero původně napsal:
@Koris, @ReedWhisker, Can you give an example of what were you trying to right-click? The error seems to be complaining about not knowing where the repair bench is. I'll fix this soon. I thought I had in the last update.

Is it breaking your game or is it just spamming your log console?
Naposledy upravil Koris; 24. kvě. 2021 v 15.18
This log appears when someone is trying to reapair flak apparel. Causing massive lag spikes and seems to repeat it self until a pawn gives up repairing that piece of apparel. (I'm using "Flak fabrick" mod)

Cannot get AdjustedCostList for Apparel_FlakPants with null Stuff.
Verse.Log:Verse.Log.Error_Patch2(String, Boolean)
RimWorld.CostListCalculator:CostListAdjusted(BuildableDef, ThingDef, Boolean)
RimWorld.CostListCalculator:CostListAdjusted(Thing)
RepairableGear.ThingExtensions:GetRepairCostList(Thing)
RepairableGear.ThingExtensions:IsRepairable(Thing)
RepairableGear.ThingExtensions:IsRepairable(Thing, Pawn, Thing, Bill, Boolean)
RepairableGear.<>c__DisplayClass16_0:<FindRepairableThings>b__2(Thing)
System.Linq.WhereListIterator`1:MoveNext()
System.Collections.Generic.List`1:InsertRange(Int32, IEnumerable`1)
System.Collections.Generic.List`1:AddRange(IEnumerable`1)
RepairableGear.<>c__DisplayClass16_0:<FindRepairableThings>b__1(Region)
Verse.BFSWorker:BreadthFirstTraverseWork(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType)
Verse.RegionTraverser:BreadthFirstTraverse(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType)
RepairableGear.WorkGiver_RepairItem:FindRepairableThings(Pawn, Thing, Bill)
RepairableGear.WorkGiver_RepairItem:JobOnThing(Pawn, Thing, Boolean)
RimWorld.WorkGiver_Scanner:HasJobOnThing(Pawn, Thing, Boolean)
RimWorld.<>c__DisplayClass3_1:<TryIssueJobPackage>b__0(Thing)
Verse.<>c__DisplayClass2_0:<ClosestThingReachable>b__0(Thing)
Verse.GenClosest:<ClosestThing_Global>g__Process|5_0(Thing, <>c__DisplayClass5_0&)
Verse.GenClosest:ClosestThing_Global(IntVec3, IEnumerable, Single, Predicate`1, Func`2)
Verse.GenClosest:ClosestThingReachable(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Single, Predicate`1, IEnumerable`1, Int32, Int32, Boolean, RegionType, Boolean)
RimWorld.JobGiver_Work:RimWorld.JobGiver_Work.TryIssueJobPackage_Patch0(JobGiver_Work, Pawn, JobIssueParams)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams)
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.DetermineNextJob_Patch4(Pawn_JobTracker, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:CheckForJobOverride()
Verse.AI.<>c__DisplayClass2_0:<DoRecipeWork>b__1()
CarpenterTable.<>c__DisplayClass0_0:<Postfix>b__0()
Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0(JobDriver)
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0(Pawn_JobTracker)
Verse.Pawn:Verse.Pawn.Tick_Patch3(Pawn)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3(TickManager)
Verse.TickManager:Verse.TickManager.TickManagerUpdate_Patch1(TickManager)
Verse.Game:Verse.Game.UpdatePlay_Patch1(Game)
Verse.Root_Play:Verse.Root_Play.Update_Patch0(Root_Play)

followed by this log:

Could not reserve Thing_Apparel_FlakJacket87279419 (layer: null) for Ben for job RG_RepairItem (Job_8197806) A=Thing_RG_ElectricRepairTable72223535 B=Thing_Apparel_FlakJacket87279419 (now doing job RG_RepairItem (Job_8197806) A=Thing_RG_ElectricRepairTable72223535 B=Thing_Apparel_FlakJacket87279419(curToil=2)) for maxPawns 1 and stackCount -1. Existing reserver: Mahoney doing job HaulToInventory (Job_8197654) A=Thing_Apparel_FlakJacket87279419 B=(128, 0, 148) (toilIndex=1)
Verse.Log:Verse.Log.Warning_Patch1(String, Boolean)
Verse.AI.ReservationManager:Verse.AI.ReservationManager.LogCouldNotReserveError_Patch1(ReservationManager, Pawn, Job, LocalTargetInfo, Int32, Int32, ReservationLayerDef)
Verse.AI.ReservationManager:Verse.AI.ReservationManager.Reserve_Patch2(ReservationManager, Pawn, Job, LocalTargetInfo, Int32, Int32, ReservationLayerDef, Boolean)
Verse.AI.ReservationUtility:Reserve(Pawn, LocalTargetInfo, Job, Int32, Int32, ReservationLayerDef, Boolean)
Verse.AI.<>c__DisplayClass0_0:<Reserve>b__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.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.StartJob_Patch2(Pawn_JobTracker, Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1, Boolean, Boolean)
Verse.AI.Pawn_JobTracker:CheckForJobOverride()
Verse.AI.<>c__DisplayClass2_0:<DoRecipeWork>b__1()
CarpenterTable.<>c__DisplayClass0_0:<Postfix>b__0()
Verse.AI.JobDriver:Verse.AI.JobDriver.DriverTick_Patch0(JobDriver)
Verse.AI.Pawn_JobTracker:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0(Pawn_JobTracker)
Verse.Pawn:Verse.Pawn.Tick_Patch3(Pawn)
Verse.TickList:Tick()
Verse.TickManager:Verse.TickManager.DoSingleTick_Patch3(TickManager)
Verse.TickManager:Verse.TickManager.TickManagerUpdate_Patch1(TickManager)
Verse.Game:Verse.Game.UpdatePlay_Patch1(Game)
Verse.Root_Play:Verse.Root_Play.Update_Patch0(Root_Play)
It seems to happen only for flak pants for some reason.
Happy to read the right-click bug is already getting attention!
I also have this on vanilla and modded weapons (thought is was an issue with VE first). I did not find any logic yet to why some weapons are and others aren't right clickable...
SteveZero  [vývojář] 25. kvě. 2021 v 7.46 
@Gkore, not all weapons are repairable. E.g. anything without quality or one time use weapons. I'll add a message for these situations so its more clear when something is intentionally not repairable vs. something is wrong.

@Wolski, I'll try to see if I can replicate.
I double that issue. Before installing repair bench any apparel item wasn't interactable via rightclick
GKore 25. kvě. 2021 v 14.24 
SteveZero původně napsal:
@Gkore, not all weapons are repairable. E.g. anything without quality or one time use weapons. I'll add a message for these situations so its more clear when something is intentionally not repairable vs. something is wrong.

But i have the exact same issue as Reedwhisker. Extract from right clicking the vanilla revolver:

Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch23(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch3(UnityEngine.Vector3,Verse.Pawn)
at RimWorld.FloatMenuMakerMap.TryMakeFloatMenu (Verse.Pawn pawn) [0x00056] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.Selector.RimWorld.Selector.HandleMapClicks_Patch1(RimWorld.Selector)
at RimWorld.Selector.SelectorOnGUI () [0x00000] in <7927e938de4c4089b4add4215e58d5b1>:0
at RimWorld.MapInterface.HandleLowPriorityInput () [0x0000f] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.UIRoot_Play.RimWorld.UIRoot_Play.UIRootOnGUI_Patch1(RimWorld.UIRoot_Play)
at (wrapper dynamic-method) Verse.Root.Verse.Root.OnGUI_Patch1(Verse.Root)
Verse.Log:Verse.Log.Error_Patch2(String, Boolean)
Verse.Root:Verse.Root.OnGUI_Patch1(Root)
hey. Idk if it helps you, but i forgot to mention that i use Combat Extended. Can it cause this bug?
Naposledy upravil Reedwhisker; 26. kvě. 2021 v 0.46
SteveZero  [vývojář] 26. kvě. 2021 v 7.53 
Reedwhisker původně napsal:
hey. Idk if it helps you, but i forgot to mention that i use Combat Extended. Can it cause this bug?

No, CE isn't the problem. I've replicated and fixed the bug already. I'm bundling the fix with an update I'm releasing sometime this week.
Achtung is also giving me an error when right clicking any damaged clothing with a pawn I want to put on clothes. I do not have a repair thing built.

Screenshot: https://ibb.co/0BYxsBC

System.NullReferenceException: Object reference not set to an instance of an object
at RepairableGear.WorkGiver_RepairItem.GetBillGiverRootCell (Verse.Thing billGiver, Verse.Pawn forPawn) [0x00010] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.WorkGiver_RepairItem.TryFindBestIngredients (Verse.Pawn pawn, Verse.Thing workbench, Verse.Thing repairableThing, System.Collections.Generic.List`1[T] ingredients, RimWorld.Bill bill, System.Collections.Generic.List`1[T] repairCost) [0x00071] in <42fcf2625362430dab868a30c8138bf8>:0
at RepairableGear.CompRepairableThing+<CompFloatMenuOptions>d__2.MoveNext () [0x00272] in <42fcf2625362430dab868a30c8138bf8>:0
at Verse.ThingWithComps+<GetFloatMenuOptions>d__40.MoveNext () [0x00102] in <7927e938de4c4089b4add4215e58d5b1>:0
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch18(UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>)
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch6(UnityEngine.Vector3,Verse.Pawn)

GM9 29. kvě. 2021 v 9.53 
Floor breaks under the reparing table then colonist start reparing
< >
Zobrazuje se 115 z 65 komentářů
Na stránku: 1530 50