[Question] Planning out AE2 Integration
thatsIch opened this issue ยท 31 comments
Just looking around, but have not found an API Jar on your Jenkins. Any pointers, where I can find it? If possible I do not want to build it myself.
ok I have the basic integration ready, but I can not load up LP indev. Is there something besides the dummy jar I have to pay attention to?
@HadesDurin as I understood, there will be no way to use ae2 to craft things at first stage, we can expect same integration as we had in 1.6, and then it will be expanded somehow.
Are you using lp as development jar or source code with the dummy jar. If you use source code you probably need to disable the asm.DevEnvHelper manually as it could complicate stuff.
this does not help https://github.com/RS485/LogisticsPipes/blob/dev/BUILDING.md ?
this is how i would do the auto crafting
lp from ae
make a block (name (Logistic interface )) to LogisticsPipes it looks like a auto crafting table/pipe, to ae2 it looks like a interface when LogisticsPipes makes a request to ea its provides the items to Logistic interface and waits for the result
ae from lp
https://github.com/RS485/LogisticsPipes/blob/dev/common/logisticspipes/api/IRequestAPI.java
you can make a Request from lp and wait for it to show up
As far as getting the dev environment working, I have also had issues with this. I was going to do some testing, and submit a pull request with the few modifications necessary to add some storagedrawers integration functionality, but couldn't get the dev environment to run.
When I use Eclipse's Debug or run configurations, (with the dummy jar) it crashes with an InvocationTargetException / IllegalArgumentException: resource CoFH_at.cfg not found. Does this mean it requires CoFH core / lib? Seems a bit odd to me, doesn't really make sense.
However, if I add CoFHcore, then the client can load up, but the internal server crashes upon loading into a SP world with NoSuchFieldError: linkConf, and the dedicated server crashes likewise as soon as the world finishes loading. I tried a couple different things trying to figure it out, and couldn't manage to get it working..
@loordgek I do not want to build LP, I just want to use it and there should be no special requirements to get it running besides putting it into the mods folder (and adding BuildCraft)
I tried
- putting the dev jar into the mods folder first
- dev jar + core mods plugin as args
- dev jar + dummy jar
- dev jar + dummy jar + args
- and another iteration with --noCoreSearch
0ae3df6
That should fix all problems with the dev jar. If you still have problems feel free to post the crash report here.
would also really like to see ae2 being able to look into LP for storage... the other way around works already.
Concerning crafting... I don't see a big need for that, but it would be nice in the end.
Agreed. Inventory sharing is pretty important; cross-crafting is probably more trouble than it's worth.
The only thing we currently have as an API is this: https://github.com/RS485/LogisticsPipes/tree/dev/common/logisticspipes/api
Now the question is, what integration are you looking for, only accessing LP's inventory and crating or also the ability for LP to access AE's crafting?
still waiting for it to happen pl and ae2 working together
btw. i think it fits if you only have the storage access form ae2 to lp...
realised via provider pipes, provider modules and such...
only access to LP inventory and crafting,
AE2 already allows external access to crafting and inventory. I think you already implemented the inventory? Probably best if you also add the crafting if you want.
As I understand, there is no way to link a pipe to import a whole bunch of crafting tasks because there is no similar pipe. LP crafting is works a little bit different than AE, there is nothing similar to P2P pipe or so.
The best way we can handle it I guess a satellite pipe. however it needs a lot of special handling. If AE could provide LP-compatible crafting tasks, it would be more better.
That was before there were crafting modules. The code base has been restructured a little, so this should be easier. Also I remember there was a comment that AE's crafting system is not that different from how LP works with promises. Not saying this is easy, but it should be possible. There are just many things to work on at the moment.
@theZorro266 hmm... sounds good. So you say if someone helps from AE2 side, this can be implemented almost purely on LP side?
The thing that's trobeling me the most is keeping track of who is using what inside a crafting task calculation. If there are connected AE2 and LP systems, there needs to be a way, to know who wants to use what when calculatting a crafting task specaly if both systems calculate parts of the job.
@thatsIch Inside the current AE2 API, If i would create a crafting task would it check connected LP systems as well if it needs something from them for the job?
i think, that a consersion of crafting in both systems (espacially for items that both systems can craft)
is not needed.
But it will be nice, to give crafting orders on the other side of the systems.
like crafting is on lp side and you can give orders in your ae2 terminal and see what is aviable for crafting.
additionally you can see in an lp network, what is aviable on ae2 side.
maybe an solution is a special pipe or block type which handles the job and is only aviable if you have both lp and ae2
that way you also have the freedom to code what is needed to connect both systems together with crafting
@HadesDurin yeah, but the main question is if AE2 can accept external crafting provider for its own recipes as setting recipes on both side would be a pain - at least a bit. I mean, say you want to craft a sticky piston, but the piston recipe is set on LP side, the sticky one is set on AE2.
i get it already
but would it be better to first have only storage support and later the crafting thing
because i think storage support is easier to get and best for most of the player which use ae2 and lp.
additionally i think working on a crafting merging thing will use more time to realise...
@davboecki it checks the current inventory and tries to craft the requested result (simulation or not). If stuff is missing, it will divide the task into subtasks. If the LP system is registered as an inventory provider, it will also be considered.
Since we have not done much with the general crafting process ourself, I try to tap in slowly but surely. But the AE2 API was constructed with the problems LP and AE1 had prior to 1.7 in mind (adaption since crafting methods differed too much).
one thing that came up into my mind is the problem/fact, that when you combine ae2 and lp and u use ae2 to craft things in a mashine and take item routing and storaging via LP the task is still valid and tries to finish....
sorry, we had internal problems for deploying the LP API. I think I am about 50% done.
@thatsIch will it have 2 way crafting ??
@thatsIch its been some time since the last update, any further progress?
i am still waiting to connect my AE2 and LP network together and share inventories
@thatsIch don't hesitate to ping @theZorro266 or @davboecki, they will be happy to help you to deploy LP API.