Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Author Topic: Aisle system for containers (UI and logic)  (Read 585 times)

FantasticDorf

  • Bay Watcher
    • View Profile
Aisle system for containers (UI and logic)
« on: December 26, 2019, 06:21:40 am »

One of the problems i hear about a lot is that bins remain a big stumbling block about things just getting stuck, and i keep having to distribute advice on how to micro-manage it. So i have a proposition for a solution to the general problem of dwarves being only able to interact with one container at a time.

Aisle system

This system doesn't make radical changes to the draw and input of dwarves but instead, each container has rows of objects. Whether items are mixed, split, or singular can be set from manager for generalised direction and the individual stockpile to personalise. Under this system multiple dwarves can interact with the same container which brings a end to the majority of the problems experienced with only a single dwarf being able to use it at a time, making using containers sometimes very disadvantageous.

Quote from: example egg barrel with 'split', its still 20 capacity but only has 2 aisle hence 10 each
Goose Egg // Chicken Egg
Goose Egg // Chicken Egg
[DUMP] Goose Egg // Chicken Egg
Goose Egg // Chicken Egg [TSK]
Goose Egg // Chicken Egg
{Goose Egg} // Chicken Egg
{Goose Egg} // Chicken Egg
[TSK] Goose Egg // Chicken Egg
Goose Egg // Chicken Egg
Goose Egg // Chicken Egg

Players can navigate and switch aisles when selecting objects from the containers screen, drawing items from both aisles will be more efficient than one and a barrel can empty quickly. Their industrial purposes can be varied, mixed may be advantageous for conserving on barrel/bin space when you are creating generalised products like craft-goods (rings, crowns, earrings) to sell rather than if it suits you, putting two types of a product into a specific container aisle.

Forges for instance could have multiple bins and have two types of alloy reagent material stored close together such as pig iron alongside iron bars or sorted into easily drawable single bins of metal ((Copper // Copper // Copper)(Tin // Tin // Tin)) which are easier to redistribute if production is pulled elsewhere.

Barrels, bags, and large pots ideally have two aisles, while bins have three while retaining the same capacity. The aisle rows can be modified amongst the tools .txt in the raws when designing new container types, including furniture like bookcases.


Logged

therahedwig

  • Bay Watcher
    • View Profile
    • wolthera.info
Re: Aisle system for containers (UI and logic)
« Reply #1 on: December 26, 2019, 12:18:59 pm »

So, I actually looked it up, the bins working as they do is since the minecart release, the devlog is from february in 2012. What happened here is that dwarves now could pick up containers to bring them along so they wouldn't have to go back and forth for a single troll hair sock on the battle field. (bug was opened as 5964 and 5992, now lives on as 9004 together with sibling bug 8755)

I always figured the issue would be solved by letting dwarves who have hauling active use backbacks or baskets, though that in turn would make all civilians have an invisible uniform, which clashes with the military :p

... Quiestus actually suggested in one of the report to have the 'reserved bins and barrels' workshop order actually work for bins so that dwarves will use those reserved bins for hauling.
Logged
Stonesense Grim Dark 0.2 Alternate detailed and darker tiles for stonesense. Now with all ores!

FantasticDorf

  • Bay Watcher
    • View Profile
Re: Aisle system for containers (UI and logic)
« Reply #2 on: December 26, 2019, 01:32:18 pm »

That's handy, but this suggestion is mostly concerned with distribution and access rather than purely intake, while carrying a reserved container around would be nice the problem is that its not much different than carrying a lot of lighter objects and putting them inside.

Dwarves already mass-collect objects like gems before depositing them inside a container because of the bin being in use by that dwarf, including a very pained and slow walk back with a immense amount of objects in which to complete in a single action. My system in demonstratable theory would allow you to refer to the container-space and not solely the greater object.

Someone could add to the aisle while the container is being carried but code could be made to prevent that.

If Toady's reading, you could even do very interesting container logic for other things to add mechanics to   
0001590: Fish in aquariums always drown. and other container objects.
Quote
Aquarium

Water [20] // Fish
Water [20] // Large Fish
Water [20] // Fish

Or interesting things like adding a real cage capacity by only allowing a number of entities into cages per aisle

Tame Bear // Pig // Pig // Pig // Rooster // Chicken
Logged