RimWorld

RimWorld

Repairable Gear
 Denna tråd har blivit fäst, så den är troligtvis viktig
SteveZero  [utvecklare] 23 maj, 2021 @ 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!
Senast ändrad av SteveZero; 25 maj, 2021 @ 20:51
< >
Visar 1-15 av 65 kommentarer
Reedwhisker 24 maj, 2021 @ 2:01 
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
Senast ändrad av Reedwhisker; 24 maj, 2021 @ 6:26
Reedwhisker 24 maj, 2021 @ 4:51 
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 maj, 2021 @ 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  [utvecklare] 24 maj, 2021 @ 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?
Senast ändrad av SteveZero; 24 maj, 2021 @ 12:10
Koris 24 maj, 2021 @ 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.


Ursprungligen skrivet av SteveZero:
@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?
Senast ändrad av Koris; 24 maj, 2021 @ 15:18
Wolski 25 maj, 2021 @ 0:49 
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)
Wolski 25 maj, 2021 @ 1:08 
It seems to happen only for flak pants for some reason.
GKore 25 maj, 2021 @ 2:05 
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  [utvecklare] 25 maj, 2021 @ 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.
GVLT 25 maj, 2021 @ 9:37 
I double that issue. Before installing repair bench any apparel item wasn't interactable via rightclick
GKore 25 maj, 2021 @ 14:24 
Ursprungligen skrivet av SteveZero:
@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)
Reedwhisker 26 maj, 2021 @ 0:46 
hey. Idk if it helps you, but i forgot to mention that i use Combat Extended. Can it cause this bug?
Senast ändrad av Reedwhisker; 26 maj, 2021 @ 0:46
SteveZero  [utvecklare] 26 maj, 2021 @ 7:53 
Ursprungligen skrivet av Reedwhisker:
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.
Inquisition 26 maj, 2021 @ 20:58 
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 maj, 2021 @ 9:53 
Floor breaks under the reparing table then colonist start reparing
< >
Visar 1-15 av 65 kommentarer
Per sida: 1530 50