I'm having difficulty with storage bins in stockpiles. The stockpiles seem to fill up with the appropriate items before the bins are moved into it, and then no more items are brought. I could move so much more into it, if the bins would just get in there first.
Hauling has undergone several revisions since 0.34 days. Even then, it was still a bit more complex than you're making it out to be. But now, it's several notches more so.
Let's say you have a leather stockpile, bigger than 1x1, with bins enabled.
The first thing the stockpile will do (and remember, stockpiles are smarter than dwarves; they can be treated as active beings) is look for a free bin and assign that bin to itself. It does that by sticking <#nn> on the bin's label, where nn is the stockpile's ID number. That bin might be in a different stockpile currently, or in a workshop, or on the floor... doesn't matter, as long as it's empty and not currently owned by any other stockpile.
At some point, a hauling job will be created to move that owned bin to the stockpile that owns it. This will occur even if the stockpile's tiles are all full. The bin will be placed on the same tile as an item (but not the same tile as another bin). There is a strong preference for the upper left corner.
Wheelbarrows work very similarly, by the way. You'll constantly be wondering "Where are the wheelbarrows in this stone stockpile?" because the game shows the stone, not the wheelbarrow, on a tile that has both a stone and a wheelbarrow. Try the upper left corner first; that's where stockpiles like their wheelbarrows to be stored at first.
Now, once the stockpile has acquired an empty bin of its own, or learned that there are none available, it enters a steady state. At this point, lots of different things may happen:
- If the stockpile has some loose items, and some bins with space in them, hauling jobs may be created to transfer the loose items into the bin.
- If the stockpile's empty bin becomes non-empty, the stockpile will look around for another empty bin outside of itself, and claim it. Stockpiles always want to have one empty bin.
- If the stockpile has empty tiles, it will look around for suitable items it can claim. If it finds any, it will generate hauling jobs. There are lots of possibilties, depending on the item in question. A job may be generated to move a single item to a single empty tile. Or, a job may be generated to gather up multiple items and move them to a container. In older releases, sometimes a job would be generated to take a container out of the stockpile, and use it to scoop up multiple items; I haven't seen that happen in 0.42.
- I think empty containers may also generate jobs, even if they're not part of a stockpile that accepts that kind of item. E.g. a bag sitting in a furniture stockpile that only takes bags may suddenly acquire lots of seeds, if the seed stockpile is full. I'm not sure if this is part of the stockpile's AI or not.
So, we need WAY more detail to diagnose a stockpile issue. Like, WAY WAY more detail. Starting with what kind of stockpile it is, what its settings are, and what's currently in it.
If you're not looking to do stockpile science, and just want a quick answer: make more bins. Make a lot more bins. You don't have enough bins, even if you've counted bins and think that you have enough. Make some more. Then make sure you have lots of idle dwarves. Try taking your military off duty so they can haul stuff. Then wait. Usually after enough internal stockpile cogitation and beard-slave hauling jobs that you've been overlooking, the log jam will suddenly break, and you'll see that a dozen floor tiles are now clear, and the items have been binned. You're perhaps not being patient enough.