Modular Routers

Modular Routers

33M Downloads

[suggestion] Ordered Batch Transfers

Nonsanity opened this issue ยท 5 comments

commented

There are many mods that require a specific sequence of items to be added to an inventory for crafting (Botania and ElementalCraft come to mind), but there are few options to easily automate them. I was thinking about how to make this possible in Modular Routers.

I'm thinking of an augment for a Puller or Sender module that round-robins through the filter. Each time it executes, it only filters on one of the items in its filter, then moves to the next, left-to-right, top-to-bottom. It could have a numeric text box, like the Regulator augment, that shows the next slot to be used, and/or highlights that slot in the filter section.

A related suggestion is a Blocker Augment that prevents a Sender module from sending if the destination has more than N items in it, defaulting to 0. That way it could be set to only send to that inventory if it was empty. This is sort of the opposite of the Regulator augment but would stop a Batch module from sending another batch while the first one is still processing.

Of course, all this is if you are still looking for more features for the mod. :). I'd be happy to help test anything.

commented

I quite like the concept of the "Filter Round Robin" augment, though it needs a snappier name...

Not quite understanding how the Blocker Augment differs from the existing regulator functionality though - oh wait, do you mean prevent item transfer entirely rather than limiting the amount? That might be better implemented as a toggleable feature on the Regulator Augment.

commented

You can sort of mimic this behavior with timed redstone pulses, but it's fiddly since speed/sync upgrades may be needed. Trying to automate Eidolon's Crucible is such a situation; it requires precise timing and specific counts of specific items in a specific order.

commented

As an alternative to a round-robin option on the filter, the use cases presented here could also be achieved with #31 and a new "match each" option on the filter. The ideal setup would be a single puller module filtered to pick up all of the ingredients for a recipe into multiple buffers, "All or Nothing" style. This would be especially beneficial for Botania, where you never want to drop a partial set of ingredients onto a Runic Altar or Petal Apothecary.

commented

I have actually added a filter round robin augment, which you'll see in the 7.4.0 release (hopefully not too far away now). When present in a module, each time the module's ticked, it will match against the next (non-empty) filter item in its filter, cycling back to the first slot after the ninth slot. The router will also save the current roundrobin slot in module NBT, so the slot is remembered across router recompiles (re-inserting the module) and server restarts.

I don't want the router to get very much more powerful (i.e. super-puller module like the above idea), for two reasons:

  • It's inviting instability due to excessive complexity
  • Balance reasons; routers and modules are pretty cheap to make and basically free to run.

#31 has been open for a long time and TBH I doubt it'll ever get implemented...

commented

Filter round robin augment added in 7.4.0