[1.3] [KV] Infinite Storage [ModSync RW]

Started by Kiame, December 16, 2017, 07:45:52 PM

Previous topic - Next topic

KnewOne

I'm getting this all the time. Slows my game a lot. ~1500 times before it changes to def is component
def is: Steel
Verse.Log:Warning(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:59)
InfiniteStorage.Building_InfiniteStorage:TryGetValue(ThingDef, Thing&)
InfiniteStorage.Patch_ItemAvailability_ThingsAvailableAnywhere:Postfix(Boolean&, ItemAvailability, ThingCountClass, Pawn)
RimWorld.ItemAvailability:ThingsAvailableAnywhere_Patch1(Object, ThingDefCountClass, Pawn)
RimWorld.WorkGiver_ConstructDeliverResources:ResourceDeliverJobFor(Pawn, IConstructible, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResources.cs:67)
RimWorld.WorkGiver_ConstructDeliverResourcesToBlueprints:JobOnThing(Pawn, Thing, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResourcesToBlueprints.cs:48)
RimWorld.WorkGiver_Scanner:HasJobOnThing(Pawn, Thing, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGiver.cs:93)
RimWorld.<TryIssueJobPackage>c__AnonStorey1:<>m__0(Thing) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:103)
Verse.<RegionwiseBFSWorker>c__AnonStorey1:<>m__1(Region) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:287)
Verse.BFSWorker:BreadthFirstTraverseWork(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Map\RegionsAndRooms\RegionTraverser.cs:246)
Verse.RegionTraverser:BreadthFirstTraverse(Region, RegionEntryPredicate, RegionProcessor, Int32, RegionType) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Map\RegionsAndRooms\RegionTraverser.cs:166)
Verse.GenClosest:RegionwiseBFSWorker(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Predicate`1, Func`2, Int32, Int32, Single, Int32&, RegionType, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:300)
Verse.GenClosest:ClosestThingReachable(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Single, Predicate`1, IEnumerable`1, Int32, Int32, Boolean, RegionType, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:107)
RimWorld.JobGiver_Work:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:145)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:176)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:245)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Subtree.cs:36)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Conditionals.cs:25)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch2(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:515)
Verse.AI.Pawn_JobTracker:EndCurrentJob_Patch0(Object, JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:120)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:556)
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:125)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:297)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:261)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:512)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)

Any ideas?

rawrfisher

#136
Have you updated the mod?

Figured I should mention that the meat storage keeps kicking out the meat when its not needed
Professional jerk
Want something broken let me know

Kiame

Quote from: KnewOne on August 02, 2018, 10:07:13 AM
I'm getting this all the time. Slows my game a lot. ~1500 times before it changes to def is component
Any ideas?

Gah i forgot to turn debug logs off  :-[

I'll get a better version out shortly (next hour or so)

rawrfisher

Kaime  I wanna send you my savegame and output log to see if you can replicate my issues with storages not working right.

they keep throwing out items randomly and they dont allow pawns to use the items in em randomly
Professional jerk
Want something broken let me know

Kiame

i'll pm you my email address if that works. Just put the save file into a zip and i'll see if i can load it.

Inf Storage is not perfect about only spitting out things that are needed and at times will spit out more than needed due to limitations about what i can do w/o making this mod incompatible with other mods. For instance if a pawn is searching for ingredients but doesnt start crafting there is one path where the items found will be dropped. For walls a whole stack of the item will be dropped because the pawn is only looking for 5 wood but will take a full stack if it's there - since walls and furniture share the same path, dropping full stacks apply to furniture.

When items are dropped they will become restricted to the pawn looking for them. So there could be a case where a pawn requests steel, a stack drops, then no other pawn can use that stack until the original pawn is told to do something else


rawrfisher

def is: BlocksGranite
Verse.Log:Warning(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:59)
InfiniteStorage.Building_InfiniteStorage:TryGetValue(ThingDef, Thing&)
InfiniteStorage.Patch_ItemAvailability_ThingsAvailableAnywhere:Postfix(Boolean&, ItemAvailability, ThingCountClass, Pawn)
RimWorld.ItemAvailability:ThingsAvailableAnywhere_Patch1(Object, ThingDefCountClass, Pawn)
RimWorld.WorkGiver_ConstructDeliverResources:ResourceDeliverJobFor(Pawn, IConstructible, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResources.cs:67)
RimWorld.WorkGiver_ConstructDeliverResourcesToBlueprints:JobOnThing(Pawn, Thing, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGivers\Construction\WorkGiver_ConstructDeliverResourcesToBlueprints.cs:48)
RimWorld.WorkGiver_Scanner:HasJobOnThing(Pawn, Thing, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\WorkGiver.cs:93)
RimWorld.<TryIssueJobPackage>c__AnonStorey1:<>m__0(Thing) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:103)
Verse.<ClosestThingReachable>c__AnonStorey0:<>m__0(Thing) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:144)
Verse.GenClosest:ClosestThing_Global(IntVec3, IEnumerable, Single, Predicate`1, Func`2) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:352)
Verse.GenClosest:ClosestThingReachable(IntVec3, Map, ThingRequest, PathEndMode, TraverseParms, Single, Predicate`1, IEnumerable`1, Int32, Int32, Boolean, RegionType, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Gen\GenClosest.cs:152)
RimWorld.JobGiver_Work:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\AI\JobGivers\Work\JobGiver_Work.cs:145)
Verse.AI.ThinkNode_PrioritySorter:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:176)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Tagger:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:245)
Verse.AI.ThinkNode_Subtree:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Subtree.cs:36)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.ThinkNode_Conditional:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Conditionals.cs:25)
Verse.AI.ThinkNode_Priority:TryIssueJobPackage(Pawn, JobIssueParams) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\ThinkNodes\ControlFlow\ThinkNode_Controls.cs:18)
Verse.AI.Pawn_JobTracker:DetermineNextJob_Patch1(Object, ThinkTreeDef&)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:515)
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:393)
Verse.AI.Pawn_JobTracker:JobTrackerTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\AI\Pawn_JobTracker.cs:120)
Verse.Pawn:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Pawn\Pawn.cs:559)
Verse.TickList:Tick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickList.cs:125)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:303)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:267)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:512)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:99)

