Ability to autocraft essentia
MichaelRalston opened this issue ยท 16 comments
I really want to be able to automate centrifuging and the alchemical furnace, so that I can say something like "Get me 64 Humanus essentia" and my big AE autocrafting system will craft up crafting tables, burn those in the furnace to get Fabrico, then run the Fabrico through the centrifuge to make Humanus. (admittedly, the uncertainty of the centrifuge would make this unreliable, but that's fine.)
The existing AE system almost works for this - I can use ME Interfaces to put things into the furnace, but I can't say what the output is in a processing recipe because I can't specify that it gives essentia.
Likewise, while with this I can almost automate alchemy (I can say that for instance one iron nugget gives multiple iron nuggets in an automated alchemy thing that I have hand-setup), I can't say the essentia requirements so that the autocrafting will know to make them in the alchemical furnace.
It's a roundabout way, but a workaround could be to crystalize it so the crystal shows back up in the system, then re-melt the crystals.
I have been working on this most of the night, and after doing some deep, deep digging into AE2's crafting system I came up with a way to do this. My testing so far has been promising but I still have quite a few checks to work out and I have -no- idea how it will react to sub-networking yet.
Ultimately I had to create a new item that represents essentia, however this item will never be stored anywhere. I effectively lie to a crafting CPU and say that the 'item' has been delivered when the essentia has been imported. The only draw-back is that I won't be able to hide the patterns from regular item terminals. You will see the aspect and can craft it, but it will not be stored after the craft.
If all goes as I plan it, you will create essentia patterns in a new block/gui. They will be stored on standard pattern item. You will place these in interfaces just like regular patterns. From there the crafting system will handle requests.
However I am faced with an issue, most items produce multiple aspects, and if there are two patterns that both produce a certain aspect I do not know which one the crafting system will select. My only idea is to allow the player to 'dissable' certain aspects from being placed in the output list. For example if your encoding coal, if you disable potentia then only ignis will show up in the craftable list. Even though it will in-fact produce potentia essentia when distilled.
Well damn. The system really did not like having two outputs. Looks like this solves my previous issue, but each recipe can only produce one output :-/
Totally lied about having to just add the lore and recipe, forgot about making the terminal support craftable essentia -.-
This should all be done in a few days.
Unfortunately it looks like to support this I will need to write my own 'crafting' sub-system which will watch for the return of essentia. I will continue to look for a way to pull this off.
As of right now the AE2 encoded patterns only supports items. Once it supports fluids I can make a way to set the output(s) or inputs to essentia gas.
About supporting fluids in crafting, what about taking a look at ExtraCells, which specializes in AE+fluid storage/automation? I'm not sure if the 1.7.x version still has fluid crafting, but the 1.6.4 definitely did. I'm not sure if you would have to use ExtraCells as a dependency or if you might be able to replicate their method, though.
The MC 1.7.X of EC does not yet have fluid crafting. The MC 1.6.4 version used AE1, which is radically different than AE2. In a nutshell both the patterns and the crafting manager are designed to work with ItemStack's not Fluid's. Once AE2 RV2 comes to beta, and I get time to work on it, I may do a pull request adding fluid support myself.
the rv2 branch of EC2 has now fluid crafting, but i couldn't get it to wrok. but at this point, essentai is usable within EC2