Could "Cleaning" be improved to include organizing stockpiles?

Started by schizmo, November 17, 2016, 05:12:08 AM

Previous topic - Next topic

schizmo

One of my biggest frustrations in this game with regards to storage is the scattered nature of the current stockpile mechanic, and how inefficient it starts to become when your stockpile warehouse is full of half empty stacks and resource groups scattered and peppered across the entire stockpile.

A suggestion/idea that I had would be an addition to the "cleaning" work task that includes organizing stockpiles. Essentially it would be the job of a pawn tasked with cleaning to prioritize the filling of item stacks by distributing items from the smallest incomplete stacks into the largest incomplete stacks, in an attempt to free up empty cells as quickly as possible.

Additionally, it's my belief that a task like this should also include reorganizing item placement, keeping the same/similar items together and compressing all the items together towards the "start" of the given stockpile (like an edge or a corner, perhaps chosen by the player depending on their needs)

Some of this can be done manually in the game if you severely micromanage your stockpiles, I find myself deleting individual cells out of a stockpile and forcing my pawns to haul incomplete stacks back into full stacks fairly frequently in order to save space. The AI already knows how to redistribute items across incomplete stacks, so that aspect of this suggestion would not be hard to add.

The second part, though, is trickier, and in many ways it could negate the need to create multiple stockpiles to stay organized. If that aspect is found to be too game breaking, then don't include it. But the sloppy item stacking is an issue that I feel needs to be addressed.

Just as a random throwaway example, my current main stockpile warehouse has a surplus of 867 plasteel across 19 incomplete stacks, averaging at around ~45 plasteel per incomplete stack. That number can be whittled down to 11 complete (and one incomplete) stacks if I force my pawns to redistribute the wealth, but it requires me to micromanage my pawns and pull them off of work they're already doing, not to mention it doesn't solve the problem as it will immediately become an issue again when someone adds/removes any plasteel into the stockpile.

A gain of 7 free cells doesn't sound like much if you only think of this single plasteel example, but think of all the high volume items frequently kept on hand, think of the wood, steel, beer, drugs, all varieties of stone bricks, precious metals, foods, those 7 cells start to look more like 70 cells, all wasted by sloppy stockpiles.

I'm not asking for the pawns to all be reprogrammed to be super efficient packers, I've helped enough people move to know that there are a lot of people out there who simply suck at keeping a garage organized. I just think this functionality could make cleaning a more interesting work order to give to pawns. Currently it's more efficient to activate manual priorities on all pawns and force them all to quickly clean a colony, what I'm hoping is that the improvement of the cleaning work category could give players an incentive to have someone take cleaning in a more dedicated capacity.

Thyme

Messy stockpiles are a problem for me also. Especially the food stockpile where I usually have a huge turnaround. I observed that these incomplete stacks are created "intentionally", for reasons I don't see. In extremely elusive cases it's two such potato stacks, both with the same amount of hp, right next to each other. Or these gold nuggets that won't stack, even when manually assigning a pawn and leaving a 1x1 stockpile. Artillery shells are another common example. (And I usually have several varieties of potato in the trading screen, not all of them being able to be distinguished with their hp). It appears that there are hidden parameters that prohibit proper placement sometimes, while it works fine most of the time.

PS: Cleaners doing hauling work is generally a problem, since there are those special snowflakes that are too good to haul ;) Why not have the haulers do that, as subtask with lower priority than hauling? Or have Tynan simply fix the issue in the first place :P
I'm from Austria. If I offend you, it's usually inadvertently.
Snowmen army, Chemfuel Generator, Electric Stonecutting, Smelting Tweak

Trylobyte

Did you know a single stockpile tile holds 400 smokeleaf joints?  Even with over 1500 of the things in storage to sell to passing trade ships, only once have I ever seen a full stack.  What could be stored in 4 tiles is instead scattered across 20-25 tiles because of the lack of organization.  Would love to have a way to organize this stuff a little better.

lllMWNlll

Messy stockpiles are bad. But, in my opinion - haulers still should do the organization. But if cleaners or haulers do the job still a great idea, maybe A16 would fix that?

schizmo

My reasons for considering it a cleaning task instead of hauling are mainly due to the "tidying up" aspect of organizing an area. I see hauling as more of a long-distance stamina task, where cleaning an individual disorderly stockpile is a more of a local and small time shuffling of items.

It wouldn't be the first time that non-haulers haul things, all hunters will haul their quarry back to a freezer, and crafters/smiths will carry their completed items to the best stockpile if instructed.

BUT if it ends up being a hauler task then so be it, I still think it's a worthwhile suggestion :)

Thyme

I once had a non-hauler do all my hunting. Evilest thing I can imagine!
I'm from Austria. If I offend you, it's usually inadvertently.
Snowmen army, Chemfuel Generator, Electric Stonecutting, Smelting Tweak

schizmo

Pulled this quote from a thread in the Bug section about the "delete zone" tool, Zhentar offers some useful insight about how Stockpiles function. I'll provide the quote in it's entirety even though only part of it is relevant to this discussion

Quote from: Zhentar on November 02, 2016, 12:14:49 PM
Took a look at the code; it seems to happen at random because it literally does happen at random. What happens is that when you define a stockpile, the cells get shuffled into a random order (which is also why pawns fill stockpiles in random orders). The cell chosen for the very first slot in the list becomes a sort of "master" cell; if you bisect the stockpile with the delete zone designator, you should see that it always keeps the side of the stockpile with the first slot in it. And incidentally, that's exactly what happens here - the delete zone designator deletes one cell at a time, from bottom to top, left to to right, checking if the zone is still contiguous after every cell. So when you delete the full height of the zone, it gets bisected and the side that doesn't have the "master" cell gets deleted... and that side could well be the side you wanted to keep.