Power network translation errors when adding third party mods
GuntherDW opened this issue ยท 8 comments
When I either install the (somewhat?) outdated Teslafied from p455w0rd or Energy Synergy from CyclopsMC Mekanism's power network seems to go into somewhat of a fit.
More so with Energy Synergy though. I've linked an issue from their github, and attached screenshots there.
Basically when I have no "translation" mods installed Mekanism acts as it should. But when I installed Energy Synergy the RF <-> T and other translations get all out of whack. Mekanism's machines also attempt to constantly draw power, even when their buffer is full and idling. Non-stop.
You can still use the machines just like you would without the mod, but the translation errors (and especially the power vacuum) make it kind of tedious.
I've also linked Teslafied, but this issue is primarily aimed as Energy Synergy. Teslafied made it possible to create recursive loop/creative networks, Energy Synergy has its own set of issues.
@rubensworks (from ES) thinks it's because of Mekanism code, which might not be far the truth, but after looking at the cable code I'm not sure myself.
Project links :
Teslafied : https://minecraft.curseforge.com/projects/teslafied (states that it's GPL but source is nowhere to be found?)
EnergySynergy : https://github.com/CyclopsMC/EnergySynergy
Energy Synergy linked issue:
CyclopsMC/EnergySynergy#5
Screenshots are linked in this issue.
Versions :
- Minecraft : 1.10.2
- Forge : 12.18.3.2221
- CyclopsCore : 1.9.4-0.9.0
- EnergySynergy : 1.10.2-1.1.1
- Mekanism : 1.10.2-9.2.1.298
Pretty much yeah, but @rubensworks adviced me to create an issue here either way, and that he'd be willing to help out.
If you're asked to make an issue, please do check if there is already something like it reported. If there is, fill that issue with your own information. For everyone it's nice to have all information in one place.
To give a more useful answer, mekanism currently has multiple issues with issues with Tesla, a couple of them are supposedly fixed with one of the open pull requests.
While you are correct, I thought it was sufficiently different enough to warrant its own issue.
The other issue was mainly talking about the EIO interaction in Mek.
Nevertheless, I also tried to compile #4148 (had to modify it slightly because he deleted 1 line too much), but it didn't fix anything. The screenshots are from that build even.
I'll look into the simulation thing a bit later today.
@GuntherDW mind telling me what line please? So I can fix it (also, reporting that on the PR helps, too).
I had no issues compiling on my end...
EDIT: I'm doubtful about the simulation part fixing these issues though...
But it might be related to how Mek machines are using the Tesla API for some things and not other ones, which might make it a lengthy fix.
Basically, the Tesla API states : "the machines should push energy into other ones, rather than having machines draw energy from their surroundings".
However, the mods you're linking might not use the same system as mek to determine whether a machine can accept energy : they might (didn't look into it yet) be looking for ITeslaHolder while most mek machines only act as ITeslaConsumer.
The way mekanism determines whether to push energy in Tesla-compatible devices is by doing a simulation and see if the machine could've accepted at least 1 unit worth of energy (trough a simulation). If the mods you're referring to only look for ITeslaHolder and compute it based on getStoredPower() and getCapacity(), they won't be compatible.
(yeah it's getting technical, it's also acting as notes for me or whoever wants to look into it)
Oh yeah I did not notice it xD I actually copied these over from another mekanism fork where I test stuff, and I removed one line too much indeed ^-^
I did not know there was a rewrite under way (not reading all the issues) but that's a good thing xD parts have gotten quite messy over the years, with all the added energy APIs etc
@Bluexin https://github.com/aidancbrady/Mekanism/pull/4148/files#diff-3f82e82856654f1dbf3d145ebbf05615R209
You deleted toSend there, without providing an alternative.
Line 222 was the original definition, which you removed.
EDIT: "Getting technical" is no issue, there's more than 1 developer here (myself included), and yes, there is a rewrite/fixup of the codebase underway. There's a link in the other issue post.