desht / ModularRouters

A Forge Mod for item routers with pluggable modules
16 stars 20 forks source link

Breaker module toggle to pick up or NOT pick up items broken. #212

Open Gameswithjohn opened 5 months ago

Gameswithjohn commented 5 months ago

Describe the feature

An option in the Breaker Module to turn on/off the pickup function.

Reasons why it should be considered

Having the breaker pick up items stops items from being inserted into the input buffer requiring far more complicated filtering systems to remove those items so the tasks can continue. I can see where picking things up might be useful, in very specific circumstances such as a cobble gen, but if you are wanting to create a system where the blocks are broken and the drops are then collected and put into another system (like with ore processing with fortune) this make it far more complicated when you otherwise would just need a simple vacuum and the Modular router can then keep processing at full speed instead of worrying about filtering. Seeing as this mod would typically be inserted into a pack with many other mods that add their own ores the list of filters would be longer than the small filters you can use (ATM9 for example would add dozens of them). Additionally in these packs there are almost always ways to pick up items (vacuum hoppers, etc.) so most of the time this current feature is only going to get in the way of faster processing.

Additional details

A different solution might be to have an input and output buffer on the router, that way picked up items would not get in the way of inserting new times into the router and could then either be pulled out or moved into the input to be used again.

desht commented 5 months ago

but if you are wanting to create a system where the blocks are broken and the drops are then collected and put into another system (like with ore processing with fortune)

In this situation, what's to stop you just using a sender module to send the item into the other system? Or if the system is expecting the item as a dropped item entity, using a dropper module to drop the item in the appropriate place?

I guess I'm looking for a specific use-case where this feature would allow a setup that's otherwise impossible (not just awkward or complex, but totally impossible).

Gameswithjohn commented 5 months ago

Impossible is hard there unless you only have the space for one Router. The largest issue, and impossible for a single, is filtering the sender units to not put the blocks you are wanting to break away, I did a fast check with the pack I'm currently playing and just the basic ores (because of the various normal, deep slate, nether, and endstone) variations there isn't enough room to filter them all if you fill the system with sender units other than the placer and breaker modules. Then I moved a couple pages in JEI (or whatever its called this version) and ran into an entire page of GregTech ores (18x36 of nonsense ores) that alone would require multiple routers with breaker units and full senders modules filtering.

Also another consideration is the placer module that will of course try to place anything in the single buffer, such as redstone breaking that aspect of the unit as well if it manages to get there.

And the time required to cycle through the sending modules before getting back to the main breaking process.

In small cases such as cobble or obsidian gen it would be very handy to have it pick things up, and if you are automating with AE2/RS ores on request where its only getting single types, pickup would be useful also. But for mass ore processing in similar situations it isn't. It also can't keep up with max speeds so you are then fully required to have outside mods (or other Routers) to pick up what is left behind anyway, with that you might as well just use the other system and not clog the Routers.

I almost forgot, there are also mods that cause multiple types of drops from the same blocks that the Module doesn't seem capable of picking up at once so it will still end up with things on the ground if you are using a single Router, so you would need an additional picker module to get the left behind items once again removing more of the filtering needed from the sender modules. So stuck needing either another Router or another collection system.

Keeping in mind as well that if you happen to miss an ore in your filtering the machine full stops because it won't be able to send it or get new items into the single input buffer, also why I made the suggestion of having an "input" and "output" buffer to fully eliminate that happening as a unit could continue to place/break blocks even if the "output" was full, and your already required outside vacuum would catch anything left behind.

I played around and got it working with 2 units, one for taking the ores from a chest and placing them, and a second unit for breaking them and sending what it manages to pickup (again more than it can actually handle) to an output chest. However I don't know if this is how you are wanting people to use the mod. So I can't in honestly say its "impossible" to find a way, with over 400 mods in a pack there are always ways to do something, its more of what you might want for the useability of your own mod.