I hope you all have grown to love Mekanism's universal energy system, the ease of converting energy between systems with my Universal Cable and machine/generator power framework. I have throughly enjoyed integrating BuildCraft, and due to Krapht and many others' hard work, this implementation was rather easy. BuildCraft has seemed to be following along the lines of a proper open-source project, accepting PRs quickly and building upon what SpaceToad's idea was. I have been excited about 1.6 to see what all BuildCraft has to offer for it's supposedly revamped energy system by CovertJaguar.
Looking on GitHub, there are some wonderful improvements - PowerProviders can now be side-based, allowing for easier, more realistic MJ-based mechanisms, and receiveEnergy() can now return rejected energy in order to prevent power loss. One minor catch, however. This update also finalizes the "PowerProvider" class, and removes "IPowerProvider" which previously was used for managing a complete BuildCraft power framework. This means there will be absolutely no flexibility when working with the system, and all power interactions will have to act exactly how CovertJaguar intends for them to work.
CJ has always been a good friend of mine, he's open to suggestions and has helped me many times in the past. I wouldn't have sent two donations of $15 to him otherwise. I don't appreciate his strict closed-source development, but he still accepts input from the community. This change to the BuildCraft power system, however, does the mod no justice that I can see. Not only is he cutting off many possibilities for mods that could potentially integrate with BuildCraft's API, but he is also screwing over developers that already use BuildCraft significantly in their own mods. Mekanism uses custom PowerProviders for managing it's machines, generators, and Universal Cables, without these systems my support for the mod would literally fall apart. Not to mention my great friend King_Lemming's Thermal Expansion, which is entirely built upon the core of BuildCraft's power framework, who will most likely have to completely remodel the way his mod works.
Why would he do such a thing and make it immensely difficult for us developers to work with the "open-source" BuildCraft API? There are several reasons that I can see.
CovertJaguar intends for BuildCraft-integrated mods to serve primarily as addons. This was the case with IC2 for quite some time until Alblaka smartly loosened on his iron fist on his mod. CovertJaguar feels threatened by Thermal Expansion, and he does this major refactor knowing KL will be unable to integrate. CovertJaguar intends for BuildCraft to serve as a power network primarily working with his Railcraft and Sengir's Forestry, and he doesn't want to deal with the possible competition of other BC-based mods.
These explanations are what immediately came to mind, and there are several others that I will not list. There's a chance that he actually has another plan in mind for a more flexible API, but this response over IRC when referencing the API kind of threw this aside:
<Calclavia: lol, not very flexible>
<CovertJaguar: its not supposed to be>
What? APIs are not supposed to be flexible? Let's let him explain:
<Calclavia: An API is not supposed to be flexible lol?>
<CovertJaguar: and API is ment to provide an interface into a propriatary system, so that you can interact with that system on its terms>
Ok, so he's basically saying that you can only integrate with BuildCraft if the integration meets his standards. In other words you cannot do complete integration unless you are CJ himself. Uh...
Because of these ridiculous actions and statements I am withdrawing complete BuildCraft support from Mekanism for the next major update. No longer will my any of my content interact in any way with the BuildCraft API.
There is some good news, however. King_Lemming is going to be creating his own, unique version of the BuildCraft power framework, and I have plans to add integration with this the day it is released.
That is all.
-*signature stolen by Signature Gnomes*