bbradson / Performance-Fish

Performance Mod for RimWorld
Mozilla Public License 2.0
423 stars 34 forks source link

A recipe fails to work #48

Open quicksilverfox opened 1 month ago

quicksilverfox commented 1 month ago

Fine meal recipe. A cook puts meat on the stove, and then something breaks, and instead of adding vegetables it adds more and more meat. Not 100% sure what is the problem, but it ends in Performance FIsh / Fishery.

Was fixed by save/load cycle.

https://gist.github.com/HugsLibRecordKeeper/08cae9e8702d13c8724ec1d2bdeba98b

Exception in Verse.AI.JobDriver.TryActuallyStartNextToil: System.InvalidOperationException: Failed to find parent index in FishTable<PerformanceFish.GroupThingPair, System.Int32> for key: 'GroupThingPair { ThingRequestGroup = HaulableAlways, ThingIDNumber = 812723 }', hashCode: '67921587', value: '39', count: '221', bucket array length: '1024', total tailing entries count: '27', known chain of tails:
{ index: '335' key: 'GroupThingPair { ThingRequestGroup = Everything, ThingIDNumber = 810452 }', hashCode: '34364884', value: '32 }
[Ref 3E99135E]
 at FisheryLib.Collections.FishTable`2+ThrowHelper[TKey,TValue].ThrowFailedToFindParentInvalidOperationException (FisheryLib.Collections.FishTable`2[TKey,TValue] fishTable, System.Int32 childBucketIndex) [0x001ae] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at FisheryLib.Collections.FishTable`2[TKey,TValue].GetParentBucketIndex (System.Int32 childBucketIndex, System.Boolean throwOnFailure) [0x0001f] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at FisheryLib.Collections.FishTable`2[TKey,TValue].SetParentTail (System.Int32 entryIndex, System.UInt32 newTail) [0x00000] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at FisheryLib.Collections.FishTable`2[TKey,TValue].InsertEntryInternal (FisheryLib.Collections.FishTable`2+Entry[TKey,TValue]& entry, FisheryLib.Collections.FishTable`2+ReplaceBehaviour[TKey,TValue] replaceBehaviour) [0x0005b] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at FisheryLib.Collections.FishTable`2[TKey,TValue].InsertEntry (FisheryLib.Collections.FishTable`2+Entry[TKey,TValue]& entry, FisheryLib.Collections.FishTable`2+ReplaceBehaviour[TKey,TValue] replaceBehaviour, System.Boolean shifting) [0x00000] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at FisheryLib.Collections.FishTable`2[TKey,TValue].InsertEntry (TKey key, TValue value, FisheryLib.Collections.FishTable`2+ReplaceBehaviour[TKey,TValue] replaceBehaviour, System.Boolean shifting) [0x00008] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at FisheryLib.Collections.FishTable`2[TKey,TValue].set_Item (TKey key, TValue value) [0x00000] in <a3e8b53a325844e98f60ef692520ce62>:0 
 at PerformanceFish.Listers.ThingsPrepatches.AddToGroupList (Verse.ListerThings lister, Verse.Thing thing, Verse.ThingRequestGroup thingRequestGroup) [0x0004f] in <1abb0130249c43c1baf27d70a2458bfe>:0 
 at Verse.ListerThings.Add (Verse.Thing t) [0x00060] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.RegionListersUpdater.RegisterInRegions (Verse.Thing thing, Verse.Map map) [0x0003a] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.Thing.SpawnSetup (Verse.Map map, System.Boolean respawningAfterLoad) [0x00158] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
     - TRANSPILER SmashPhil.VehicleFramework: IEnumerable`1 Vehicles.VehiclePathing:SpawnAndUpdateVehicleRegionsTranspiler(IEnumerable`1 instructions)
     - TRANSPILER OskarPotocki.VanillaFactionsExpandedMechanoids: IEnumerable`1 VFEMech.ThingSpawnSetup_Patch:Transpiler(IEnumerable`1 instructions)
     - POSTFIX Uuugggg.rimworld.Five_Second_Rule.main: Void Five_Second_Rule.ThingSpawn_Patch:Postfix(Thing __instance, Map map, Boolean respawningAfterLoad)
     - POSTFIX XeoNovaDan.TinyTweaks: Void TinyTweaks.Patches_NightOwl+Thing_SpawnSetup:Postfix(Thing __instance)
     - POSTFIX OskarPotocki.VanillaPsycastsExpanded: Void VanillaPsycastsExpanded.GenRadialCached:SpawnSetup_Postfix(Thing __instance)
 at Verse.ThingWithComps.SpawnSetup (Verse.Map map, System.Boolean respawningAfterLoad) [0x00000] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
     - POSTFIX OskarPotocki.VFECore: Void VFECore.Thing_SpawnSetup_Patch:Postfix(ThingWithComps __instance)
 at Verse.GenSpawn.Spawn (Verse.Thing newThing, Verse.IntVec3 loc, Verse.Map map, Verse.Rot4 rot, Verse.WipeMode wipeMode, System.Boolean respawningAfterLoad, System.Boolean forbidLeavings) [0x00346] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
     - PREFIX Uuugggg.rimworld.Replace_Stuff.main: Void Replace_Stuff.NewThing.TransferSettings:Prefix(Thing newThing, IntVec3 loc, Map map, Rot4 rot, Boolean respawningAfterLoad, Thing& __state)
     - PREFIX SmashPhil.VehicleFramework: Boolean Vehicles.Construction:RegisterThingSpawned(Thing newThing, IntVec3& loc, Map map, Rot4& rot, Thing& __result, WipeMode wipeMode, Boolean respawningAfterLoad)
     - PREFIX MapPreview.GenLow: Boolean MapPreview.Patches.Patch_Verse_GenSpawn:Spawn(Thing newThing, Map map, Thing& __result)
     - POSTFIX Uuugggg.rimworld.Replace_Stuff.main: Void Replace_Stuff.NewThing.TransferSettings:Postfix(Thing __result, Thing __state)
 at Verse.GenPlace.SplitAndSpawnOneStackOnCell (Verse.Thing thing, Verse.IntVec3 loc, Verse.Rot4 rot, Verse.Map map, Verse.Thing& resultingThing, System.Action`2[T1,T2] placedAction) [0x00029] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.GenPlace.TryPlaceDirect (Verse.Thing thing, Verse.IntVec3 loc, Verse.Rot4 rot, Verse.Map map, Verse.Thing& resultingThing, System.Action`2[T1,T2] placedAction) [0x00180] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
     - POSTFIX net.littlewhitemouse.LWM.DeepStorage: Void LWM.DeepStorage.Patch_GenPlace_TryPlaceDirect:Postfix(Map map, IntVec3 loc)
 at Verse.GenPlace.TryPlaceThing (Verse.Thing thing, Verse.IntVec3 center, Verse.Map map, Verse.ThingPlaceMode mode, Verse.Thing& lastResultingThing, System.Action`2[T1,T2] placedAction, System.Predicate`1[T] nearPlaceValidator, Verse.Rot4 rot) [0x00032] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.GenDrop.TryDropSpawn (Verse.Thing thing, Verse.IntVec3 dropCell, Verse.Map map, Verse.ThingPlaceMode mode, Verse.Thing& resultingThing, System.Action`2[T1,T2] placedAction, System.Predicate`1[T] nearPlaceValidator, System.Boolean playDropSound) [0x000e1] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
     - POSTFIX net.avilmask.rimworld.mod.CommonSense: Void CommonSense.GenPlace_TryDropSpawn_NewTmp_CommonSensePatch:Postfix(Thing resultingThing)
     - POSTFIX net.avilmask.rimworld.mod.NonUnoPinata: Void NonUnoPinata.Patches.GenPlace_TryPlaceThing_NonUnoPinataPatch:Postfix(Thing thing, IntVec3 dropCell, Map map, ThingPlaceMode mode, Thing resultingThing, Action`2 placedAction, Predicate`1 nearPlaceValidator)
 at Verse.ThingOwner.TryDrop (Verse.Thing thing, Verse.IntVec3 dropLoc, Verse.Map map, Verse.ThingPlaceMode mode, Verse.Thing& lastResultingThing, System.Action`2[T1,T2] placedAction, System.Predicate`1[T] nearPlaceValidator, System.Boolean playDropSound) [0x00034] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.ThingOwner`1[T].TryDrop (Verse.Thing thing, Verse.IntVec3 dropLoc, Verse.Map map, Verse.ThingPlaceMode mode, T& lastResultingThing, System.Action`2[T1,T2] placedAction, System.Predicate`1[T] nearPlaceValidator) [0x00025] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.Pawn_CarryTracker.TryDropCarriedThing (Verse.IntVec3 dropLoc, Verse.ThingPlaceMode mode, Verse.Thing& resultingThing, System.Action`2[T1,T2] placedAction) [0x00018] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at Verse.AI.Toils_Haul+<>c__DisplayClass8_0.<PlaceHauledThingInCell>b__0 () [0x00102] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
 at AllowTool.Patches.ToilsHaul_PlaceInCell_Patch+<>c__DisplayClass0_0.<ClearHaulUrgently>b__0 () [0x00042] in <265ca9a7207e4e91b7143054729037f5>:0 
 at LWM.DeepStorage.Patch_PlaceHauledThingInCell_Toil+<>c__DisplayClass0_0.<Postfix>b__0 () [0x000b2] in <b6c0b477157241b2b453e30bad1e0117>:0 
 at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x00208] in <91ef6de66e7b4ba2839be0ab7f01fedf>:0 
     - TRANSPILER net.pardeike.rimworld.lib.harmony: IEnumerable`1 VisualExceptions.ExceptionsAndActivatorHandler:Transpiler(IEnumerable`1 instructions, MethodBase original)
thetaprime1 commented 1 week ago

I have noticed this without performance fish as well. Pawn bring ingredients to benches, stands to work, abandons task and grabs new ingredients. Pretty soon I have a pile of stone chunks or whatever lying around the crafting bench and none of the bills have decreased and no product is made. Pretty sure either Rocketman or Dubs Analyzer is to blame. Already ruled out performance analyzer.

Foxtr0t1337 commented 1 week ago

I have noticed this without performance fish as well. Pawn bring ingredients to benches, stands to work, abandons task and grabs new ingredients. Pretty soon I have a pile of stone chunks or whatever lying around the crafting bench and none of the bills have decreased and no product is made. Pretty sure either Rocketman or Dubs Analyzer is to blame. Already ruled out performance analyzer.

Do you have LWM's DeepStorage or AllowTool installed when that happen? They patched job toils. Maybe those patches caused this.