Refined Storage: Requestify

Refined Storage: Requestify

36M Downloads

crafting emitter doesn't trigger when the filter isn't the crafting result

Quezler opened this issue ยท 2 comments

commented

on enigmatica 6 0.5.9 i am trying to use this to trick refined storage to manage the chance autocraft of flux dust:

a barrel for the sole purpose of getting a refined storage recipe stuck in processing limbo:
2021-08-16_14 45 40

a recipe that takes anything in order to create a pattern, since result-only patterns seem impossible:
Screen Shot 2021-08-16 at 14 45 45

after starting the gargantuan tank craft the emitter does not light up:
2021-08-16_14 46 05

after some slight digging in the code it only appears to emit if the end result of the craft is in the filter:
https://github.com/Buuz135/RS-Requestify/blob/1.16/src/main/java/com/buuz135/refinedstoragerequestify/proxy/block/network/NetworkNodeCraftingEmitter.java#L74

i'm just wondering if this usecase was an oversight and will be fixed in a future version of this block or mod, or whether its 100% intended to work this way? (perhaps no clean way that the refined storage api exposes used recipe ingredients?)

commented

I'm having this issue as well, but looking at the RS API, it may be exceedingly slow to figure this out. Instead of calling getRequested(), you'd have to look at the pattern, iterate over all ingredients, and then look to see if there are patterns associated with the ingredients, and look at those ingredients... I imagine some kind of cache might speed this up, but still looks like a lot of effort.

Did you figure another solution?

commented

I am sorry to necro something a year+ old, but I figured it was worth enlightening the spark to confirm the situation.

1.18.2 Stoneblock 3 modpack,
refinedstorage-1.10.3,
rsrequestify-2.2.0

Indeed after setting up a very complex on/off logic for minimal running needs of machines, I found that indeed the Crafting Emitter only Emitted when the result matched but not the ingredients of the result.

@boneskull , I don't know how effective caching would be, as eventually, you want to clear the cache instead of piling up a large memory footprint.
I suppose caching the iteration data and then clearing it once the number of items/materials is in the system could actually work.
You then just match the number of the material in the system to the number in the cached iteration instead of constantly re-iterating through the recipe.