Guessing this was an example of the debug into your talking about
Professional jerk
Want something broken let me know

Kiame

yes sry. Pls update to the latest version

rawrfisher

Did you choose not to let the infinite storage hold minified objects?

Professional jerk
Want something broken let me know

Kiame

I know i ran into some problems originally with minified but i thought i had added support. Is this B18 or 1.0?

rawrfisher

#145
This is 0.19,  Its not the only thing I been havin issues with but almost everything else you have had issues reproducing or are some form of user error on my part

Guess rimworld thinks its time for you to be on the receiving end of the error report spam

System.NullReferenceException: Object reference not set to an instance of an object
at InfiniteStorage.UI.ViewUI.PopulateDisplayThings () <IL 0x000eb, 0x002cf>
at InfiniteStorage.UI.ViewUI..ctor (InfiniteStorage.Building_InfiniteStorage) <IL 0x0008f, 0x00196>
at InfiniteStorage.Building_InfiniteStorage.<GetGizmos>b__61_0 () <IL 0x00006, 0x0005a>
at Verse.Command_Action.ProcessInput (UnityEngine.Event) [0x0000e] in C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Gizmos\Command_Action.cs:18
at Verse.GizmoGridDrawer.DrawGizmoGrid (System.Collections.Generic.IEnumerable`1<Verse.Gizmo>,single,Verse.Gizmo&) [0x003fe] in C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Gizmos\GizmoGridDrawer.cs:162
at (wrapper dynamic-method) RimWorld.InspectGizmoGrid.DrawInspectGizmoGridFor_Patch0 (System.Collections.Generic.IEnumerable`1<object>,Verse.Gizmo&) <IL 0x00230, 0x007c2>

Verse.Log:Error(String, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:78)
Verse.Log:ErrorOnce(String, Int32, Boolean) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:105)
RimWorld.InspectGizmoGrid:DrawInspectGizmoGridFor_Patch0(IEnumerable`1, Gizmo&)
RimWorld.MainTabWindow_Inspect:DrawInspectGizmos() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Inspect.cs:94)
RimWorld.InspectPaneUtility:ExtraOnGUI(IInspectPane) (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\Inspect\InspectPaneUtility.cs:128)
RimWorld.MainTabWindow_Inspect:ExtraOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\MainButtons\MainTabWindows\MainTabWindow_Inspect.cs:70)
Verse.WindowStack:WindowStackOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\UI\Windows\WindowStack.cs:169)
RimWorld.UIRoot_Play:UIRootOnGUI() (at C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\UIRoot_Play.cs:91)
Verse.Root:OnGUI() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root.cs:164)


https://git.io/fNxpA output log

more errors likely to come so stay tuned  8)

There's something in the storage that's causing the UI to break.  Did a quick check and it was a minified item from the orassan mod.  I think this was an issue with the way storage settings work now with the unstable.

Professional jerk
Want something broken let me know


Kiame

Update:
The meat storage should be smarter about when it dumps contents

rawrfisher

Quote from: Kiame on September 01, 2018, 01:44:50 PM
Update:
The meat storage should be smarter about when it dumps contents
Wouldn't take much to make them smarter kiame
Professional jerk
Want something broken let me know

Kiame

Update:
Fixing an issue where pawns were not pulling items out of storage for crafting