Integrated Dynamics and Blood Magic Alchemy Tables
Help me reddit.
I've been trying to use ID to passively craft things in Blood Magic Alchemy Tables, buuuuut... it's not working like I'm hoping.
I've found a few ways to approximate what I want, but it keeps not quite working.
I'm trying to move items from an inventory to the table, mapping specific items to specific slots on the table. I want to move one and only one item to each slot.
EIO Limited Item Filters do the job for recipes where there's 6 unique items, but where ingredients are duplicated in a recipe, they don't work.
Using a choice variable to block out the transfer when the table is full? Easy.
Using an Inventory Reader to rotate items through slots? Easy.
Where its all falling down is getting an exact, correct, array of items into the table. What happens is after a few iterations, the ingredients get out of sync, and instead of getting 2 of an ingredient, I get 3, and the whole thing snarls up.
I've tried using manually defined list variables, but that doesn't limit out the items properly.
I'm not sure where to go next.
Posted Jul 27, 2022, 10:27 PM UTC
I had to mess with this in E6E, though I was requesting the crafts with RS instead of ID, but maybe it will help.
The real big problem I ran into was that the block has 6 sides but 7 slots. So one side had to double up.
It turns out, if you use the same side for one of the input slots and the output slot, ID/IT sees it as an inventory with 2 slots. So instead of leaving the slot as "-1" ("any" slot), you base your logic for those slots on slot 0 or 1, etc..
Had the crafting requester in blocking mode, so that it only requested one craft at a time, and fed that into a buffer chest.
Put an item importer on the buffer chest, in round Robin mode, stack size 1. Put 6 item interfaces on the alchemy table, one for each side.
Put an item Extractor on the alchemy table, set to the output slot side/inventory slot. Feed it to an output buffer, and pipe that into an interface (I don't know if ID/T will treat an interface as an inventory). Set it up with a variable card so it only extracts from the output slot if the doubled-up input slot is empty.