skullywag / extendedstorage Goto Github PK
View Code? Open in Web Editor NEWAdds more storage buildings to Rimworld
Adds more storage buildings to Rimworld
Having problems with loading games with ur mod.
Everytime on load all items spill out of the Containers like shown on the image below
also im getting a
"Extended Storage :: Caught exception: System.Exception: Exception from HarmonyInstance "com.extendedstorage.patches" ---> System.ArgumentOutOfRangeException: Argument is out of range."
on startup of rimworld (-pastebin : https://pastebin.com/BkahuN1J)
edit.: fixed by changing mod load order
store ammos
Following setup:
Produces following log error:
ArgumentOutOfRangeException: Argument is out of range.
Parameter name: index
at System.Collections.Generic.List`1<Verse.FloatMenuOption>.CheckIndex (int) <0x00042>
at System.Collections.Generic.List`1<Verse.FloatMenuOption>.InsertRange (int,System.Collections.Generic.IEnumerable`1<Verse.FloatMenuOption>) <0x0002b>
at ExtendedStorage.FloatMenuMakerMap_AddHumanlikeOrders.Postfix (UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>) <0x00245>
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.AddHumanlikeOrders_Patch2 (UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>) <0x038c7>
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch2 (UnityEngine.Vector3,Verse.Pawn) <0x00210>
at RimWorld.FloatMenuMakerMap.TryMakeFloatMenu (Verse.Pawn) <0x00120>
at RimWorld.Selector.HandleMapClicks () <0x0017f>
at RimWorld.Selector.SelectorOnGUI () <0x00014>
at RimWorld.MapInterface.HandleLowPriorityInput () <0x00033>
at RimWorld.UIRoot_Play.UIRootOnGUI () <0x001a6>
at Verse.Root.OnGUI () <0x000c6>
Probable cause is conflict between CE transpiler of AddHumanlikeOrders to replace force wear option when at inventory capacity and ES float menu generation for multi-apparel stacks.
Sorry, I do not know English, so I translate my text through google translator
The new mechanics of pallet work seems uncomfortable to me.
Any apparel's quality is set to normal (regardless of what it was when added) when it is splurged - whether the container was deconstructed or the filter changed. This does not occur when a pawn takes an item from the container.
It looks like when the container splits an item off of its internal stack, it copies the data of the stored item, removes it, and then spawns the item. It does explictly set the item's current hitpoints during the copy. But it does not explictly set the quality - I suspect that the default value for spawned items is 'normal' - so it looks like the items quality was 'changed' to normal, but really the item just inherited a default from somewhere.
Same idea as a colour gradient, start filling the stockpile on one side until it fills up on the other side. Pick a direction: linear or radial. Handy for those big stockpiles where pawns always end up running on the far end.
Food Basket has "preventDeteriorationOnTop" tag, many others don't.
What's your consideration on that?
How do you judge which storage should provide deterioration prevention?
Pawns keep walking through skips when getting materials from the other side or just pretending skips don't exist when path finding. This causes extreme slowdowns, especially in my stone cutting room where the pawn will literally walk over 3 skips in a row each with 12 stone chunks just to get to the stone cutting table, then back over those 3 again to get to the stone chunk on the opposite side, causing him to walk at like 5% the normal speed when he could have gone around the skips 95% faster. Pawns need to path find around skips, perhaps make all storages impossible to go through so they can no longer walk through them anymore.
There's an example of my setup, where pawns can get to everything without walking through any of them. However they choose to walk through the slowest part of the skips every time.
wouldn't it be better if the freezer chest have the option of hold body parts? its for medical purposes... for compactness of the room. (organ harvesting)
nah forget about it... it wont spoil. or it will?
I'm getting the same issue with sums not refreshing after loading a save. I am using the latest release that was linked on the forum.
link
I initially thought this was an issue with mods conflicting but had no issues for ~6 hours until after saving and reloading.
For clarity sake the mod I thought was conflicting is Spdskatrs Researchable Stat Upgrades mod, I only started to notice the issue because the stacks become so large that it is hard not to notice the discrepancy.
Let me know if you need more info.
EDIT: Forgot to mention that if I copy the settings from a skip that has an incorrect sum and paste over the same skip the sum updates, this does not however fix it as any further addition to the stack does not update.
The Clothing Rack consistently mends garments placed in it and removes the "worn by a corpse" tag. It also appears to change the quality to normal. I tested it by itself, since I usually run a ton of mods, but the behaviour continued.
If this is known/intended, please ignore me.
I'd like a mod setting to check a box in order to change the default storage of all storages from this mod to default at nothing instead of everything. Its really annoying when I build a few storages and suddenly my pawns start hauling the most randomest thing they can find to it before I can even set the settings I want.
It seems that on load or on minification and re-place, storage buildings will occasionally stop running the code that sets them as valid storage locations, as well as the code that causes items to be ejected if they don't match the storage tab settings. This has happened several times in my current game, leading to a need to deconstruct and rebuild the storage item itself. The error log does not seem to have any errors, but I can provide that as needed.
I should note that the settings are still listed correctly on the storage tab itself, so that at least is being saved.
I'm unsure if this is intentional, but all other storage items seem to look the same when they're rotated. The fabric hamper, however, is off-center. Not a particularly important issue, but I figured I would mention it anyway.
I believe the offending textures are FabricHamper_front.png and FabricHamper_frontm.png
I can't actually figure out which storage will hold components for me, I don't think any of them do. It would be nice if there was a list somewhere to show what each storage holds. I mean you don't need to specifically list items, you can list categories instead, minus the items that it won't hold. I assumed that components would be in the skips but they don't seem to be. Hmm. I really do need a component storage area though to compress my components the same way I do everything else.
Like we mentionned on your Steam mod page I couldn't give my Pawns a single order upon loading my Rimworld 1.0 game yesterday. Also the Colonist bar also disappeared, even though I could switch pawns via the keyboard. Reverted to v3.4.1.1 and everything's working as before.
Here's the log with v3.5.0 (latest version of the mod):
Root level exception in OnGUI(): System.NullReferenceException: Object reference not set to an instance of an object
at RimWorld.ColonistBar.CheckRecacheEntries () <0x004c0>
at RimWorld.ColonistBar.get_Entries () <0x00017>
at RimWorld.ColonistBar.ColonistBarOnGUI () <0x000b4>
at (wrapper dynamic-method) RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs_Patch1 (object) <0x000d7>
at RimWorld.UIRoot_Play.UIRootOnGUI () <0x0007c>
at Verse.Root.OnGUI () <0x000ed>
Verse.Log:Error(String, Boolean)
Verse.Root:OnGUI()
Root level exception in OnGUI(): System.TypeLoadException: Could not load type 'ExtendedStorage.Building_ExtendedStorage' from assembly 'ExtendedStorage, Version=3.4.1.8646, Culture=neutral, PublicKeyToken=null'.
at (wrapper dynamic-method) Verse.AI.ReservationManager.CanReserve_Patch3 (object,Verse.Pawn,Verse.LocalTargetInfo,int,int,Verse.ReservationLayerDef,bool) <0x00108>
at Verse.AI.ReservationUtility.CanReserve (Verse.Pawn,Verse.LocalTargetInfo,int,int,Verse.ReservationLayerDef,bool) <0x0008e>
at RimWorld.WorkGiver_BuildRoof.HasJobOnCell (Verse.Pawn,Verse.IntVec3,bool) <0x0019c>
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.AddJobGiverWorkOrders_Patch2 (Verse.IntVec3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>,bool) <0x01885>
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.AddUndraftedOrders_Patch1 (UnityEngine.Vector3,Verse.Pawn,System.Collections.Generic.List`1<Verse.FloatMenuOption>) <0x00318>
at (wrapper dynamic-method) RimWorld.FloatMenuMakerMap.ChoicesAtFor_Patch1 (UnityEngine.Vector3,Verse.Pawn) <0x00270>
at AchtungMod.MultiActions.AddColonist (AchtungMod.Colonist) <0x00166>
at AchtungMod.MultiActions.<.ctor>b__3_0 (AchtungMod.Colonist) <0x0001c>
at AchtungMod.Tools.Do<AchtungMod.Colonist> (System.Collections.Generic.IEnumerable`1<AchtungMod.Colonist>,System.Action`1<AchtungMod.Colonist>) <0x0007e>
at AchtungMod.MultiActions..ctor (System.Collections.Generic.IEnumerable`1<AchtungMod.Colonist>,UnityEngine.Vector3) <0x000b5>
at AchtungMod.Controller.MouseDown (UnityEngine.Vector3) <0x0016c>
at AchtungMod.Controller.HandleEvents () <0x00082>
at AchtungMod.MainTabsRoot_HandleLowPriorityShortcuts_Patch.Prefix () <0x00034>
at (wrapper dynamic-method) RimWorld.MainTabsRoot.HandleLowPriorityShortcuts_Patch2 (object) <0x00017>
at RimWorld.MainButtonsRoot.HandleLowPriorityShortcuts () <0x00021>
at RimWorld.UIRoot_Play.UIRootOnGUI () <0x001f8>
at Verse.Root.OnGUI () <0x000ed>
Verse.Log:Error(String, Boolean)
Verse.Root:OnGUI()
There's a somewhat rare condition where using Extended Storage can cause item losses on save/load.
In vanilla there's code in Thing.SpawnSetup
to check for 'oversize' stacks:
if (this.stackCount > this.def.stackLimit)
{
Log.Error(string.Concat(new object[]
{
"Spawned ",
this,
" with stackCount ",
this.stackCount,
" but stackLimit is ",
this.def.stackLimit,
". Truncating."
}));
this.stackCount = this.def.stackLimit;
}
It seems this code is only invoked for 'abandoned' stacks not stored inside a storage building.
Extended Storage can cause these types of oversize stacks (Finally noticed this on a game load with a modified mod version, but I've seen this error message before):
=> Stack will be 'corrected' to default maximum size.
I noticed this issue on a custom storage building for bionics - that was expensive ๐.
Can also be caused by altering the 'allowed' setting for a stored thing on a storage building that was previously allowed (and indeed selected as the 'currently storing' thing).
I think the item splurge code needs to be invoked in a few more cases:
This is prolly vanilla bug but hey, stockpile :P
Pawns should use stockpile that has shortest path instead of shortest distance. At the moment they seem to ignore obstacles
Hey Doc, got a bug for you. For some reason when a certain combination of storage objects are onscreen the gui disappears, I'm trying to nail down what is causing it but the error is below hope it helps.
Operation is not valid due to the current state of the object at System.Linq.Enumerable.First<Verse.Thing> (System.Collections.Generic.IEnumerable`1<Verse.Thing>) <0x001ab> at ExtendedStorage.Building_ExtendedStorage.DrawGUIOverlay () <0x000d6> at (wrapper dynamic-method) Verse.ThingOverlays.ThingOverlaysOnGUI_Patch1 (object) <0x00158> at RimWorld.MapInterface.MapInterfaceOnGUI_BeforeMainTabs () <0x00070> at RimWorld.UIRoot_Play.UIRootOnGUI () <0x00086> at Verse.Root.OnGUI () <0x000ed>
Full log is here
Modlist is here
Rimworld B18
Extended Storage 3.2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.